Мощность не имеет значения.
Подключить приемник к +5в , GND и к D11
Скетчь будет работать на любой Arduino
Мощность не имеет значения.
Подключить приемник к +5в , GND и к D11
Скетчь будет работать на любой Arduino
.......
Все сделал, распиновка оказалось другой, благо сам TSOP не сгорел. Нарисовал подсказку, действительно подключаеться все просто без каких либо доп. компонентов, тупо три ноги. До этого проверял с двумя пультами, от авто мафона LG и китайский пультик для компа, оба пульта этот приемник не видел, зато китайский пультик от какойто старой авто магнитолы запохал как надо, проверял дома, из любого угла комнаты брал на отлично.
DataSheet
PHP код:void setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); // включить приемник
}
void loop() {
if (irrecv.decode(&results))
{
if (results.value > 0 && results.value < 0xFFFFFFFF)
{
ir_dt = results.value;
bytes[0] = ir_dt & 0xFF; // преобразовать в 4-байта
bytes[1] = (ir_dt & 0xFF00) >> 8;
bytes[2] = (ir_dt & 0xFF0000) >> 16;
bytes[3] = (ir_dt & 0xFF000000) >> 24;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру
if (old_ir == ir_dt){delay(250);} //Пауза между короткими нажатиями
else {delay(500);}// Пауза после первого нажатия и удержания(перед повторами)
old_ir = ir_dt;
}
if (results.value == 0xFFFFFFFF )
{
delay(120); //пауза между повторами
Serial.write( bytes,4);
}
irrecv.resume();
}
}
а можно мне объеденить эти два кода, а то по отдельности все работает, а если all in one залить, лезет какаято непонятная белеберда в порт, я так понял от недостающих датчиков, а мне они не нужны.PHP код:#define encoder0PinA 2
#define encoder0PinB 3
#define encoder0PinC 4
byte bytes[2]={0,7} ;
void setup()
{
pinMode(encoder0PinA, INPUT);
digitalWrite(encoder0PinA, HIGH); // подключить подтягивающий резистор
pinMode(encoder0PinB, INPUT);
digitalWrite(encoder0PinB, HIGH); // подключить подтягивающий резистор
pinMode(encoder0PinC, INPUT);
digitalWrite(encoder0PinC, HIGH); // подключить подтягивающий резистор
attachInterrupt(0, doEncoderA, FALLING); // настроить прерывание interrupt 0 на pin 2
attachInterrupt(1, doEncoderB, FALLING); // настроить прерывание interrupt 0 на pin 3
Serial.begin (115200);
}
void loop()
{
if(digitalRead(encoder0PinC)==LOW)
{
bytes[1]=8;
Serial.write( bytes,2);
while(digitalRead(encoder0PinC)==LOW){delay(50);}
bytes[1]=7;
}
}
// обработка прерывания
void doEncoderA()
{
if(digitalRead(encoder0PinB)==HIGH){bytes[0]=25;}else{bytes[0]=5;}
Serial.write( bytes,2);
bytes[0]=0;
}
// обработка прерывания
void doEncoderB()
{
if(digitalRead(encoder0PinA)==HIGH){bytes[0]=5;}else{bytes[0]=25;}
Serial.write( bytes,2);
bytes[0]=0;
}
имхо в схеме не нужен никакой RC фильтр, а вот подтягивать data к 5в возможно придётся.
Последний раз редактировалось Yurgen; 14.08.2010 в 17:20.
Для -=zds=-
Я пытался сделать такой скетч, только еще с резисторными кнопками http://www.compcar.ru/forum/showpost...2&postcount=43 вроде все работает (ты его пробовал), вот только чтобы это работало на ПК, надо использовать программу ALL_IN_ONE.exe, а она через какое то время начинает гасить яркость монитора :-( хотя в скетче даже нет управления яркостью.
У Chipa накрылись исходники этой программы и теперь придется писать заново :-(
Поэтому пока использую только ИК-приемник. При выходе из сна, вылетает ошибка, если ее закрыть то все работает дальше...
Последний раз редактировалось Serg_w; 14.08.2010 в 17:45.
Для -=zds=-
Просьба написать как ты пользуешь иркей, не знал что можно все значения выдаваемые ардуино другой прогой прочитать.
Все получилось, Спасибо!
Последний раз редактировалось Serg_w; 20.08.2010 в 19:17.
не могу залить скетч, выдает ошибку
"IRrecv does not name a type"
ЗЫ: разобрался не туда библиотеку залил
Последний раз редактировалось илюханец; 15.09.2010 в 16:46.
2xeonlink
Спасибо, полезная информация
Эту тему просматривают: 30 (пользователей: 0 , гостей: 30)