19.04.2018, 19:35 | #1 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Кнопочный пульт.
Здравствуйте. Хочу собрать пульт управления макетом на ардуине. Помогите пожалуйста написать скетч для ардуино мега. Сам пробовал, но ничего не получилось. Пробовал использовать прерывание цикла с помощью команды break. Прошу помощи. Если поможете, буду благодарен.
Есть 3 ардуино мега. 1-мега =мастер, 1-мега =слейв1, 1-мега = слейв2. На мастере 6 кнопок. 1 и 2 кнопки включают 2 цифровых выхода на мастере, 3 и 4 включают 2 цифровых выхода на слейв 1, 5 и 6 включают 2 цифровых выхода на слейв 2. Связь между ардуинами по I2C. При нажатии на кнопку срабатывает один цифровой выход, длительность срабатывания выхода не более 1 сек.(чтобы не сжечь привод стрелки) не зависимо от состоя кнопки ( через какое время будет отпущена кнопка). Пробовал как то так: Arduino код:
|
|
Пользователь сказал cпасибо: |
19.04.2018, 19:42 | #2 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
У вас структура то правильная? (это просто пример)
Arduino код:
|
|
19.04.2018, 19:44 | #3 |
Хоббит
Регистрация: 22.01.2012
Адрес: Долгопрудный
Сообщений: 2,305
Сказал(а) 'не согласен(а)'!: 62
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 7,393
Поблагодарили 5,783 раз(а) в 1,170 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5829)
|
|
|
19.04.2018, 19:56 | #4 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Не заработало даже на 1 ардуине.
---------- Сообщение добавлено в 22:56 ---------- Предыдущие сообщение было в 22:55 ---------- Еще бы понимать что писать в скобках. |
|
19.04.2018, 19:58 | #5 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
|
|
19.04.2018, 20:09 | #6 |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
ИМХОА зачем I2C? Раз у Вас Mega, то можно и Serial обойтись. Для каждого Slave, можно свой Serial выделить, отдельный. Тем более, что Вам обмен не нужен, значит можно обойтись только линией TX.
И выдержку времени лучше делать без функции delay.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
19.04.2018, 20:12 | #7 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Без разницы кокой будет обмен. Информация с кнопок выводится на экран с мастера.
|
|
19.04.2018, 20:15 | #8 | ||
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
За основу взял скетч на одной ардуине мега и матричной клавиатуре. Но мне нужно больше кнопок и больше стрелок и светофоров. Хочется разнести ардуины по макету. Скетч большой, поэтому прикрепил архив.
|
||
|
19.04.2018, 21:27 | #9 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
Как вариант - снимок экрана, на котором можно увидеть то, что "не получилось".
Тут либо код не компилируется, либо правильно не работает. |
|
20.04.2018, 03:07 | #10 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
|
|
20.04.2018, 04:31 | #11 | ||
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Прошу прощения, не проверил. Переупаковал.
|
||
|
20.04.2018, 12:44 | #12 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
Код который управляет выходами рабочий.
Клавиатуры у меня такой нет проверить не могу. Поставьте после строки: 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"); - (только с нужной буквой) |
|
20.04.2018, 14:20 | #13 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
|
|
20.04.2018, 14:31 | #14 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
|
|
20.04.2018, 16:54 | #15 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
|
|
20.04.2018, 17:36 | #16 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
Если всего 6, то на мастере вообще примитивно.
pult-1.zip Надеюсь с исправлениями сами справитесь. А на слейвах надо исправить как написано выше и лишнее убрать. |
|
Пользователь сказал cпасибо: |
20.04.2018, 17:56 | #17 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Вообще кнопок планируется около 30, на мастере всего 6 реле, остальные реле будут на слейвах. 6 кнопок указано для упрощения
вопроса, остальное надеюсь дописать сам. (Хочется самому з\хоть чтото понимать и сделать). Завтра буду дома, займусь. Все равно большое СПАСИБО. |
|
20.04.2018, 18:04 | #18 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
Это немного другое дело. Хотя входов хватает. Например 16 аналоговых и 16 с 22 по 37 пин.
Цитата из моего же поста в другой теме: Инициализацию кнопок сделал на Си. Arduino код:
Arduino код:
Arduino код:
bool Button34LastState = false; |
|
2 пользователя(ей) сказали cпасибо: |
20.04.2018, 20:43 | #19 |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
А что мешает кнопки подключить в режиме матрицы? Хоть на меге портов и навалом, но всё-таки экономия.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
20.04.2018, 21:07 | #20 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
У меня возникла проблема, как управлять реле на слейвах. Может я ошибаюсь, мне показалось что прописать кнопки проще чем матрицу для управлением реле на слейвах. Может я не прав?
|
|
20.04.2018, 21:08 | #21 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
Что конкретно не работает?
|
|
20.04.2018, 21:19 | #22 |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
Теоритически конечно проще.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
20.04.2018, 21:20 | #23 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Уважаемый Shalex, Вам отдельное спасибо за идею с диагональной станцией, вообще за ваш макет. Мой будущий макет чем то похож на ваше творение.
|
|
Пользователь сказал cпасибо: |
20.04.2018, 21:34 | #24 | |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
Цитата:
Могу помочь с ардуиной, и не только я, но надо понять в чем проблема. Скетч не работает как задумывалось, не грузится, не компилируется? |
|
|
20.04.2018, 21:40 | #25 |
Новичок
Регистрация: 22.07.2017
Адрес: Россия
Сообщений: 35
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 11
Поблагодарили 5 раз(а) в 4 сообщениях
:
0 за это сообщение 0 Всего Репутация: пока неопределено (5)
|
Завтра попробую более точнее сформулировать что хочу сделать, и какая помощь нужна. А пока Всем большое спасибо за отклик на мою проблему.
|
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Аксессуарный пульт | Alexmit | Arduino | 55 | 18.05.2021 00:04 |
Новый пульт от Lenz | Saddam | Электрика и DCC | 0 | 17.11.2016 14:36 |
FB1-как стрелочный пульт. Возможно? | lohmach | Цифровая аппаратура Modelldepo | 1 | 10.11.2010 13:49 |
Стрелочный пульт к DCC Roco ? | Yuriy | Электрика и DCC | 57 | 18.09.2010 16:24 |
Пульт управления макетом. | Doctor_MB | Электрика и DCC | 39 | 06.03.2010 22:38 |