Прикладное программирование
May. 15th, 2015 01:36 amБонусом сделал:
- возможность программировать разные каналы управления на разные кнопки пульта.
- начальное состояние каналов "ВЫКЛ." (после перебоев электропитания они были включены всегда). Скорее всего сделаю эту фичу программируемой с записью в EEPROM, для использования в люстрах. В люстрах наоборот, часто бывает, включаешь выключатель и ищешь в темноте пульт :-(
- сделал максимальное время включенного света 30 минут. Тоже программируемая фича, если забыл выключить, то сам выключится. Опцию можно отключить до пропадания питания, потом сама автоматически активируется.
- пока сделал программу на 4 канала управления, у меня есть блоки на 4 канала, но легко меняется под конкретную задачу. Придётся перекомпилировать прошивку.
- пришла идея, сделать для люстры автоматическое включение/выключение в случайной последовательности, если дома никого, то ночью будет иногда включаться свет. Этот режим можно будет активировать с пульта. Место в памяти ещё осталось, грех не использовать его.
- может быть придумаю ещё что-то :-)
Ничего меньше, чем ATmega8a в наших магазинах не нашёл, поэтому буду её ставить вместо штатного микроконтроллера через переходник.
А вот сейчас потратил несколько часов на то, чтобы правильно скомпилировать программу и загрузить в такую древнюю микросхему :-(
Пришлось установить Arduino IDE 1.0.5 версии, под неё ручками прописать дополнительную плату:
потому, как на внутреннем генераторе только 8МГц, а новые IDE прошивают только 16МГц и никак иначе.
Программка нормально загружается. Даже чуть-чуть работает, только пульты не распознаёт :-( так как время у неё внутри идёт в два раза медленнее :-)
F.U.C.K. Ещё пару часов потратил на то, чтобы заставить свежую версию Arduino IDE прошивать старый микроконтроллер на частоте 1 МГц.
Она до этого могла только 16 МГц.
Моё устройство будет 99,9% времени простаивать, поэтому незачем его гонять на высокой частоте. Да и энергопотребление будет снижено.
Чтобы перекомпилировать программу под другую частоту надо изменить параметры "atmegang.build.f_cpu=1000000L" в файле:
C:\Documents and Settings\User-PC\AppData\Roaming\Arduino15\packages\arduino\hardware\avr\1.6.7\boards.txt