100 ом , если приемник TSOP то можно и без резистора
100 ом , если приемник TSOP то можно и без резистора
100 ом, а мощность какая? Без резюка у меня тож ничего не вышло
Без резюка это если цеплять на контакты ICSP? А скетч тотже оставлять?
У меня просто arduino не нано а обычный dumilanove
Мощность не имеет значения.
Подключить приемник к +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.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)