Подкорректировать скетч до работоспособности для светофора
- Войдите на сайт для отправки комментариев
Нужно подкорректировать скетч на ардуино нано, а то когда подключаешь уже имеющий скетч работает не коректно.
Светофор на две стороны с авто и с пешеход. Фото
Задача: Есть два выключателя, когда они в режимк выкл. светофор должен просто мигать желтым как вреале.
При включении первого выключателя нужно что б заработал режим перекрестка одна сторона зеленая(авто + пешеход) другая красная(авто+пешеход) . как в реале.
При включении второго или одновременно двух выключатерей начанаеться режим, современного светофора -сначало едут авто т.е. пешеходы все (красные) авто одна сторона зеленый другая красный и на оборот и после уже пешеходы все стороны (зеленый).
И что бы при переключении на красный мигал зеленый 4,5. раз .
Работа всего светофора идет через реле, лампочки все 10 шт(12v) Фото:
Сам код под который сейчас подключены все пины и лампочки
#define L LOW #define H HIGH // Пины светодиодов int pins[] = { // Сторона 1 // <зелёный>, <желтый>, <красны> 7, 8, 9, // Сторона 2 10, 11, 12, // Пешеходные 1 // <зелёный>, <красный> 5, 6, // Пешеходные 2 3, 4 }; int pinlen = sizeof(pins) / sizeof(int); #define FOR_PINS for(int pin = 0; pin < pinlen; pin++) //////////////////////////// Шаблоны сигналов пинам //////////////////////////// bool modernStages[][10] = { { // Ст 1 H, L, L, // Ст 2 L, L, H, // Пеш 1 L, H, // Пеш 2 L, H }, { L, H, L, L, H, H, L, H, L, H }, { L, L, H, H, L, L, L, H, L, H }, { L, L, H, L, H, L, L, H, L, H }, { L, L, H, L, L, H, H, L, H, L }, { L, H, H, L, H, H, L, H, L, H } }; bool legacyStages[][10] = { { H, L, L, L, L, H, H, L, L, H }, { L, H, L, L, H, H, L, H, L, H }, { L, L, H, H, L, L, L, H, H, L }, { L, H, H, L, H, L, L, H, L, H }, }; bool maintanceStage[] = { L, H, L, L, H, L, L, L, L, L }; bool offStage[] = { L, L, L, L, L, L, L, L, L, L }; //////////////////////////////////////////////////////////////////////////////// void sleepAll() { FOR_PINS digitalWrite(pins[pin], LOW); } // Сторона - сторона - диагональ void modernMode() { for(int stage = 0; stage < 6; stage++) { FOR_PINS digitalWrite(pins[pin], modernStages[stage][pin]); // При нечётных режимах горит жёлтый if(stage % 2 == 0) delay(10000); else delay(5000); } } // Сторона - сторона void legacyMode() { for(int stage = 0; stage < 4; stage++) { FOR_PINS digitalWrite(pins[pin], legacyStages[stage][pin]); if(stage % 2 == 0) delay(10000); else delay(5000); } } // Только жёлтые void maintanceMode() { sleepAll(); delay(1000); FOR_PINS digitalWrite(pins[pin], maintanceStage[pin]); delay(1000); } // Без сигналов void sleepMode() { sleepAll(); delay(1000); } //////////////////////////////////////////////////////////////////////////////// void setup() { //Serial.begin(9600); FOR_PINS pinMode(pins[pin], OUTPUT); pinMode(14, INPUT_PULLUP); pinMode(15, INPUT_PULLUP); } void loop() { bool firstOn = digitalRead(14); bool secondOn = digitalRead(15); if(firstOn && !secondOn) modernMode(); else if(!firstOn && secondOn) legacyMode(); else if(!firstOn && !secondOn) maintanceMode(); else sleepMode(); }
Влад, глумись, удалять не буду...
Влад, глумись, удалять не буду...
а что тут глумиться? - нормальный заказ... Или я что-то пропустил?
Автор, сколько готовы платить? С учетом того, что вы уже приходили и получили консультацию бесплатно :)
Во сколько оцениваете такую работу?
Во сколько оцениваете такую работу?
а вы пробовали включать этот код? Что-то не устраивает?
Делюсь бесплатно - насколько я вижу, этот код без всяких правок должен работать именно так, как Вы хотите.
Могу видео снять как он работает
Могу видео снять как он работает
а словами описать не проще?
Только четко - что вы ожидаете, что делает светофор - и чем первое отличается от второго.
Описать сложно, попробую. Когда два выключателя выключены(одновременно) он просто горит весь(10 ламп), если два выключателя включены (одновременно) он так же горит весь(10 ламп) но при этом мигают два желтых.
Если включить один из выключателей включить он начинает работать в непонятном режиме включает и выключает разные лампы Н-р: на одной стороне загорается желтый+зеленый тут же на другой стороне горит красный и желтый + зеленый пешеход. Или одновременно горит зеленый с красным. Все лампочки подключены как в коде т.е. одна сторона и вторая сторона по пинам. Так же нету такого как мигающий зеленый перед тем как загорится красный.
"мигающего зеленого" в режимах нет - тут согласен.
Остальное может быть как ошибкой в коде, так и неверным монтажом с Вашей стороны. На первый взгляд я в коде проблем не вижу - это означает, что нужно собирать макет либо в железе, либо в эмуляторе - и разбираться. Могу протестировать этот код за, скажем, 1500 руб. Если по результатам тестов потребуются правки - обсуждаем отдельно.
пишите ded собака cur-ex.ru
На своей кандидатуре не настаиваю, у меня и так дел полно, если кто возьмется дешевле - я не обижусь.
Спасибо, нашел кажется исполнителя
Спасибо, нашел кажется исполнителя
ну. удачи... ему :)
Или я что-то пропустил?
Пропустил.
Пропустил.
имеешь в виду дискуссию, можно ли использовать розетки в детском саду? - или что-то еще?
Да.
От него еще и прошлый исполнитель сбежал
Влад, глумись, удалять не буду...
Да, в этом разделе грех глумиться. Нечего было пятничную тему сносить :)
Можешь и эту сносить не актуально уже
Можешь и эту сносить не актуально уже
что, свежий исполнитель уже все проблемы решил? Если нет - сносить рано, может он еще сбежит, как первый...
все решили осталось только мигающий зеленый сделать, можно удалять
все решили осталось только мигающий зеленый сделать, можно удалять
а в чем было дело?
Реле не туда были подключены и кнопки вкл выкл перепаял.
Реле не туда были подключены и кнопки вкл выкл перепаял.
ну то есть ваша ошибка? - я так и думал.
Классный исполнитель, прям через тьму интернета увидал, что собрано неверно? :)
Может вам все же не стоит этим заниматься? - похоже у вас руки на это не заточены. Видите, хоть вам в прошлой теме все подробнейшим образом обьяснили - куда кнопки, куда реле - вы все равно все умудрились перепутать.
Да я и не планирую этим заниматься, я же объяснял какая ситуация вышла, в любом случае нужно доводить начатое до конца.