Страница 3 из 9

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 7:20 pm
Федюнь
Вот весь код.
Работает частично.
Когда я на пульте нажимаю кнопки то светодиод таймера вспыхивает и горит пока не отпушю кнопку.Сервы не работают и светодиоды индикации направлений не горят.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 7:49 pm
shalex
Федюнь писал(а):Вот весь код.
Работает частично.
Когда я на пульте нажимаю кнопки то светодиод таймера вспыхивает и горит пока не отпушю кнопку.Сервы не работают и светодиоды индикации направлений не горят.
Из предположений - проверить при сборке прошивки для 168, если ставите чип в самодельную плату:
- тип платы 168 (Board). Скорее всего надо будет качать и устанавливать доп.библиотеки для поддержки чипа 168;
- частоту (clock) и тип синхронизации - внутр/внешн;
- еще есть соображения по поводу порта для отладки. Если диод загорается, который на атмеге, то код, видимо, работает. Осталось понять, в чем затык.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:00 pm
Федюнь
Так простые скечи не связанные с работой EEPROM работают на ура.
Я сразу и предположил что где то, что то с фьюзами не то выбрато.Нет доступа к EEPROM,закрыт доступ видимо.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:12 pm
shalex
Федюнь писал(а):Так простые скечи не связанные с работой EEPROM работают на ура.
Я сразу и предположил что где то, что то с фьюзами не то выбрато.Нет доступа к EEPROM,закрыт доступ видимо.
Сомневаюсь, тогда бы клинился цикл loop

Код: Выделить всё

  if (digitalRead(RECV_PIN) == LOW)     
    eventTime=millis(),digitalWrite(timer_ledPIN, HIGH);  
а светодиод таймера гаснет, как Вы пишете. К тому же, автор скетча пишет, что запись используется только когда серва достига целевого угла. Отладка сильно помогла бы, если скетч не ловит клина - это уже хорошо ))

p.s. чтобы не морочиться с фьюзами, для теста можно написать простой код, сохранить случайное значение и сразу считать, если совпало моргнуть 1 раз, если нет - 2 раза )))

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:22 pm
Федюнь
Запись происходит когда серва остановится.
Серва останавливается когда отпускаем кнопку,и тогда же гаснет светодиод.
Так же там было описание что в первый запуск надо нажать кнопку которая управляет скоростью,для того что бы записалось значение в EEPROM.
Всё это я проверил на ардуине с атмегой 328,всё работает прекрасно.В коде нет проблем.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:30 pm
shalex
Федюнь писал(а): Серва останавливается когда отпускаем кнопку,и тогда же гаснет светодиод.
а с 168 повторно светодиод загорается, если еще раз кнопку на пульте нажать?

p.s. и пока не нахожу информацию, что есть фьюзы, запрещающие запись в eeprom

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:41 pm
Федюнь
Светодиод таймера загорается от любого нажатия кнопки,и даже от тех кнопок код которых не прописан в программе.Получается что ИК приёмник ловит любой код и светодиод это отображает,но команды не выполняет.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:46 pm
shalex
Федюнь писал(а):Светодиод таймера загорается от любого нажатия кнопки,и даже от тех кнопок код которых не прописан в программе.Получается что ИК приёмник ловит любой код и светодиод это отображает,но команды не выполняет.
предлагаю тогда решать проблемы по очереди - взять пример sweep для Servo и посмотреть, как он выполняется на 168 (серва должна ходить туда-сюда)

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:53 pm
Василий
Непонятно - в EEPROM.write передается значение a_1 типа int, размером 2 байта.

Автор пишет что делит и умножает значение на 118 так как в ячейку лезет только байт (eeprom пишется вроде только байтами).
Очень может быть, что либо на записи, либо, что более вероятно на чтении из EEPROM получается какой-нибудь косяк с переполнением или просто с получением неверного значения.

Я бы попробовал для начала записать 0 в те ячейки eeprom которые используются, а потом уже пробовать скрипт.

Re: Arduino - общие обсуждения

Добавлено: Сб янв 30, 2016 8:54 pm
Федюнь
Прошил пример sweep для Servo. Серва крутится согласно программе.)))
Василий.Вместо 118 записать 0? и включить?