පදික මාර්ග සංඥා පුවරුව
 
මෙහි චාහන සඳහා ස්වයංක්‍රීය හා පදිකයන්ටද ක්‍රියාකල හැකි වාහන පරිපාලක පරිිපථයක් නිර්මාණය කරමු. පදිකයින්ට ඔබන බොත්තමක් භාවිතා කර පාර මාරු වීමට වාහන නැවත්වීමක් ඉල්ලා සිටිය හැක.


පහත කේතය කියවා මෙහෙයුම සිදුවන ආකාරය අවබෝධ කරගන.
int carRed = 12; // වාහන බල්බ අනුයුක්ත කිරීම
int carYellow = 11;
int carGreen = 10;

int pedRed = 9; // පදික බල්බ අනුයුක්ත කිරීම
int pedGreen = 8;
int button = 2; // button pin
int crossTime = 5000; // පාර මාරුවීමට ගතවන කාලය
unsigned long changeTime; // බොත්තම එබූ මොහොතේ සිට කාලය 

void setup() {
 pinMode(carRed, OUTPUT); // ප්‍රතිදාන ලෙස සැකසුම
 pinMode(carYellow, OUTPUT);
 pinMode(carGreen, OUTPUT);
 pinMode(pedRed, OUTPUT);
 pinMode(pedGreen, OUTPUT);
 pinMode(button, INPUT); // ඔබන බොත්තම ආදානයක් ලෙස
 
 digitalWrite(carGreen, HIGH); // වාහන කොල දල්වන්න
 digitalWrite(pedRed, HIGH);  // පදික රතු දල්වන්න
}

//සදාකාලික ලූපය
void loop() {
 int state = digitalRead(button); // පදික තත්වය බලන්න
 /* 
අවසාන බොත්තම එබීමට පසු තත්පර 5 ගෙවී ඇතිද?
 */
 if (state == HIGH && (millis() - changeTime) > 5000) {
 // බල්බ වෙනස් කරන ශ්‍රීතයට යවන්න
 changeLights();
 }
}
void changeLights() {
 digitalWrite(carGreen, LOW); // කොල නිවන්න
 digitalWrite(carYellow, HIGH); // කහ දල්වන්න
 delay(2000); // තත්පර 2 ක් නවතින්න

 digitalWrite(carYellow, LOW); //කහ නිවන්න
 digitalWrite(carRed, HIGH); // රතු දල්වන්න
 delay(1000); // ආරක්‍ෂාවට තත්පර 1 ක් ඉන්න 

 digitalWrite(pedRed, LOW); // පදික රතු නිවන්න digitalWrite(pedGreen, HIGH); // පදික කොල දල්වන්න
 delay(crossTime); // මාරු වීමට නවතන්න

 // පදික කොල දල්වන්න නිවන්න
 for (int x=0; x<10; x++) {
 digitalWrite(pedGreen, HIGH);
 delay(250);
 digitalWrite(pedGreen, LOW);
 delay(250);
 }
 // පදික රතු දල්වන්න
 digitalWrite(pedRed, HIGH);
 delay(500);

 digitalWrite(carYellow, HIGH); // කහ දල්වන්න
 digitalWrite(carRed, LOW); // රතු නිවන්න
 delay(1000);
 digitalWrite(carGreen, HIGH);
 digitalWrite(carYellow, LOW); // කහ නිවන්න

 // බල්බ වෙනස් වීමේ කාල ගණණය
 changeTime = millis();
 // ප්‍රදාන ලූපයට යන්න 
}
(c) Shilpa Sayura Foundation 2006-2017