Для -=zds=-
Просьба написать как ты пользуешь иркей, не знал что можно все значения выдаваемые ардуино другой прогой прочитать.
Все получилось, Спасибо!
Последний раз редактировалось Serg_w; 20.08.2010 в 19:17.
не могу залить скетч, выдает ошибку
"IRrecv does not name a type"
ЗЫ: разобрался не туда библиотеку залил
Последний раз редактировалось илюханец; 15.09.2010 в 16:46.
Вот протокол пультов сони может поможетработает со всеми пультами фирмы сониPHP код:
int ir_pin = 2; //Sensor pin 1 wired through a 220 ohm resistor
int led_pin = 13; //"Ready to Recieve" flag, not needed but nice
int debug = 0; //Serial connection must be started to debug
int start_bit = 2000; //Start bit threshold (Microseconds)
int bin_1 = 1000; //Binary 1 threshold (Microseconds)
int bin_0 = 400; //Binary 0 threshold (Microseconds)
void setup() {
pinMode(led_pin, OUTPUT); //This shows when we're ready to recieve
pinMode(ir_pin, INPUT);
digitalWrite(led_pin, LOW); //not ready yet
Serial.begin(9600);
}
void loop() {
int key = getIRKey(); //Fetch the key
Serial.print("Key Recieved: ");
Serial.println(key);
}
int getIRKey() {
int data[12];
digitalWrite(led_pin, HIGH); //Ok, i'm ready to recieve
while(pulseIn(ir_pin, LOW) < 2200) { //Wait for a start bit
}
data[0] = pulseIn(ir_pin, LOW); //Start measuring bits, I only want low pulses
data[1] = pulseIn(ir_pin, LOW);
data[2] = pulseIn(ir_pin, LOW);
data[3] = pulseIn(ir_pin, LOW);
data[4] = pulseIn(ir_pin, LOW);
data[5] = pulseIn(ir_pin, LOW);
data[6] = pulseIn(ir_pin, LOW);
data[7] = pulseIn(ir_pin, LOW);
data[8] = pulseIn(ir_pin, LOW);
data[9] = pulseIn(ir_pin, LOW);
data[10] = pulseIn(ir_pin, LOW);
data[11] = pulseIn(ir_pin, LOW);
digitalWrite(led_pin, LOW);
if(debug == 1) {
Serial.println("-----");
}
for(int i=0;i<11;i++) { //Parse them
if (debug == 1) {
Serial.println(data[i]);
}
if(data[i] > bin_1) { //is it a 1?
data[i] = 1;
} else {
if(data[i] > bin_0) { //is it a 0?
data[i] = 0;
} else {
data[i] = 2; //Flag the data as invalid; I don't know what it is!
}
}
}
for(int i=0;i<11;i++) { //Pre-check data for errors
if(data[i] > 1) {
return -1; //Return -1 on invalid data
}
}
int result = 0;
int seed = 1;
for(int i=0;i<11;i++) { //Convert bits to integer
if(data[i] == 1) {
result += seed;
}
seed = seed * 2;
}
return result; //Return key number
}
2xeonlink
Спасибо, полезная информация
Последний раз редактировалось илюханец; 17.09.2010 в 13:23.
А можно как то эмулировоть прокрутку, как колесом мышки?
Попробуй добавить в конфиг
VK_MBUTTON 04 04 Средняя кнопка мыши
Вот все коды для мышки
VK_LBUTTON 01 01 Левая кнопка мыши.
VK_RBUTTON 02 02 Правая кнопка мыши.
VK_CANCEL 03 03 Обработка комбинации клавиш Control-Break.
VK_MBUTTON 04 04 Средняя кнопка мыши (трехкнопочная мышь).
VK_XBUTTON1 05 05 Windows 2000/XP: кнопка X1 мыши.
VK_XBUTTON2 06 06 Windows 2000/XP: кнопка X2 мыши.
Последний раз редактировалось Chip; 18.10.2010 в 14:49.
К сожалению данный пульт имеет неизвестный протокол , в этой ветке обсуждали
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)