C:\arduino-1.0.4\libraries\IRremote\IRremote.cpp:529: error: 'volatile struct irparams_t' has no member named 'rawlen' выдает такую ошибку, что делать подскажите
а еще не подскажешь, как использовать код полученный с пульта в программе и приемник разве не на аналоговый цеплять надо вход?
хотел собрать машинку и управлять ей с пульта для магнитолы а как написать программу не могу сообразить
Как раз недавно сделал такое. Использовал пульт от DVD'шника. Тут программка работает в сочитании с драйвером моторов L293D Код (C): #include <IRremote.h> //импорт библиотеки int RECV_PIN = 26; IRrecv irrecv(RECV_PIN); //указывам пин подключения ИК приёмника decode_results results; // Какая то хрень для ИК приёмника int leftPin = 22; int rightPin = 24; int goPin = 53; int nazadPin = 51; int gazPin = 7; int power = 150; int led1 = 30; char command = '0'; int rByte = 0; boolean stateSvet = LOW; void setup() { pinMode(leftPin, OUTPUT); pinMode(rightPin, OUTPUT); pinMode(goPin, OUTPUT); pinMode(nazadPin, OUTPUT); pinMode(gazPin, OUTPUT); pinMode(led1, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver для ик приёмника } void svet() { if (stateSvet == LOW) stateSvet = HIGH; else stateSvet = LOW; digitalWrite(led1, stateSvet); } void sMotor() { digitalWrite(goPin, LOW); digitalWrite(nazadPin, LOW); } void go() { sMotor(); digitalWrite(goPin, HIGH); // digitalWrite(led1, HIGH); } void nazad() { sMotor(); digitalWrite(nazadPin, HIGH); digitalWrite(led1, LOW); } void sRul() { digitalWrite(leftPin, LOW); digitalWrite(rightPin, LOW); } void leftRul() { sRul(); digitalWrite(leftPin, HIGH); } void rightRul() { sRul(); digitalWrite(rightPin, HIGH); } void razvorotLeft() { rightRul(); nazad(); delay(500); leftRul(); go(); delay(700); rightRul(); nazad(); delay(100); sMotor(); sRul(); } void loop() {/* if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value }*/ if (rByte = Serial.available() != 0 || irrecv.decode(&results)) { command = Serial.read(); Serial.println(command); Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value if (command == '2' || results.value == 0xFF22DD) go(); else if (command == '3' || results.value == 0xFF12ED) nazad(); else if (command == '1' || results.value == 0xFF609F) sMotor(); else if (command == '5' || results.value == 0xFF32CD) leftRul(); else if (command == '6' || results.value == 0xFF02FD) rightRul(); if (command == '4' || results.value == 0xFF609F) sRul(); else if (command == 'a') razvorotLeft(); else if (command == 's') svet(); if (command == 'z' || results.value == 0xFFB04F) power = 100; else if (command == 'x' || results.value == 0xFF906F) power = 200; else if (command == 'c' || results.value == 0xFFA05F) power = 255; analogWrite(gazPin, power); } } P.S. ИК порту не нужен аналоговый вход, у меня подключен к цифровому. Использовал только один аналоговый выход для регулировки мощности двигателя. Сейчас приобрёл датчик Холла, хочу научиться контролировать обороты, и менять мощность в зависимости от от нагрузки на двигатель. P.S.S. питание раздельное. Для ардуины (крона 9V), для двигателей (аккумулятор шёл родной с машинкой когда то 6V)
Сейчас кратко изложу: И так мне понадобилось: 1. Была у меня старая машинка на радиоуправлении, потом мне её корпус собака сгрызла, пульт потерял. Лежала долго в кладовке. К ней остался аккумулятор с зарядным 2. Зная возможности ардуины, решил попробовать. (arduino mega 2560) 3. Так как моторы довольно мощные, то нужно использовать отдельное питание (аккумулятор к машинке). Решение драйвер L293D 4. Для управления с пульта потребовался ИК приёмник, кажется на 36 КГц. (взял что было) 5. Ну и что бы всё это собрать без пайки понадобилась хлебная доска (БрэдБоард) Как действовал. 1. Моторы подключал из инструкции по этому видео: 2. С ИК датчиком научился пользоваться изучая это: http://www.youtube.com/watch?list=PLcBEB0EOlNqXvJgI_wbhaAG9g8zjVefJx&feature=player_detailpage&v=j_nG6InEfJE Ну а дальше... Пользуясь своими узкими знаниями программирования сотворил такой проект (код в атаче)