![]() |
|
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
![]() |
#1 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Итак по пинам
2 цифровых входа с кнопок-D2 и D3 Датчик тока-D6 ИК датчик - D9 2 выхода для симмисторов D4 и В5 1 выход для сигнального диодика D13 IRQ RF-2400 D10 остальные пины RF согласно http://www.cyber-place.ru/showthread...hlight=rf-2400 |
![]() |
![]() |
![]() |
#2 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Посмотрел либу Mirf там пин IRQ RF модуля не используется
Если будет использоваться режим Sleep контроллера, то тогда эта библиотека не подойдет, так как IRQ сигнал должен будет выводить контроллер из сна Из даташита на модуль Цитата:
пины подключены следующим образом CE--D9 CSN--D10 MOSI--D11 MISO--D12 SCK--D13 IRQ--D2 Если кнопки выключателя не будут использовать режим одновременного нажатия, то можно их подключить к входу D3 через диода и к любым двум цифровым пинам Или попробовать использовать прерывания PCINT для этого нужно установить библиотеку PinChangeInt |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Т.е. в принципе если опрашивать переодически RF-2400, то irq можно вообще не подключать, а что касается пинов, то лучше все же оставить D7 и D8? ну а если задумаю использовать референсные коды то в них можно будет исправить распиновку.
Т.е у меня остается 3 прерывания -Ик датчик и выключатели. Думается что выключатели оставить на внешних, а ИК датчик поставить прерывание по PCINT |
![]() |
![]() |
![]() |
#4 | ||||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Приемник, для управления с пультов
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Ну вот, 8 дней проект не двигался, потратил я их с пользой, начал изучение языка программирования Arduino ну заодно и С. Получилась первая программка которую я написал самостоятельно(бейси� � в школе ровно 20 лет назад не в счет хоть и похвальная грамота по этому поводу имеется), ногами не пинать, конструктивная критика приветствуется. О программе: программа управляет двумя силовыми реле( хотелось сразу диммером по схеме Admina, но Proteus смоделировать 40 мл сек прерывания не может -грит не хватает мощи, а железо все идет, так что тестировать не начем) при помощи двух кнопок - однократное нажатие кнопки включает\выключает реле, двукратное выключает оба реле через 20 секунд, реализовано еще фиксация длинного нажатия, но это на будущее для диммера, пока просто сообщение в терминал. Ну и 2 нажатия это для примера, количество прописываемых нажатий можно увеличивать ограничиваясь только объемом памяти -если конкретно, то при прикручивании кода от IR приемника планируется реализовать определения 5 нажатия для выхода в режим обучения пульту ДУ.
Первоначально программа была написана на языке Arduino, потом были поиски путей оптимизации -прикручена библиотека Nanopin(кстати выложенный в теме многоканальный диммер файлик имеет повреждение в предпоследней строке, так для порядку надо бы поправить - или может это так задумано?), следующим шагом стало прямое чтение с портов и прямая инверсия портов. Получилась полная каша, в связи с чем принято решение дополнить библиотеку Nanopin функциями Dx_Inv -инверсия состояния пина и функциями чтения состояния портов взамен digitalRead, назвал библиотечку Nanopin2. Освоено использование Таймера Ну вот и программа на суд общественности - много комментов, для того что бы таким чайникам как я было понятно, что откуда берется и самому не забыть PHP код:
|
![]() |
![]() |
![]() |
#7 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Пробовал все вплоть до 2000, или где-то с настройками неверно
|
![]() |
![]() |
![]() |
#9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я смотрю Вы очень быстро освоили контроллер и программирование на нем, отличный результат для новичка!
Спасибо за nanopins2, Я немного изменил чтение пинов и подправил nanopins. Теперь можно прочитать состояние пинов например вот так uint8_t n=D4_Read; и в N получим значение 0 или 1 Если появится время допилю nanopins.h. Чтобы можно было в цикле порты индексировать |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Итак, полчено железо из Китая, собран небольшой стенд для железных испытаний
_http://s001.radikal.ru/i195/1303/f2/82f3b2affdedt.jpg начал с простого подклюение кнопки, набросан небольшой скетч PHP код:
PHP код:
Добавил кондер параллельно на 0.1 mF и делай в 40 все стабилизировалось, одно нажатие -0, отпускание -1. Но вот как то мне кажется и кондер уж намного больше чем рекомендовалось ранее и задержка большая. Как бы это боком в будущем не вылезло |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|