Your cart is currently empty!


♦
Jekaterina Guzek, Õpimapp / Portfolio
авторы Jekaterina Guzek, Anna Oleks
pinMode()
– установка режима работы пинов (вход/выход)digitalWrite()
– подача сигнала HIGH/LOW на пинdelay()
– задержка выполнения кодаПроект имитирует работу настоящего перекрёстка:
Программа написана в Arduino IDE:
// C++ code
//
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
for(int i = 0; i < 3; i++){
// car red
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
//people green
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(5000);
// people green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(9, LOW);
delay(500);
digitalWrite(9, HIGH);
delay(500);
}
//car yellow
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
// peole last
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(2000);
// car green
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
// people red
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(4000);
// car green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
delay(500);
digitalWrite(11, LOW);
}
//car yellow
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(11, LOW);
}
for(int i = 0; i < 10; i++){
// night
//yellow
digitalWrite(12, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(12, LOW);
delay(1000);
}
}
Далее переносим наш проект в Arduino IDE –> там заменили код прописали переменные, для удобства.
const int RED_auto = 13;
const int YELLOW_auto = 12;
const int GREEN_auto = 11;
const int RED_peop = 10;
const int GREEN_peop = 9;
void setup()
{
pinMode(RED_auto, OUTPUT);
pinMode(YELLOW_auto, OUTPUT);
pinMode(GREEN_auto, OUTPUT);
pinMode(RED_peop, OUTPUT);
pinMode(GREEN_peop, OUTPUT);
}
void loop(){
for(int i = 0; i < 3; i++){
// car red
digitalWrite(RED_auto, HIGH);
digitalWrite(YELLOW_auto, LOW);
digitalWrite(GREEN_auto, LOW);
//people green
digitalWrite(RED_peop, LOW);
digitalWrite(GREEN_peop, HIGH);
delay(5000);
// people green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(GREEN_peop, LOW);
delay(500);
digitalWrite(GREEN_peop, HIGH);
delay(500);
}
//car yellow
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, HIGH);
digitalWrite(GREEN_auto, LOW);
// peole last
digitalWrite(RED_peop, HIGH);
digitalWrite(GREEN_peop, LOW);
delay(2000);
// car green
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, LOW);
digitalWrite(GREEN_auto, HIGH);
// people red
digitalWrite(RED_peop, HIGH);
digitalWrite(GREEN_peop, LOW);
delay(4000);
// car green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(GREEN_auto, LOW);
delay(500);
digitalWrite(GREEN_auto, HIGH);
delay(500);
digitalWrite(GREEN_auto, LOW);
}
//car yellow
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, HIGH);
delay(2000);
digitalWrite(GREEN_auto, LOW);
}
for(int i = 0; i < 5; i++){
// night
//yellow
digitalWrite(YELLOW_auto, HIGH);
digitalWrite(GREEN_peop, LOW);
digitalWrite(RED_peop, LOW);
delay(1000);
digitalWrite(YELLOW_auto, LOW);
delay(1000);
}
}
Проект имитирует работу настоящего перекрёстка:
Дневной режим
Ночной режим (один для всех)
В ночное время у светофора машины получают только мигающий жёлтый сигнал. А пешеходный светофор в это время отдыхает — не работает вовсе.