Твердотельные Реле очередной баян?

art100
Offline
Зарегистрирован: 09.03.2014

SU-27-16 пишет:

Leshiy пишет:

Ого, там есть оптрон? Кто-нибудь уже выковыривал? Выложите видео, плиз.

оно потому и твёрдотельное что залито ёпоксидкой... без болгарки - никак...

А прозрачная крышечка намекает на кокетливую доступность.

Глазам смотри а руками не трожь.

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а таких 10 штук - почём сделаешь ?
http://www.embed.com.ua/mikrokontrollernyiy-konstruktor/fazoimpulsnoe-up...

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

SU-27-16 пишет:
без болгарки - никак...

Болгарка с паяльным феном в руках будет выглядеть символично.

SU-27-16 пишет:
а таких 10 штук - почём сделаешь?

Эту схему надо еще моделировать и причесывать... Нафига там R1 затребовано 2 Вт? Там ток 5 миллиампер при коротком на 220 вольт...

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Эту схему надо еще моделировать и причесывать... Нафига там R1 затребовано 2 Вт? Там ток 5 миллиампер при коротком на 220 вольт...
нууу, Арт100 - разберётся.... Главное - себестоимость :)

art100
Offline
Зарегистрирован: 09.03.2014

SU-27-16 пишет:

Эту схему надо еще моделировать и причесывать... Нафига там R1 затребовано 2 Вт? Там ток 5 миллиампер при коротком на 220 вольт...
нууу, Арт100 - разберётся.... Главное - себестоимость :)

То есть вы предлагаете к голубой SSR-ке прикрутить детектор ноля, и определять половую орентацию в зависмости это плюс или минус?

У меня че-то чистый С не компилится. А думать лень. Надо на работу ехать.

// http://www.embed.com.ua/mikrokontrollernyiy-konstruktor/fazoimpulsnoe-upravlenie-silovyim-simistorom/
// zero cross
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <avr/sleep.h>

#define ZERO_CROSS PD2 //Вход импульсов ZERO-CROSS (INT0)
#define Sw1 PC0        //Кнопка включения и увеличения яркости 
#define Sw2 PC1        //Кнопка выключения и уменьшения яркости 
 
#define control_triac PD6      //Вывод на управляющий электрод симистора
#define v_change_brightness 10 //Шаг регулировки скорости изменения яркости 
#define t_pulse_triac 20       //Длительность отпирающего импульса симистора 20 мкс (смотреть по ТУ для конкретного симистора)
#define BR_hi 9600	           // максимальная яркость
#define BR_lo 400	           // миниимальная яркость 
#define BR_m 4500	           // средняя яркость

volatile unsigned int brightness;

ISR (INT0_vect)                           //По переднему/заднему фронтам импульса ZERO-CROSS
{
    OCR1A = brightness;                   //Регистру сравнения присваиваем значение яркости
	TCCR1B |= _BV(WGM12) | _BV(CS10);    //Запускаем таймер 1 в режиме СТС с периодом счёта 1 мкс
}

ISR (TIMER0_OVF_vect)            //Опрос кнопок раз в 65 мс
{
    if(bit_is_clear(PINC, Sw1))  //если нажата кнопка +
	{
	    brightness += v_change_brightness;//увеличиваем яркость с заданным шагом
		if(brightness > BR_hi) brightness = BR_hi;//не выходя за пределы
	}
	else if(bit_is_clear(PINC, Sw2)) //если нажата кнопка -
	{
	    brightness -= v_change_brightness;//уменьшаем яркость заданным шагом
		if(brightness <= BR_lo) brightness = BR_lo;//не выходя за пределы
	}
}

ISR (TIMER1_COMPA_vect)           //прерывание для формирования открывающего импульса симистора
{
    PORTD |= _BV(control_triac);  //Передний фронт отпирающего импульса симистора
    _delay_us (t_pulse_triac);    //Длительность отпирающего импульса 
    PORTD &= ~_BV(control_triac); //Задний фронт отпирающего импульса симистора
	TCCR1B = TCNT1 = 0;           //остановка и обнуление таймера 0
}

int main (void)
{
    PORTC |= _BV(Sw1) | _BV(Sw2);//кнопки с подтягивающими резисторами
	DDRD |= _BV(control_triac);  //выход управляющего электрода
	DDRD &= ~_BV(ZERO_CROSS);    //вход детектора нуля
	PORTD |= _BV(ZERO_CROSS);    //с подтягивающим резистором для питания транзистора оптрона
	MCUCR |= _BV(ISC00);         //внешнее прерывание 0 по любому изменению уровня
    GICR |= _BV(INT0);           //разрешаем внешнее прерывание 0
	TIMSK |= _BV(OCIE1A) | _BV(TOIE0);//разрешаем прерывания таймеров 0 и 1
	TCCR0 |= _BV(CS02);          //запускаем таймер 0 с предделителем на 256 для опроса кнопок регулировки яркости
	brightness = BR_m;           //яркость на средину диапазона
    sei();                       //общее разрешение прерываний
	for(;;);                     //бесконечный цикл 
}

Кто-нибудь помнит что тут инклудировать надо?

sketch_jul27a.ino: In function 'void __vector_16()':
sketch_jul27a:30: error: 'PC0' was not declared in this scope
sketch_jul27a:35: error: 'PC1' was not declared in this scope
sketch_jul27a.ino: In function 'void __vector_11()':
sketch_jul27a:44: error: 'PD6' was not declared in this scope
sketch_jul27a.ino: In function 'int main()':
sketch_jul27a:52: error: 'PC0' was not declared in this scope
sketch_jul27a:52: error: 'PC1' was not declared in this scope
sketch_jul27a:53: error: 'PD6' was not declared in this scope
sketch_jul27a:54: error: 'PD2' was not declared in this scope
sketch_jul27a:57: error: 'GICR' was not declared in this scope
sketch_jul27a:58: error: 'TIMSK' was not declared in this scope
sketch_jul27a:59: error: 'TCCR0' was not declared in this scope

 

 

 

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011