Светофор

Wagone
Offline
Зарегистрирован: 08.06.2016

Доброго времени суток. никак не могу доделать проект для регулирования световора с помощью кнопок 1,2,3,4( в дальнейшем будет программа на C Sharp) В чем идея: с помощью команды 1 осуществляется автоматичкое переключение светофора(вроде понятно)

int glav(){//главная - зеленый
digitalWrite(ym, LOW);
digitalWrite(yv, LOW);
digitalWrite(gm, LOW);
digitalWrite(rv, LOW);
digitalWrite(gv, LOW);
digitalWrite(rm, LOW);
digitalWrite(gm, HIGH);
digitalWrite(rv, HIGH);
delay(2000);
i=1;
do{
  digitalWrite(gm, LOW);

delay(500);
digitalWrite(gm, HIGH);
i++;
delay(500);} while (i<=3);
digitalWrite(gm, LOW);
digitalWrite(rv, LOW);
digitalWrite(ym, HIGH);
digitalWrite(yv, HIGH);

delay(1500);
digitalWrite(ym, LOW);
digitalWrite(yv, LOW);
 digitalWrite(gv, HIGH);
digitalWrite(rm, HIGH);


}

int vtor(){//главная - красный
digitalWrite(ym, LOW);
digitalWrite(yv, LOW);
digitalWrite(gm, LOW);
digitalWrite(rv, LOW);
digitalWrite(gv, LOW);
digitalWrite(rm, LOW);
  digitalWrite(gv, HIGH);
digitalWrite(rm, HIGH);
delay(2000);
j=1;
do{
  digitalWrite(gv, LOW);

delay(500);
digitalWrite(gv, HIGH);
j++;
delay(500);} while (j<=3);
digitalWrite(gv, LOW);
digitalWrite(rm, LOW);
digitalWrite(yv, HIGH);
digitalWrite(ym, HIGH);

delay(1500);
digitalWrite(ym, LOW);
digitalWrite(yv, LOW);
digitalWrite(gm, HIGH);
digitalWrite(rv, HIGH);
delay(1000);
}

Далее есть переход(когда моргает желтый) и после перехода нужно установить ручный режим управления светофором

  boolean prerv = true;
   val = Serial.read();
    if (val == 49) {
if(prerv){
  while(prerv){

glav();
vtor();
    }}
    else{
      break;
      prerv=false;
    }
    }

помогите реализовать пожалуйста

saftik
Offline
Зарегистрирован: 08.04.2015
Wagone
Offline
Зарегистрирован: 08.06.2016

Спасибо. Статья частично помогла, но хотелось бы не использовать millis

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Эй, Вы! уважаемые дорожные службы! Не делайте светофор на Ардуино, пожалуйста! это очень опасно! Вы сейчас там программируете, а нам потом с этим мучаться!!!

Wagone
Offline
Зарегистрирован: 08.06.2016

Mr.Privet пишет:

Эй, Вы! уважаемые дорожные службы! Не делайте светофор на Ардуино, пожалуйста! это очень опасно! Вы сейчас там программируете, а нам потом с этим мучаться!!!

Ну смотря кто-Вы. Если сотрудник ГИБДД, то это уникальная возможность управлять светофорами, не выходя из вашего "офиса" :-)

Wagone
Offline
Зарегистрирован: 08.06.2016

И все-таки: поделитесь, кто знает, как организовать управление через Serial?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Wagone пишет:

Спасибо. Статья частично помогла, но хотелось бы не использовать millis

Как раз учиться использовать millis нужно, а использовать delay нежелательно.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Wagone пишет:

И все-таки: поделитесь, кто знает, как организовать управление через Serial?

Проблема не не в Serial. Светофор в прнципе делается не так. Попробуйте найти скачать/купить книгу Э. Хамби "Программирование таблиц решений". там в главе 1.2 очень хорошо написано как надо делать светофор.

Wagone
Offline
Зарегистрирован: 08.06.2016

Jeka_M, спасибо, очень ссылки помогли в освоении

ЕвгенийП, хорошо, попробую найти в интернете. Если не получится, буду искать книгу

andreyVl
Offline
Зарегистрирован: 09.02.2016

В рамках исследовательской работы учащихся разработана модель интеллектуального светофора. Длительность тактов зеленого света меняется в зависимости от количества автомобилей в данном направлении. В качестве светильников применены светодиоды, в качестве датчиков – кнопки. Реализован алгоритм включения-выключения произвольного числа (в пределах количества дискретных пинов) светодиодов  в произвольной последовательности, вывод значений счетчиков на цифровой дисплей. Подробности: https://infourok.ru/proektnoissledovatelskaya-rabota-na-temu-razrabotka-matematicheskoy-modeli-intellektualnogo-svetofora-3765409.html

