350-400В , но эту цепь можно не собирать если не будет индуктивной нагрузки
350-400В , но эту цепь можно не собирать если не будет индуктивной нагрузки
Почти собрал, но не нашлось резисторов на 43 кОм, можно на 47 поставить? D2 и D4 на схеме - это подключать к 2 и 4 пинам ардуины?
Последний раз редактировалось Kevin; 14.02.2018 в 14:04.
Последний раз редактировалось Chip; 14.02.2018 в 14:54.
Сделал на макетке, но не уверен что правильно
Заработал диммер, только одно но - не регулирует яркость. Если только в скетче менять значение 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. Не большой запас, наверно будет греться.
Сделал наспех так что всё коряво (с обратной стороны вообще позорище). Главное работает - всё равно будет убрано в корпус.
Последний раз редактировалось Kevin; 15.02.2018 в 01:25.
можно рандомно сделать, можно циклом медленно поднимать , а потом убавлять.
симистор скорее всего на 800Вольт, тебе нужно знать его номинальный токА не поставить бы на симистор радиатор? Взял на 800, но мощность нагревателя фена примерно 700. Не большой запас, наверно будет греться.
Сделал наспех так что всё коряво (с обратной стороны вообще позорище). Главное работает - всё равно будет убрано в корпус.
Нормально выглядит
Последний раз редактировалось Chip; 15.02.2018 в 01:30.
Я хочу сделать управление через энкодер.
Вот такой симистр брал.
Последний раз редактировалось Kevin; 15.02.2018 в 01:42.
Симистор на 8А получается его мощность 170 Ватт
Через энкодер не проблема, можно сделать.
Р.S.
Только что, пришла в голову мысль как повесить энкодер на одно прерывание.
Странно что никто раньше об этом не догадался
Последний раз редактировалось Chip; 15.02.2018 в 02:24.
Эту тему просматривают: 8 (пользователей: 0 , гостей: 8)