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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2017, 02:03   #11
wmv84
Junior Member
 
Регистрация: 15.12.2017
Сообщений: 2
Вес репутации: 0
wmv84 is an unknown quantity at this point
По умолчанию

Здравствуйте! Есть желание сделать двухканальную гирлянду на ардуино на основе двух диммеров. Схему спаял, код залил, все работает. Но можно ли заставить ардуино выдавать на 4 пин цифровой сигнал для управления вторым диммером с несколько отличным наполнением скетча. Или брать вторую Нано и заливать в нее свой скетч и привязывать свой диммер?
int AC_LOAD = 3;
int dimming = 128; // Dimming level (0-128) 0 = ON, 128 = OFF

void setup()
{
pinMode(AC_LOAD, OUTPUT);// Set AC Load pin as output
attachInterrupt(0, zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above
}
// the interrupt function must take no parameters and return nothing
void zero_crosss_int() // function to be fired at the zero crossing to dim the light
{
// Firing angle calculation : 1 full 50Hz wave =1/50=20ms
// Every zerocrossing thus: (50Hz)-> 10ms (1/2 Cycle) For 60Hz => 8.33ms
// 10ms=10000us
// (10000us - 10us) / 128 = 75 (Approx) For 60Hz =>65
int dimtime = (75*dimming); // For 60Hz =>65
delayMicroseconds(dimtime); // Off cycle
digitalWrite(AC_LOAD, HIGH); // triac firing
delayMicroseconds(10); // triac On propogation delay (for 60Hz use 8.33)
digitalWrite(AC_LOAD, LOW); // triac Off
}

void loop() {

for (int i=30; i <= 100; i++){
dimming=i;
delay(3);
}
for (int i=5; i <= 100; i++){
dimming=i;
delay(10);
}
for (int i=30; i <= 100; i++){
dimming=i;
delay(3);
}
for (int i=5; i <= 100; i++){
dimming=i;
delay(10);
}
for (int i=100; i >= 10; i--){
dimming=i;
delay(20);
}
for (int i=20; i <= 100; i++){
dimming=i;
delay(30);
}
for (int i=5; i <= 100; i++){
dimming=i;
delay(10);}
for (int i=2; i <= 100; i++){
dimming=i;
delay(1);}
for (int i=2; i <= 100; i++){
dimming=i;
delay(2);}
for (int i=5; i <= 100; i++){
dimming=i;
delay(3);}
for (int i=15; i <= 100; i++){
dimming=i;
delay(4);}
for (int i=25; i <= 100; i++){
dimming=i;
delay(5);}
for (int i=45; i <= 100; i++){
dimming=i;
delay(15);}
}
wmv84 вне форума   Ответить с цитированием
 


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

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

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

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

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


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


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