|
06.01.2016, 13:54 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
На симисторе А1 с А2 местами перепутаны
|
06.01.2016, 14:11 | #2 |
Junior Member
Регистрация: 06.01.2016
Сообщений: 3
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
|
07.01.2016, 14:18 | #3 |
Junior Member
Регистрация: 06.01.2016
Сообщений: 3
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
|
08.01.2016, 08:34 | #4 |
Junior Member
Регистрация: 05.10.2014
Сообщений: 16
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Разбил себе уже весь лоб. Подскажите плиз, что я делаю не так почему не хочет ардуино работать. В общем суть в следующем. Я купил уже готовый димер модуль по ссылке, скопировал код с 1 страницы этой ветки там где в сериал посылают циферы от 1 до 9, прошил ардуино уно в мониторе порта ставлю все работает. Пошел дальше т.к. нужна автоматизация... подключил к уно nrf24 чтобы не самому сидеть и через монитор эти цифры тыкать в сериал, а они должны с другой ардуино приходить автоматически по wi-fi и все... не работает. Отрубаешь функцию attachInterrupt(), nrf24 начинает работать включаешь, перестает работать... в чем причина, уже перечитал столько литературы ничего не помогает, не получается эту фигню вылечить. Уже и oled дисплей прикрутил чтобы видеть что там происходит... нифига не происходит не работает пока функция внешнего прерывания включена, работает только когда ее выключишь... почему так?
с мастер ардуины данные сразу приходят трехзначные от 1 до 255. вот код, уже разные варианты перепробовал этот был последний. В общем как выше пишу, при включении функции внешнего прерывания nrf24 перестает работать и ничего с ней не происходит никаких данных она не видит. если строку внешнего прерывания в setup закоментировать то все начинает исправно работать и данные приходят. Код:
#include <CyberLib.h> //Библиотека от Cyber-Place.ru volatile uint8_t tic, Dimmer1=255; //uint8_t data; int incomingInt = 255; #include<SPI.h> #include<nRF24L01.h> #include<RF24.h> const uint64_t pipe =0xF0F1F2F3F4LL; RF24 radio(9, 10); #include <OLED_I2C.h> //подключаем олед дисплей OLED myOLED(A4, A5, 8); //extern uint8_t SmallFont[]; extern uint8_t MediumNumbers[]; //extern uint8_t BigNumbers[]; void setup() { myOLED.begin();//подключае дисплей для отладки radio.begin(); //подключаем nrf24 delay(2); radio.setChannel (120); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1, pipe); radio.startListening(); D4_Out; D3_Out;//Настраиваем порты на выход D4_Low; D3_High;//установить на выходах низкий уровень сигнала D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль attachInterrupt(0, detect_up, LOW); //LOW настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень StartTimer1(halfcycle, 40); //время для одного разряда ШИМ StopTimer1(); //остановить таймер // UART_Init(9600); //инициализация порта } //********************обработчики прерываний******************************* void halfcycle() //прерывания таймера { tic++; //счетчик if(Dimmer1 < tic ) D4_High; //управляем выходом } void detect_up() // обработка внешнего прерывания. Сработает по переднему фронту { tic=0; //обнулить счетчик ResumeTimer1(); //запустить таймер attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик } void detect_down() // обработка внешнего прерывания. Сработает по заднему фронту { StopTimer1(); //остановить таймер D4_Low; //логический ноль на выходы tic=0; //обнулить счетчик attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик } //************************************************************************* void loop() {Start if (radio.available()>0) { radio.read(&incomingInt, sizeof(incomingInt)); Dimmer1=incomingInt; myOLED.setFont(MediumNumbers); myOLED.printNumF(Dimmer1, 2, RIGHT, 0); myOLED.update(); } End} Последний раз редактировалось stalker_kz; 08.01.2016 в 08:52. |
08.01.2016, 12:33 | #5 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
__________________
istarik.ru |
08.01.2016, 18:53 | #6 | |
Junior Member
Регистрация: 05.10.2014
Сообщений: 16
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Цитата:
Спасибо за ссылки! Прочитал всю статью по ссылке два раза, вдумчиво, честное слово.... ничего не понял, явно не для моих мозгов, если не затруднит Вас можете простым языком объяснить, что там написано? Смотреть, что внутри библиотеки... ну я в блокноте открыл ее, ну лес там непонятных цифирь и команд для меня ничего не значащих, что я там собственно должен был увидеть? |
|
10.01.2016, 16:44 | #7 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Цитата:
Берем интервал 100мс и делим его на 10 частей по 10мс. 1 часть 10мс или 10% мощности |
|
10.01.2016, 18:43 | #8 | |
Junior Member
Регистрация: 05.10.2014
Сообщений: 16
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Цитата:
Плиз ногами не пинать я в этих вопросах плохо разбираясь. |
|
10.01.2016, 19:18 | #9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Все гораздо проще
Детектор на PC814 вам не нужен |
13.01.2016, 15:28 | #10 |
Junior Member
Регистрация: 13.01.2016
Сообщений: 4
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Добрый день.
Подскажите пожалуйста правильны ли следующие утверждения: 1. один диммер модуль управляет одной лампочкой/группой лампочек 2. к Arduino Nano можно подключить 10 таких модулей И вопрос - как подключить обычный выключатель/диммер к ардуино нано и этому модулю? Спасибо. И еще - на схеме на первой странице нарисованы резисторы, а на готовой плате их нет. Как это понимать? Последний раз редактировалось RomanT; 13.01.2016 в 16:00. |
Здесь присутствуют: 14 (пользователей: 0 , гостей: 14) | |
|
|