![]() |
![]() |
#411 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Если бы я не знал правду, то подумал бы что это реально от свечки на заднем фоне свечение
|
![]() |
![]() |
![]() |
#412 |
Junior Member
Регистрация: 02.11.2014
Сообщений: 11
Вес репутации: 0 ![]() |
![]()
Думаю что по ситуации можно будет от одного канала (свеча ) до всех (маленькое пламя) использовать .
Вот что хочется еще реализовать но я не знаю еще как это делается - - переход механической кнопкой или тумблерами между "пакетами" настроек . Иногда надо поактивней горение ,а иногда это шепот свечи ) - общее диммирование каналов или если можно по отдельности ??..( разные случаи -разная потребность яркостей ) Это видео с этим скетчем: #include <CyberLib.h> //Библиотека от Cyber-Place.ru volatile uint8_t tic, Dimmer1, Dimmer2, Dimmer3, Dimmer4; uint8_t data; void setup() { D4_Out; D5_Out; D6_Out; D7_Out; //Настраиваем порты на выход D4_Low; D5_Low; D6_Low; D7_Low; //установить на выходах низкий уровень сигнала D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль //CHANGE – прерывание вызывается при любом изменении значения на входе; //RISING – вызов прерывания при изменении уровня напряжения с низкого (Low) на высокий(HIGH) //FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкий (Low) attachInterrupt(0, detect_up, LOW); // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень StartTimer1(halfcycle, 40); //время для одного разряда ШИМ StopTimer1(); //остановить таймер UART_Init(115200); //инициализация порта } //********************обработчик и прерываний******************** *********** void halfcycle() //прерывания таймера { tic++; //счетчик if(Dimmer1 < tic ) D4_High; //управляем выходом if(Dimmer2 < tic ) D5_High; //управляем выходом if(Dimmer3 < tic ) D6_High; //управляем выходом if(Dimmer4 < tic ) D7_High; //управляем выходом } void detect_up() // обработка внешнего прерывания. Сработает по переднему фронту { tic=0; //обнулить счетчик ResumeTimer1(); //запустить таймер attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик } void detect_down() // обработка внешнего прерывания. Сработает по заднему фронту { StopTimer1(); //остановить таймер D4_Low; D5_Low; D6_Low; D7_Low; //логический ноль на выходы tic=0; //обнулить счетчик attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик } //**************************************** ********************************* void loop() {Start Dimmer1=random(155, 175); delay(random(10, 300)); Dimmer2=random(155, 175); delay(random(10, 300)); Dimmer3=random(155, 175); delay(random(10, 300)); Dimmer4=random(155, 175); delay(random(10, 300)); End} |
![]() |
![]() |
![]() |
#413 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#414 | |
Junior Member
Регистрация: 02.11.2014
Сообщений: 11
Вес репутации: 0 ![]() |
![]() Цитата:
- что предпочтительней в этой ситуации кнопка или тумблер ? |
|
![]() |
![]() |
![]() |
#415 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вот так пишется функция
PHP код:
PHP код:
PHP код:
|
![]() |
![]() |
![]() |
#416 |
Junior Member
Регистрация: 02.11.2014
Сообщений: 11
Вес репутации: 0 ![]() |
![]()
наверное я не правильно делаю ?
Вместо '' volid loop() "void*profile1() {Start Dimmer1=random(155,*175);* *delay(random(10,*300));* *Dimmer2=random(155,*175);* *delay(random(10,*300)); *Dimmer3=random(155,*175);* *delay(random(10,*300)); *Dimmer4=random(155,*175); *delay(random(10,*300)); End}* void*profile2() {Start Dimmer1=random(50,*100);* *delay(random(10,*300));* *Dimmer2=random(50,*100);* *delay(random(10,*300)); *Dimmer3=random(50,*100);* *delay(random(10,*300)); *Dimmer4=random(50,*100); *delay(random(10,*300)); End}* void*profile3() {Start Dimmer1=random(50,*200);* *delay(random(10,*300));* *Dimmer2=random(50,*200);* *delay(random(10,*300)); *Dimmer3=random(50,*200);* *delay(random(10,*300)); *Dimmer4=random(50,*200); *delay(random(10,*300)); End}* -- А ведь надо прописать еще включение тумблеров , пробую , не туда видемо все , скетч ругается. Это нужно создать новый абзац на подобии "Обработчики Прерываний " ? |
![]() |
![]() |
![]() |
#417 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Start End уберите из функций, я в примере же их не прописывал
|
![]() |
![]() |
![]() |
#418 |
Junior Member
Регистрация: 02.11.2014
Сообщений: 11
Вес репутации: 0 ![]() |
![]()
to Admin
- Да с "Start & End" что то напутал . А есть куда можно посмотреть , наглядно прочесть /понять , как строится правильно скетч , что за чем - азбука ? А то все методом подбора приходиться знакомиться (( понимать примерно понимаю , а составить не знаю как " проверка" ругается .. Вот понимаю что надо сначало заявить ноги 8 9 10 , а в каком месте скетча правильно и как не знаю.. Извиняюсь , но я только в начале пути ) Спасибо за помощь . |
![]() |
![]() |
![]() |
#419 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#420 |
Junior Member
Регистрация: 09.11.2014
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Добрый день.
Я что-то делаю не так? Я просто скопировал код с сайта и вставил, но компиляция выдает ошибку: Arduino: 1.5.7 (Windows 7), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)" sketch_nov09a.ino: In function 'void setup()': sketch_nov09a.ino:17:30: error: 'StartTimer1' was not declared in this scope sketch_nov09a.ino:18:16: error: 'StopTimer1' was not declared in this scope sketch_nov09a.ino:19:21: error: 'UART_Init' was not declared in this scope sketch_nov09a.ino: In function 'void detect_up()': sketch_nov09a.ino:33:15: error: 'ResumeTimer1' was not declared in this scope sketch_nov09a.ino: In function 'void detect_down()': sketch_nov09a.ino:39:13: error: 'StopTimer1' was not declared in this scope sketch_nov09a.ino: In function 'void loop()': sketch_nov09a.ino:47:25: error: 'UART_ReadByte' was not declared in this scope |
![]() |
![]() |
![]() |
Здесь присутствуют: 18 (пользователей: 0 , гостей: 18) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|