![]() |
|
![]() |
#1 |
Member
Регистрация: 10.03.2015
Сообщений: 40
Вес репутации: 0 ![]() |
![]()
Мучаюсь с кнопкой.
Я довел ситуацию до след. состояния. Когда я тыкаю на кнопку вкл/выкл в веб-интерфейсе роутера, то вижу, что RX на ардуине мигает, т.е. приём реально есть и роутер передаёт. Ардуина в ответ мигает синим светодиодом. Т.е. не получается его или зажечь или выключить. Это может быть связано как раз с тем, что происходит пересброс МК из-за начала обмена по UART? Если снимаю ждампер, то МК вообще никак не реагирует, хотя RX подмигивает. Проверял прошивку МК на компе. Т.е. в МК залит пример из кнопки, а я из терминала слал 1 или 0. Все работет - включается и выключается. Насчет кнопки разобрался. Нашел папку, в папке есть файл index.cgi. Там видно какие байты отправляются на /dev/ttyUSB0 и /dev/ttyACM0. Я пробовал из консоли отправлять байт: "echo 1 > /dev/ttyUSB0" - реакция такая же как и выше, непонятно зачем нужна еще команда ACM и что она делает. И я не нашел где конфигурируется скорость обмена по UART. Лазил в etc - как раз где секции загрузки, тоже там ни на чего не наткнулся интересного. Ардуину (miniUSB) подключаю в порт USB роутера. Сам роутер запитан через свой miniUSB. Я добавил в код "Serial.println(inByte, DEC);" после выполнения case. Было бы интересно узнать что именно контроллер получает, возвращая назад. Отправить команду я могу через терминал. А как принять данные с USB? Ну может пусть в лог какой-нибудь записать хотя бы. Последний раз редактировалось cyberbot; 22.03.2015 в 19:11. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 ![]() |
![]()
По поводу кодов - при нажатии и удержании веб кнопки идет код нажатия. Ардуинка его приняла и исполнила. Как только убираете палец с веб кнопки, идет код отпущенной кнопки.
В микропрограмме ардуины следует реализовать алгоритм: Код нажатия и отпускания - включить нагрузку. Код нажатия и отпускания - выключить нагрузку. По поводу принятия данных с ардуины - надо ковыряться в модуле снятие показаний с водосчетчиков. Там реализован код чтения. |
![]() |
![]() |
![]() |
#3 | |
Member
Регистрация: 10.03.2015
Сообщений: 40
Вес репутации: 0 ![]() |
![]()
Да вряд ли так. Кнопка же меняет свою надпись на "Включить" и "Отключить". Кроме того - я же через терминал однозначно данное посылаю.
Вот код главного файла кнопки: Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Скорость обмена настраивается в файле rc.local У Вас подключение по UART или по USB? Покажите какие у Вас устройства ls /dev |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 ![]() |
![]()
Установил модуль НТМЛ кнопка, снял с нее логи, да действительно, нажимаешь веб кнопку - в уарт прилетает 1, код отжатой кнопки не приходит, жмакаешь еще раз - прилетает 0.
Получается проблемы на стороне ардуинки, роутер четко выдает коды. Вам стоит написать простенький код, типа -пауза 1 сек, включение светодиода, пауза 1 сек, всё зациклить по кругу и залить ее в ардуинку, если светик будет мигать - мк перезагружается по какой то причине. |
![]() |
![]() |
![]() |
#6 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А драйвер FTDI установлен?
|
![]() |
![]() |
![]() |
#7 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Покажи код который в ардуйну залит.
Надо это: Код:
#define ledPin 13 void setup() { pinMode(ledPin, OUTPUT); Serial.begin(57600); } void loop() { if (Serial.available()) { byte inByte = Serial.read(); switch (inByte) { case 49: digitalWrite(ledPin, HIGH); break; case 48: digitalWrite(ledPin, LOW); break; } } } |
![]() |
![]() |
![]() |
#8 | |||||||
Member
Регистрация: 10.03.2015
Сообщений: 40
Вес репутации: 0 ![]() |
![]() Цитата:
Цитата:
Драйвер FTDI установлен. Цитата:
Цитата:
Цитата:
Цитата:
#define ledPin 13 void setup() { pinMode(ledPin, OUTPUT); Serial.begin(57600); } void loop() { if (Serial.available()) { byte inByte = Serial.read(); switch (inByte) { case 49: digitalWrite(ledPin, HIGH); break; case 48: digitalWrite(ledPin, LOW); break; } Serial.println(inByte, DEC); } } Цитата:
|
|||||||
![]() |
![]() |
![]() |
#9 | |
Member
Регистрация: 10.03.2015
Сообщений: 40
Вес репутации: 0 ![]() |
![]()
****************
Вообщем я понял! Так как в rc.local нет нифига, значит USB вообще никак не настроен. Чего туда писать непонятно. Удалил драйвер. Установил драйвер. В rc.local появилась след. запись: Цитата:
Осталось два вопроса: что такое ACM и для чего оно все таки надо. Или где об этом хоть почитать. Знать-то неплохо было бы. В rc.local инициализация USB идет с кучей параметров. Что значит каждый параметр - где об этом можно почитать? Как получить данные с ардуины? Нет какого-то более-менее законченного решения? Последний раз редактировалось cyberbot; 22.03.2015 в 21:52. |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|