N-spoor – deel 16 – AKI

Een AKI is een Automatische Knipper Installatie, een installatie die voor een spoorwegovergang zonder overwegbomen staat en daar voor een naderende trein waarschuwt. Het bestaat uit een enkel (je gaat een enkele spoorbaan over), dan wel dubbel (je gaat twee of meer spoorbanen over) zogenaamd andreaskruis, een bel (akoestisch signaal) en een drietal knipperende lampen (boven een witte, onder twee rode), in een driehoek geplaatst. Alleenstaand komen ze niet vaak meer voor (want relatief onveilig) en zijn meest vervangen door een AHOB (Automatische Halve Overwegbomen) of mini-AHOBs. Misschien plaats ik ook nog een keer wat spoorwegbomen, dan wordt de AKI tegen die tijd een mini-AHOB. 🙂 Een AHOB heeft echter maar twee lampen: de witte lamp bovenin ontbreekt!

Een AKI met een dubbel andreaskruis.
AHOB: slagbomen en maar twee lichten!

Het leek me wel aardig om me daar even mee bezig te houden. Een klein programmatje in een ATtiny85 zorgt ervoor dat een gele LED (een 3mm witte LED had ik even niet) continu, met een frequentie van ca. 110 keer per minuut (in het echt doen ze tegenwoordig 90 keer per minuut), knippert. Wanneer een trein nadert en gedetecteerd wordt, zorgt een negatieve puls op een van de pinnen van de ATtiny (pin 6) ervoor dat de gele LED dooft en dat de twee rode LEDs gedurende een bepaalde tijd (25 maal) om en om knipperen, weer in een frequentie van ca. 110 keer per minuut. Daarna doven de rode LEDs en vervolgt de gele LED haar ritme.

Schema

Hieronder het Arduino programma.

/* Automatische_knipper_installatie.ino

    AKI = Automatische_knipper_installatie 
 
*/

int duur = 11;            // Duur van het rode knippersignaal


int schakel = 1;          // PB4 is pin 6 = input voor besturing AKI
int led_wit = 0;          // Witte LED op pin 5 van ATtiny85
int led_rood1 = 3;        // Rode LED op pin 2 van ATtiny85
int led_rood2 = 4;        // Rode LED op pin 3 van ATtiny85

void setup() {
  pinMode (schakel, INPUT_PULLUP);
  pinMode (led_wit, OUTPUT);
  pinMode (led_rood1, OUTPUT);
  pinMode (led_rood2, OUTPUT);
}

void loop() {
  int schakel_status = digitalRead(schakel);
  
  if (schakel_status == HIGH) {
    digitalWrite(led_rood1, LOW);
    digitalWrite(led_rood2, LOW); 
          
    digitalWrite(led_wit, HIGH);
    delay (546);
    digitalWrite(led_wit, LOW);
    delay (546);
  }
   else
   {      
      for (int i = 0; i < duur; i++) {
      digitalWrite(led_rood1, HIGH);
      digitalWrite(led_rood2, LOW);
      delay(546);
    
      digitalWrite(led_rood1, LOW);
      digitalWrite(led_rood2, HIGH);
      delay(546);
      }
    }
}

Nu nog opbouwen en op de baan plaatsen!

De drie LED-jes samen in een 3D-geprinte ‘behuizing’.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie gegevens worden verwerkt.