Кнопочный пульт.
Здравствуйте. Хочу собрать пульт управления макетом на ардуине. Помогите пожалуйста написать скетч для ардуино мега. Сам пробовал, но ничего не получилось. Пробовал использовать прерывание цикла с помощью команды break. Прошу помощи. Если поможете, буду благодарен.
Есть 3 ардуино мега. 1-мега =мастер, 1-мега =слейв1, 1-мега = слейв2. На мастере 6 кнопок. 1 и 2 кнопки включают 2 цифровых выхода на мастере, 3 и 4 включают 2 цифровых выхода на слейв 1, 5 и 6 включают 2 цифровых выхода на слейв 2. Связь между ардуинами по I2C. При нажатии на кнопку срабатывает один цифровой выход, длительность срабатывания выхода не более 1 сек.(чтобы не сжечь привод стрелки) не зависимо от состоя кнопки ( через какое время будет отпущена кнопка). Пробовал как то так: Arduino код:
|
У вас структура то правильная? (это просто пример)
Arduino код:
|
Цитата:
|
Не заработало даже на 1 ардуине.
---------- Сообщение добавлено в 22:56 ---------- Предыдущие сообщение было в 22:55 ---------- Еще бы понимать что писать в скобках. |
Цитата:
Цитата:
Или закрывающие не поставили? Поэтому лучше давайте весь текст. |
ИМХОА зачем I2C? Раз у Вас Mega, то можно и Serial обойтись. Для каждого Slave, можно свой Serial выделить, отдельный. Тем более, что Вам обмен не нужен, значит можно обойтись только линией TX.
И выдержку времени лучше делать без функции delay. |
Цитата:
|
Вложений: 1
За основу взял скетч на одной ардуине мега и матричной клавиатуре. Но мне нужно больше кнопок и больше стрелок и светофоров. Хочется разнести ардуины по макету. Скетч большой, поэтому прикрепил архив.
|
Как вариант - снимок экрана, на котором можно увидеть то, что "не получилось".
Тут либо код не компилируется, либо правильно не работает. |
Цитата:
|
Вложений: 1
Прошу прощения, не проверил. Переупаковал.
|
Код который управляет выходами рабочий.
Клавиатуры у меня такой нет проверить не могу. Поставьте после строки: char key = (char)Serial.read(); строку: Serial.println(key); Что бы видеть что приходит с клавиатуры и приходит ли вообще. ---------- Сообщение добавлено в 12:44 ---------- Предыдущие сообщение было в 12:33 ---------- По поводу связи. Как рекомендовал laba, используйте Serial порты. На слейвах замените: char key = keypad.getKey(); на char key = (char)Serial1.read(); И в setup соответственно: Serial1.begin(115200); Хотя скорость и поменьше можно поставить. А в мастере вместо: digitalWrite(22, HIGH); - (строчка взята для примера) поставьте: Serial1.println("W"); - (только с нужной буквой) Для управления вторым слейвом используйте: Serial2.println("W"); - (только с нужной буквой) |
Как ра
Цитата:
|
Цитата:
Кнопки - сколько? Куда и как планировали подключить? |
Цитата:
|
Вложений: 1
Цитата:
Вложение 157751 Надеюсь с исправлениями сами справитесь. А на слейвах надо исправить как написано выше и лишнее убрать. |
Цитата:
вопроса, остальное надеюсь дописать сам. (Хочется самому з\хоть чтото понимать и сделать). Завтра буду дома, займусь. Все равно большое СПАСИБО. |
Цитата:
Цитата из моего же поста в другой теме: Инициализацию кнопок сделал на Си. Arduino код:
Arduino код:
Arduino код:
bool Button34LastState = false; |
Цитата:
|
Цитата:
|
Что конкретно не работает?
|
Цитата:
|
Уважаемый Shalex, Вам отдельное спасибо за идею с диагональной станцией, вообще за ваш макет. Мой будущий макет чем то похож на ваше творение.
|
Цитата:
Могу помочь с ардуиной, и не только я, но надо понять в чем проблема. Скетч не работает как задумывалось, не грузится, не компилируется? |
Завтра попробую более точнее сформулировать что хочу сделать, и какая помощь нужна. А пока Всем большое спасибо за отклик на мою проблему.
|
Текущее время: 03:26. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -