350-400В , но эту цепь можно не собирать если не будет индуктивной нагрузки
Вид для печати
350-400В , но эту цепь можно не собирать если не будет индуктивной нагрузки
Почти собрал, но не нашлось резисторов на 43 кОм, можно на 47 поставить? D2 и D4 на схеме - это подключать к 2 и 4 пинам ардуины?
Сделал на макетке, но не уверен что правильно
https://image.prntscr.com/image/a6vY...AbaxpQybCg.png
Заработал диммер, только одно но - не регулирует яркость. Если только в скетче менять значение Dimmer[i - startDimPin] = 90; //выставим яркость соответствующего диммера в 0 а само не меняется
PHP код:
#include <TimerOne.h>
//#include <CyberLib.h>
volatile uint8_t tic ;
uint8_t data;
int startDimPin = 3; //первый диммер
int endDimPin = 12; //последний диммер
int Dimmer[9]; //количество диммеров минус 1
void setup() {
//*********************Настраиваем порты на выход**********************
for ( int i = startDimPin; i <= endDimPin; i++) //пройдемся циклом по портам
{
pinMode (i, OUTPUT);
digitalWrite(i, LOW); // гасим оответствующий пин
Dimmer[i - startDimPin] = 10; //выставим яркость соответствующего диммера в 0
}
//CHANGE – прерывание вызывается при любом изменении значения на входе;
//RISING – вызов прерывания при изменении уровня напряжения с низкого (Low) на высокий(HIGH)
//FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкий (Low)
attachInterrupt(0, detect_up, LOW); // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
Timer1.initialize(40); // Интервал срабатывания таймера в мкс
Timer1.attachInterrupt(halfcycle); //будет вызыватся каждый раз при отсчете заданого времени
Timer1.stop();
Serial.begin(115200); //инициализация порта
randomSeed(analogRead(0)); //псевдогенератор случайных чисел будет использовать шумы на аналог пин 0
}
//********************обработчики прерываний*******************************
void halfcycle() //прерывания таймера
{
tic--; //счетчик
for ( int i = startDimPin; i <= endDimPin; i++)
{
if (Dimmer[i - startDimPin] > tic )
digitalWrite(i, HIGH); //управляем выходом (откроем семистор)
}
}
void detect_up() // обработка внешнего прерывания. Сработает по переднему фронту
{
tic = 200; //обнулить счетчик
Timer1.resume(); //запустить таймер
attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик
}
void detect_down() // обработка внешнего прерывания. Сработает по заднему фронту
{
Timer1.stop(); //остановить таймер
for ( int i = startDimPin; i <= endDimPin; i++)
{
digitalWrite(i, LOW);
}
tic = 200; //обнулить счетчик
attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик
}
void loop() {
{
//********помигаем первым диммером рандомно********
Dimmer[0] = random(10, 200);
//Задержка для более плавного эффекта мерцания
delay(100);
}
}
Яркость сама не будет меняться. Откуда ардуине знать какая яркость нужна?
Здесь уже полет фантазий.
Так то да, но перед скетчем было написано
потому и не стал вникать в код : )Цитата:
Попытался скомпилировать код из шапки под arduino mega - сыпало ошибки
написал свой, может кому пригодится:
используется библиотека TimerOne код компилится для любой платы, в цикле loop рандомно меняется яркость первого диммера каждые 100мс.
А не поставить бы на симистор радиатор? Взял на 800, но мощность нагревателя фена примерно 700. Не большой запас, наверно будет греться.
https://image.prntscr.com/image/rQO3...RVVpc46SnQ.png
Сделал наспех так что всё коряво (с обратной стороны вообще позорище). Главное работает - всё равно будет убрано в корпус.
можно рандомно сделать, можно циклом медленно поднимать , а потом убавлять.
симистор скорее всего на 800Вольт, тебе нужно знать его номинальный токЦитата:
А не поставить бы на симистор радиатор? Взял на 800, но мощность нагревателя фена примерно 700. Не большой запас, наверно будет греться.
Цитата:
Сделал наспех так что всё коряво (с обратной стороны вообще позорище). Главное работает - всё равно будет убрано в корпус.
Нормально выглядит
Я хочу сделать управление через энкодер.
Вот такой симистр брал.
Симистор на 8А получается его мощность 170 Ватт
Через энкодер не проблема, можно сделать.
Р.S.
Только что, пришла в голову мысль как повесить энкодер на одно прерывание.
Странно что никто раньше об этом не догадался :)