Ищите - да обрящете...
TSOP4838 - на 38КГц - нашел за 2 минуты))
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Судя по описанию - полный аналог, и по частотам, и по назначению выводов. А судя по названию - более поздняя разработка, возможно с улучшенными параметрами1995kenny писал(а):Обошел весь радиорынок, ни в одном магазине нету и , говорят, не будет![]()
Подойдет ли TSOP4838?
Код: Выделить всё
DDRB=0b11111111; //настройка портов
DDRD=0b0001000;
PORTD.3 = 1; Код: Выделить всё
//триггер 1 выхода
if (out1 == 0) {
if (command == 000001) {out1 = 1;}
}
else {
if (command == 000001) {out1 = 0;}
}
Код: Выделить всё
switch(command){//сравниваем принятую команду
case 0: //если приняли 0 то попали сюда
//будем попадать всегда когда нет команды
break;
case 1: //если поймали 1 то сюда и т.д.
//вот и весь "триггер":
out1? (out1=0):(out1=1);
break;
case 2: //если 2
out2? (out2=0):(out2=1);
break;
case 3: //если 3
out3? (out3=0):(out3=1);
break;
case 4: //если 4
out4? (out4=0):(out4=1);
break;
case 5: //если 5
out5? (out5=0):(out5=1);
break;
case 6: //если 6
out6? (out6=0):(out6=1);
break;
default: //если ничего из вышеперечисленного то сюда
}
Код: Выделить всё
...if (command == 000110) ...//для out6, например...Код: Выделить всё
void clear_buff(_){
unsigned char i = 0;
command = 0;//обнуляем
for (i=0; i<14; i++) {
RC5_buffer [i] = 0;
}
}
Код: Выделить всё
...
case 2: //если 2
out2? (out2=0):(out2=1);
clear_buff();
break;
case 3: //если 3
out3? (out3=0):(out3=1);
clear_buff();
break;
//и так далее
...
Код: Выделить всё
...
//вечный цикл
while (1)
{
switch(command){//сравниваем принятую команду
case 0: //если приняли 0 то попали сюда
//будем попадать всегда когда нет команды
break;
case 1: //если поймали 1 то сюда и т.д.
//вот и весь "триггер":
out1? (out1=0):(out1=1);
PORTB.7=out1;
clear_buff();
break;
case 2: //если 2
out2? (out2=0):(out2=1);
PORTB.6=out2;
clear_buff();
break;
case 3: //если 3
out3? (out3=0):(out3=1);
PORTB.5=out3;
clear_buff();
break;
case 4: //если 4
out4? (out4=0):(out4=1);
PORTB.4=out4;
clear_buff();
break;
case 5: //если 5
out5? (out5=0):(out5=1);
PORTB.3=out5;
clear_buff();
break;
case 6: //если 6
out6? (out6=0):(out6=1);
PORTB.2=out6;
clear_buff();
break;
default: //если ничего из вышеперечисленного то сюда
clear_buff();
}
delay_ms(100); //задержка
} //end while(1)
Код: Выделить всё
void clear_buff(_){
unsigned char i = 0;
command = 0;//обнуляем
for (i=0; i<14; i++) {
RC5_buffer [i] = 0;
}
}Код: Выделить всё
clear_buff(); Код: Выделить всё
void clear_buff(){... //а не void clear_buff(_){
Да, действительно это плата с симисторами и оптопарами, Для управления тремя нагрузками 220В 4А. Пока не подключена, т.к. остальное ещё не закончено и стремно немногоnictrace писал(а):А что это за плата без проводочков? Никак собрался мощные нагрузки коммутировать? Респекты!
Приёмник на Тини13 в BASCOM не получится, сам пробовал... хотя интересно реально ли на Тини13 сделать приёмник команд RC5.Секретный кот писал(а):Берём BASCOM-AVR и за два вечера рожаем на любой вкус пульт (RC5/RC6) и приёмник, хоть на 2313, хоть на 8515, хоть на Tiny13.

Я не пробовал за ненадобностью, но особых проблем не вижу – т.к. понадобится только 8-битный таймер 0, который в Тини13 есть.Krik99 писал(а):Приёмник на Тини13 в BASCOM не получится, сам пробовал... хотя интересно реально ли на Тини13 сделать приёмник команд RC5.