MegaD-328 и энкодер

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 24 янв 2015, 23:52

Мои исходники: собрано на Ардуино, Фюзы low_fuse:0x7f, high_fuse:0xdf; Комп i5, через роутер подключено кабелем. остальные настройки те же, но при вращении енкодера шим меняется в разные стороны. А Net у меня не работает вообще и на других портах (думал может через фьюзы). 10000 - это количество милисек для отсеивания дребезга? а что тогда 0,05?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 25 янв 2015, 00:06

vgolinsky
NetAction должен работать. У меня работает и я не получал сообщений о проблемах в этой части.
Фьюзы никак не влияют на работу NetAction напрямую. А вот по поводу ваших установок не уверен.
Скажите, если пинговать ваше устройство, каково среднее время отклика? У меня 1.20 мс.
i5 более чем достаточно.
Приведенные параметры - это не то, чтобы защита от дребезга, это попытка алгоритма в сложных и нетипичных условиях понять что именно происходит.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 25 янв 2015, 00:18

пинг макс 2 мсек. В прошивке перед компиляцией изменил только timeout.h 16 MHz вместо 12.5 MHz enc28j60.c 16 MHz вместо 12.5 Остальное не трогал. DHT естественно не работает. Все остальное работает нормально (кроме поля Net - не запускает скрипт) Прошивка последняя. В прикрепленном файле лог энкодера.
Вложения
log.rar
(1.07 КБ) 246 скачиваний

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 25 янв 2015, 00:37

Andrey_B, а Вы не запускали DHT под МегаД с тактированием от внешнего кварца? хотелось бы запустить, но не хочется паять провод от енс... а какие задержки ставить я не знаю

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 25 янв 2015, 13:36

vgolinsky, а почему вы пишете, что DHT "естественно не работает"?
_delay_ms() и _delay_us() должны работать исходя из вашей частоты F_CPU.
Основной таймер также устанавливается из F_CPU. Тут мне пока не очень понятно, в чем дело.

Мне также совсем непонятно, почему на вашем Arduino не работает NetAction. Он не работает всегда или только если прописан сервер и основной скрипт? А светодиод активности моргает?

Ну а по энкодеру ничего определенного посоветовать не могу. Причина может быть связана с выше обозначенными проблемами, а может быть и не связана.
Такой как у вас энкодер поблизости нигде не нашел. Есть что-то похожее китайское, но не один в один. Куплю и попробую. А вы не пробовали что-нибудь фирменное типа Bourns?

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 25 янв 2015, 15:52

F_CPU у меня 16 МГц, dht показывает нули. Просто странно, что все работает кроме dht и net. а на каком порту у вас светодиод активности? (на ардуино вроде на 13 пине (PB5)) сегодня попробую другой энкодер, хотя я и медленно вращал, и подключал две тактовые кнопки и имитировал нажатием - все равно не работает. Может из-за того что подключен через оптрон (РС817) ? Но если просто нажатие кнопки in работает, то дело не в оптроне?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 25 янв 2015, 16:10

vgolinsky, вот в том то и дело, что код должен работать при любом значении F_CPU.
Светодиод активности можно проконтролировать и на разъеме RJ-45 (если он ими снабжен). То есть необходимо понять - это пакет не отправляется или просто не доходит.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 25 янв 2015, 20:04

светодиод активности моргает и когда через основной скрипт, и когда через Net, но работает только основной. только когда через основной скрипт на одно нажатие - одно моргание, то через Net морганий несколько на одно нажатие

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 25 янв 2015, 23:31

vgolinsky, а что у вас вообще-то прописано в Net?
Если светодиод моргает, значит устройство пытается что-то отправить.

Лучше всего подключить устройство напрямую к компьютеру и посмотреть сетевой траффик. Тогда и станет понятно что происходит.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 26 янв 2015, 00:21

в Net прописано ip server/skript.php (192.168.0.2/megad.php) просто не понятно, почему на основной скрипт все проходит, а на тот что в Net нет?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 26 янв 2015, 00:29

Можно сколько угодно спрашивать себя "почему", но это не даст ответа.
1. Подключите ваше устройство непосредственно к 192.168.0.2. Напрямую. И проверьте - вызывается скрипт или нет. Кстати, как вы определяете? По логам?
2. Если скрипт не вызывается (по логам Web-сервера), тогда смотрите TCP-траффик.
Только это позволит нам приблизиться к ответу и дать необходимую информацию.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 26 янв 2015, 00:58

Спасибо, буду искать... при просмотре во время вызова скрипта с Net через TCPView пишет LAST_ACK Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 26 янв 2015, 12:52

vgolinsky, это могут быть пакеты завершения соединения по основному скрипту.
Вам нужно сделать так.
Подключить к компьютеру напрямую.
Удалить из настроек адрес сервера и шлюза, а в NetAction прописать адрес компьютера.
После этого уже смотреть через TCPView и лог Web-сервера.

Ответить