12.12.2012, 18:03 | #51 |
Member
Регистрация: 23.11.2012
Сообщений: 47
Вес репутации: 184 |
К сожалению не поможет, но вот нашел проект отдаленно похожий, что я хочу сделать http://engenheirando.com/projetos/automacao/
буду изучать.... |
17.12.2012, 21:33 | #52 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
похоже нет принципиальной возможности в php реализовать toggle button..
нам некуда сохранять промежуточное значение флага.. можно конечно попробовать сохранять данные сессии или тупо писать флажок в какойто файл на диске, но в случае openwrt могут возникнуть трудности.. есть вариант, но он прокатит только если MK не ресетится каждый раз после обращения к порту на котором он висит (а обновление странички с php кодом $serial->deviceOpen(); всегда ресетит мой Uno rev3 ) - нужно сразу после нажатия кнопки определять - "горит лампочка" или нет. если вкл - то кнопка выключает, если наоборот, то наоборот. |
17.12.2012, 21:42 | #53 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Состояние должно сохраняться в переменную ардуино и вы должны его при обращении к ардуино читать и анализировать в php и затем показывать на странице.
Как то так. Вообще низкоуровневое обращение к serial порту нужно писать на C, а не на php т.е. нужен какой-то промежуточный сервер который будет посредником между php и ардуиной. |
17.12.2012, 22:16 | #54 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
если состояние нужно сохранять в переменную, то эта переменная должна инициализироваться при старте скетча и лучше всего если она при старте будет присваиваться текущему состоянию "лампочки": 0 - выключено, 1 - включено.
значит нам нужно уметь считывать это состояние при старте.. скажем, в случае светодиода, наверное это просто.. в случае серва - уже нет.. |
17.12.2012, 23:02 | #55 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
На случай сброса контроллера, лучше писать состояние в EEPROM энергонезависимую память
|
17.12.2012, 23:06 | #56 | |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
Цитата:
я до сих пор бодаюсь с авторесетом своего МК.. или научится запускать его в openwrt без ресета или както научится не дергать сервами при запуске скетча.. ничего в голову не идет.. |
|
17.12.2012, 23:08 | #57 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Вот пример
вместо переменной addr нужно указать адрес ячейки EEPROM Диапазон адресов для Atmega328 от 0 до 1023 PHP код:
|
17.12.2012, 23:43 | #58 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
спасибо. возможно это поможет правильно инициализировать сервы в моем случае..
только мне же нужно сохранять данные в loop - после каждого изменения положения серва. ведь питание может выключится в любой момент.. |
18.12.2012, 00:15 | #59 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Это только пример записи и считывания.
Вставляйте запись и чтение в любое место кода, только не забывайте что число циклов записи в EEPROM Arduino 10000 циклов |
18.12.2012, 00:31 | #60 |
Senior Member
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0 |
а вот этот лимит - это уже не хорошо.. лично мне не нравится такое решение..
буду копать в сторону отключения авторесета.. |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|