drti

Prvi koraki v Arduino – semafor

Na prehodu za pešce se običajno spogledamo s semaforjem. Še posebej zanimivi so tisti za avtomobile, avtobuse in tovornjake, ki so tribarvni. V prejšnji številki revije smo krmilnik Arduino povezali s svetlečo diodo in jo s pomočjo programa vklapljali in izklapljali. Podobno bomo storili tudi tokrat, le da bomo pri tem uporabili tri svetleče diode različnih barv in jih priklopili na tri različne izhode krmilnika.

Programa za okolje Arduino IDE, ki sta sestavni del v članku revije TIM, avtorja Milan Gaberšek in Slavko Kocijančič.

__________________________________________________________________________________________________________________

//
// Program Arduino testiranje diod
//
 
// Konstante za delo s pini digitalnih izhodov
const int ledZelena = 2;
const int ledRumena = 3;
const int ledRdeca = 4;
 
void setup() {
  // Arduinu povemo, da delamo z 
  // digitalnimi izhodi (OUTPUT)
  pinMode(ledZelena, OUTPUT);
  pinMode(ledRumena, OUTPUT);
  pinMode(ledRdeca, OUTPUT);
}
 
void loop() {
  // Nastavitev digitalnih izhodov, pri
  // čemer HIGH vklopi, LOW izklopi
  digitalWrite(ledZelena, HIGH);
  digitalWrite(ledRumena, HIGH);
  digitalWrite(ledRdeca, HIGH);
  // Pred nadaljevanjem ukazov počakaj 
  // za navedeno število milisekund
  delay(400);
  digitalWrite(ledZelena, LOW);
  digitalWrite(ledRumena, LOW);
  digitalWrite(ledRdeca, LOW);
  delay(400);
} //konec programa
 
 
 
//
// Program Arduino semafor
//
 
const int ledZelena = 2;
const int ledRumena = 3;
const int ledRdeca = 4;
 
void setup() {
  pinMode(ledZelena, OUTPUT);
  pinMode(ledRumena, OUTPUT);
  pinMode(ledRdeca, OUTPUT);
}
 
void loop() {
  digitalWrite(ledZelena, HIGH);
  digitalWrite(ledRumena, LOW);
  digitalWrite(ledRdeca, LOW);
  delay(3000);
  digitalWrite(ledZelena, LOW);
  digitalWrite(ledRumena, HIGH);
  digitalWrite(ledRdeca, LOW);
  delay(1000);
  digitalWrite(ledZelena, LOW);
  digitalWrite(ledRumena, LOW);
  digitalWrite(ledRdeca, HIGH);
  delay(3000);  
  digitalWrite(ledZelena, LOW);
  digitalWrite(ledRumena, HIGH);
  digitalWrite(ledRdeca, HIGH);
  delay(1000);  
} //konec programa