Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.01.2017, 12:38   #11
Ilya
Junior Member
 
Регистрация: 02.01.2017
Адрес: Москва
Сообщений: 3
Вес репутации: 0
Ilya is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Здравствуйте.
Пытаюсь завести диммер из шапки с Arduino UNO.
Заранее уточнил на офф.сайте:

Подключаю по следующей схеме:


Взял код из первого поста с малейшими изменениями, которые отражены в комментариях:
PHP код:
#include <CyberLib.h>
volatile uint8_t ticDimmer1Dimmer2Dimmer3;
uint8_t data;

void setup() 

  
D5_OutD6_OutD13_Out// Заменил D4 на D13 для отслеживания изменений на диоде L
  
D5_LowD6_LowD13_Low// т.к. D4 на uno не поддерживает pwm
  
D2_In;
  
attachInterrupt(0detect_upLOW);
  
StartTimer1(halfcycle40);
  
StopTimer1();
  
UART_Init(9600);
}

void halfcycle()

  
tic++;
  if(
Dimmer1 tic D5_High;
  if(
Dimmer2 tic D6_High;
  if(
Dimmer3 tic D13_High// Заменил D4 на D13
}

void  detect_up()
{  
 
tic=0;
 
ResumeTimer1();
 
attachInterrupt(0detect_downHIGH);
 
UART_SendByte('U'); // Отладочный дамп для отслеживания срабатывания прерывания
}  

void  detect_down()
{   
 
StopTimer1();
 
D5_LowD6_LowD13_Low// Заменил D4 на D13
 
tic=0;
 
attachInterrupt(0detect_upLOW);
 
UART_SendByte('D'); // Отладочный дамп для отслеживания срабатывания прерывания
}

void loop() 
{
Start
  Dimmer2
=255// D6
  
if(UART_ReadByte(data))
  {
    
Dimmer1=data// D5
    
Dimmer3=data// D13
  
}
End
В итоге получаю следующее:
  • консоль бешено дампит UDUDUD..., то есть делаю вывод, что прерывания отрабатывают
  • посылаю из консоли указанные в шапке параметры("Г", "d", " "):
    • Г - диод L горит с минимальной яркостью, лампа светит по максимуму
    • d - диод L горит со средней яркостью, лампа светит по максимуму
    • Символ пробела - диод L горит с максимальной яркостью, лампа все так же светит по максимуму
  • при установке диммера на D6, который, как видно из кода, всегда должен быть погашен, лампа всё так же горит

Помогите, пожалуйста, понять, что же я мог сделать не так?
Миниатюры
Нажмите на изображение для увеличения
Название: rect5889.jpg
Просмотров: 990
Размер:	43.8 Кб
ID:	4038   Нажмите на изображение для увеличения
Название: 123.PNG
Просмотров: 956
Размер:	5.1 Кб
ID:	4039  

Последний раз редактировалось Ilya; 02.01.2017 в 14:11.
Ilya вне форума   Ответить с цитированием
 


Здесь присутствуют: 7 (пользователей: 0 , гостей: 7)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:05. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика