Arduino 4, Osvětlení modelu automobilu (Policie, Hasiči, Záchranka a civil)

V dnešním programování si ukážeme jak naprogramovat Arduino, které použijeme jako řídící modul pro osvětlení modelu auta. Modul zastane všechny možné varianty osvětlení modelu, jak civilního, tak záchranářského účelu. Doporučuji použít Arduino Pro Mini, které se třeba do náklaďáku 1:87 vejde.

Obvod spíná LED, který vytváří patřičný efekt.

Výstupy:
Pin 2 = maják IZS /3 rychlé zákmity s pauzou/
Pin 3 = maják IZS /3 rychlé zákmity s pauzou/
(Pin 2 a Pin 3 se střídají v blikání - tedy možné použít PIN 2 např. pro levou půlku majáku a Pin 3 pro pravou půlku majáku)
Pin 4 a 5 = přední světlomety /trvale svítí/
Pin 6 a 7 = zadní světla /trvale svítí/
Pin 8 až 11 = blinkry, směrová světla /blikají ve stejném intervalu/

Zapojení: (schema je orientační a výstupy na schematu neodpovídají nastavení)


Napájení:

Pro napájení Arduina používám moduly s LM2596, které kupuji v číně.

Video:

Program:

int ledDelay = 50; // delay by 50ms
int majak = 2;
int majak2 = 3;
int predek = 4;
int predek2 = 5;
int zadek = 6;
int zadek2 = 7;
int blinkr = 8;
int blinkr2 = 9;
int blinkr3 = 10;
int blinkr4 = 11;

void setup() {
pinMode(majak, OUTPUT);
pinMode(majak2, OUTPUT);
pinMode(predek, OUTPUT);
pinMode(predek2, OUTPUT);
pinMode(zadek, OUTPUT);
pinMode(zadek2, OUTPUT);
pinMode(blinkr, OUTPUT);
pinMode(blinkr2, OUTPUT);
pinMode(blinkr3, OUTPUT);
pinMode(blinkr4, OUTPUT);

}

void loop() {

digitalWrite(predek, HIGH); // predni svetlo 1 ON
digitalWrite(predek2, HIGH); // predni svetlo 2 ON
digitalWrite(zadek, HIGH); // zadni svetlo 1 ON
digitalWrite(zadek2, HIGH); // zadni svetlo 2 ON

digitalWrite(majak, HIGH); // majak ON
delay(ledDelay); // wait 50 ms

digitalWrite(blinkr, HIGH); // blinkry ON
digitalWrite(blinkr2, HIGH); // blinkry 2 ON
digitalWrite(blinkr3, HIGH); // blinkry 3 ON
digitalWrite(blinkr4, HIGH); // blinkry 4 ON

digitalWrite(majak, LOW); // majak OFF
delay(ledDelay); // wait 50 ms

digitalWrite(majak, HIGH); // majak ON
delay(ledDelay); // wait 50 ms

digitalWrite(majak, LOW); // majak OFF
delay(ledDelay); // wait 50 ms

digitalWrite(majak, HIGH); // majak ON
delay(ledDelay); // wait 50 ms

digitalWrite(majak, LOW); // majak OFF
delay(ledDelay); // wait 50 ms

digitalWrite(blinkr, LOW); // blinkry OFF
digitalWrite(blinkr2, LOW); // blinkry 2 OFF
digitalWrite(blinkr3, LOW); // blinkry 3 OFF
digitalWrite(blinkr4, LOW); // blinkry 4 OFF

delay(150); // delay midpoint by 100ms

digitalWrite(majak2, HIGH); // majak 2 ON
delay(ledDelay); // wait 50 ms

digitalWrite(majak2, LOW); // majak 2 OFF
delay(ledDelay); // wait 50 ms

digitalWrite(majak2, HIGH); // majak 2 ON
delay(ledDelay); // wait 50 ms

digitalWrite(majak2, LOW); // majak 2 OFF
delay(ledDelay); // wait 50 ms

digitalWrite(majak2, HIGH); // majak 2 ON
delay(ledDelay); // wait 50 ms

digitalWrite(majak2, LOW); // majak 2 OFF
delay(ledDelay); // wait 50 ms

delay(150); // delay midpoint by 100ms
}