• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Мерцание лампы от AC Light Dimmer Module

nikolz

Well-known member
попробуйте так:
Код:
int Dimmer1, Dimmer2;
void setup()
{
D5_Out; D6_Out; //Настраиваем порты на выход
D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль
pinMode(A0, INPUT); pinMode(A1, INPUT);
attachInterrupt(0, detect,High); // настроить срабатывание прерывания interrupt0 на pin 2 на высокий уровень
UART_Init(115200); //инициализация порта
}
void loop()
{    D5_Low; D6_Low;
    if ((Dimmer1--)==0) D5_High;
    if ((Dimmer2--)==0) D6_High;
}
//********************обработчики прерываний*******************************
void detect()
{ Dimmer1=5+analogRead(0); Dimmer2=5+analogRead(1); }
 

petran67

New member
у Вас изначально написано uint8_t.
Покажите сообщение об ошибке.
Там не была проблема в 8, 16 или 32 а в том что отсутствовало продолжение "_t"
Это я добавил, эта ошибка исчезла но после нее есть еще 16 ошибок, которые выдает компилятор. А дальше уже черт ногу сломит ((
 

nikolz

Well-known member
Там не была проблема в 8, 16 или 32 а в том что отсутствовало продолжение "_t"
Это я добавил, эта ошибка исчезла но после нее есть еще 16 ошибок, которые выдает компилятор. А дальше уже черт ногу сломит ((
ну так покажите, а то у меня телепатия сегодня отключилась.
 

petran67

New member
ну так покажите, а то у меня телепатия сегодня отключилась.
error: 'uint16' does not name a type; did you mean 'uint16_t'?
volatile uint16 tic, Dimmer1, Dimmer2;
^~~~~~
uint16_t

In function 'void setup()':
error: 'High' was not declared in this scope
attachInterrupt(0, detect,High); // настроить прерывание interrupt0 на pin 2 на высокий уровень
^~~~

9:27: note: suggested alternative: 'sinh'
attachInterrupt(0, detect,High); // настроить прерывание interrupt0 на pin 2 на высокий уровень
^~~~
sinh

In function 'void loop()':

15:5: error: 'uint16' was not declared in this scope
uint16 T1=micros()-tic;

^~~~~~

15:5: note: suggested alternative: 'uint16_t'
uint16 T1=micros()-tic;
^~~~~~
uint16_t


error: 'ledPin' was not declared in this scope
digitalWrite(ledPin, val); // устанавливаем значение на све
^~~~~~

16:16: note: suggested alternative: 'ldiv'
digitalWrite(ledPin, val); // устанавливаем значение на све
^~~~~~
ldiv


16:24: error: 'val' was not declared in this scope
digitalWrite(ledPin, val); // устанавливаем значение на све
^~~


17:13: error: 'Dimmer1' was not declared in this scope
if ((Dimmer1-T1)>0) { D5_High; delayMicroseconds(50);Dimmer1 =0;}
^~~~~~~

17:21: error: 'T1' was not declared in this scope
if ((Dimmer1-T1)>0) { D5_High; delayMicroseconds(50);Dimmer1 =0;}
^~


17:21: note: suggested alternative: 'A1'
if ((Dimmer1-T1)>0) { D5_High; delayMicroseconds(50);Dimmer1 =0;}
^~
A1


18:13: error: 'Dimmer2' was not declared in this scope
if ((Dimmer2-T1)>0) { D6_High; delayMicroseconds(50);Dimmer2 =0;}
^~~~~~~

18:21: error: 'T1' was not declared in this scope
if ((Dimmer2-T1)>0) { D6_High; delayMicroseconds(50);Dimmer2 =0;}
^~


18:21: note: suggested alternative: 'A1'
if ((Dimmer2-T1)>0) { D6_High; delayMicroseconds(50);Dimmer2 =0;}
^~
A1


In function 'void detect()':

23:3: error: 'tic' was not declared in this scope
tic=micros();
^~~

24:5: error: 'Dimmer1' was not declared in this scope
Dimmer1= map(analogRead(0), 0,1023,50,9800); // Эти входы для потенциометров
^~~~~~~

25:5: error: 'Dimmer2' was not declared in this scope
Dimmer2 = map(analogRead(1), 0,1023,50,9800);
^~~~~~~


exit status 1

'uint16' does not name a type; did you mean 'uint16_t'?
 

petran67

New member
Вобщем, я вопрос уже решил. Нашел по объявлениям исполнителя и за символические 10 евро написал мне скетч, который заставил все заработать как надо.
Спасибо nikolz за желание и попытку помочь.
 
Сверху Снизу