negavoid
Offline
Зарегистрирован: 09.07.2016

>> В настоящее время разработки в этом направлении ведутся активно, так например в 2017 году на выставке ИННОПРОМ-2017 в Екатеринбурге был продемонстрирован инновационный светофор для «умных» городов [3]. Однако внедрение таких устройств происходит медленно, как правило, в столичном регионе в отдельных местах [5]. Можно предположить, что трудности связаны, например с датчиками. Применяются либо камеры, но их работа зависит от времени суток и погодных условий, либо индукционные петли, которые укладываются под асфальт. Пока не ясно как такие петли будут работать в условиях снега и льда. Исследуются и другие типы датчиков.

Информацию по работе интеллектуальных или «умных» светофорах можно найти только в интернете, потому что это новая тема. 

 

Со всем уважением к Ивану и к вам, как его преподавателю, всё-таки хочу сообщить, что такие "новые умные" светофоры с автопереключением в зависимости от автомобильных потоков и с централизованным мониторингом и возможностью ручного управления из центра, года где-то этак с 2003-2004 используются по всей Финляндии, даже в самой последней деревеньке, где есть хотя бы один светофор, работая в условиях в среднем от +30 до -40.

andreyVl
Offline
Зарегистрирован: 09.02.2016

Спасибо. Про Финляндию не знал. Буду благодарен за дальнейшую критику.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

А схему Вашего светофора и кнопок посмотреть можно? Кнопки фиксируемые, нормально замкнутые, нормально разомкнутые или просто гламурные?

andreyVl
Offline
Зарегистрирован: 09.02.2016

все схемы из уроков "подключение светодиода", "подключение кнопки" и т.п. Кнопки нефиксируемые, нормально разомкнутые. На мой взгляд интересно то, что из известных и многократно использующихся элементов реализована новая задача. Включение произвольного числа светодиодов в произвольной последовательности я, кажется, где-то описывал, но сейчас не нахожу. Здесь применили для шести светодиодов определенных цветов. Неожиданности возникли с цифровым дисплеем. Как решили описано в работе. Текст скетча там же.

b707
Offline
Зарегистрирован: 26.05.2017

andreyVl пишет:

На мой взгляд интересно то, что реализована новая задача. Включение произвольного числа светодиодов в произвольной последовательности я, кажется, где-то описывал, но сейчас не нахожу.

простите, вы имеете в виду интерес для школьного обучения? потому как с точки зрения программирования задача "включения произвольного числа светодиодов(реле, клапанов и тп) в произвольной последовательности" вряд ли является "новой и интересной".  С этой задачей сталкивается буквально каждый ардуинщик, когда переходит от начальных поделок к первому серьезному проекту.  И методы решения этих задач давно известны - в скетче я вижу обыкновенный конечный автомат...

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

andreyVl пишет:
На мой взгляд интересно то, что из известных и многократно использующихся элементов реализована новая задача.
Это старая и много кратно пережеванная задача по типу, как я провел лето и остатки знаний которые мне вбивали в голову преподаватели. И теперь Вы хотите что бы на Форуме Вам их "освежили".

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Во. Пух из отпуска вернулса. 

Logik
Offline
Зарегистрирован: 05.08.2014

qwone пишет:
andreyVl пишет:
На мой взгляд интересно то, что из известных и многократно использующихся элементов реализована новая задача.
Это старая и много кратно пережеванная задача по типу, как я провел лето и остатки знаний которые мне вбивали в голову преподаватели. И теперь Вы хотите что бы на Форуме Вам их "освежили".

Та он просто собрался торжественно отметить дату "сто лет как все просрали"!

 Первый электрический светофор с ручным управлением в США был установлен в Кливленде в 1914 году. А уже через три года, в 1917 году в Солт Лейк Сити была сконструирована система, управляющая светофорами сразу на шести перекрестках. Роль дорожного контроллера выполнял регулировщик. В 1922 году в Хьюстоне сделали то же самое, но уже на двенадцати перекрестках. Управление велось в ручном режиме из специальной башни.

https://habr.com/ru/post/125282/

Не благодарите меня, я нашел это секунд за 10.

andreyVl
Offline
Зарегистрирован: 09.02.2016

Спасибо за содержательные и конструктивные замечания!