Arduino: Zwaailicht politieauto

ΩDit is een vereenvoudigde weergave van een uitgebreider project voor Amerikaanse politieauto’s. Die hebben een serie rode en blauwe lichten op de auto. Nederlandse politieauto’s hebben blauwe zwaailichten.
De linker twee leds gaan tegelijk aan en uit. Hetzelfde geldt voor de rechter twee. Hier zijn 5 mm leds gebruikt. Voor H0-auto’s kun je beter SMD-ledjes gebruiken (Surface-Mounted Device; bijvoorbeeld de SMD led 0402 blauw, belangrijk: neem ze alleen bedraad; lengte x breedte = 1 x 0,5 mm; 20 ma en 3,0 volt).

Met de potentiometer kun je de snelheid van het ‘zwaaien’ van de lichten regelen.

Nodig:
Arduino Uno R3
Breadboard (half)
4 blauwe ledjes
4 weerstanden van 220 Ω
Potentiometer 10 KΩ
9 volts batterij
Jumpers

Verbindingen ledjes:
Min-pootjes: GND (ground)
Plus-pootjes twee linker leds: pin 12
Plus-pootjes twee rechter leds: pin 11.

Verbindingen potmeter (analoge input):
Links (rood): GND
Midden (oranje): A0 (ANALOOG IN)
Rechts (zwart): 5V.

Via de pinnen 11 en 12 krijgen de ledjes wel (HIGH) of geen (LOW) stroom. De snelheid van het ‘ zwaaien’  van het licht bepaal je door aan de potmeter te draaien.

Code:
 // Sketch Zwaailicht politieauto 

const int analogInPin = A0; // Analoge input potentiometer
int sensorValue = 0; // Waarde potentiometer
int timer = 0; // Waarde vertraging

void setup() {
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() {
  sensorValue = analogRead(analogInPin); // Lees waarde potentiometer
  timer = map(sensorValue, 0, 1023, 10, 500); // Vertraging 10 ms tot 500 ms   digitalWrite(12, HIGH); // Leds aan
  delay(timer); // Vertraging is afhankelijk van waarde potentiometer
  digitalWrite(12, LOW); // Leds uit
  delay(timer);
  digitalWrite(12, HIGH);
  delay(timer);
  digitalWrite(12, LOW);
  digitalWrite(11, HIGH);
  delay(timer); 
  digitalWrite(11, LOW);
  delay(timer);
  digitalWrite(11, HIGH);
  delay(timer);
  digitalWrite(11, LOW);
}

Veel succes!