скачал отсюда библиотеку IRremote, распаковал, переименовал, в общем как по инструкции. приём команд работает, а вот передача не работает загружаю пример IRsendDemo.ino, не чего не меняю, нажимаю кнопку "Проверить", а мне выдает ошибку компиляции Код (Text): IRsendDemo.ino: In function 'void loop()': IRsendDemo.ino:21:14: error: 'class IRsend' has no member named 'sendSony' Multiple libraries were found for "IRremote.h" Used: C:\Program Files (x86)\Arduino\libraries\IRremote Not used: C:\Program Files (x86)\Arduino\libraries\RobotIRremote Ошибка компиляции. пробовал ставить sendNEC, sendRC5, sendRC6, результат тот же - ошибка компиляции. работает только если отправлять RAW, но RAW слишком много места занемат. ну вот и собственно вопрос, как это починить? пока шарился по просторам интернета находил про #include <Arduino.h>, но это в файл IRremoteInt.h, но все равно попробовал вставить и в IRremote.h, со скобками и без, ток хуже становилось.
Проверьте, что у вас за библиотека по указанному пути лежит. То, что их две с одинаковыми заголовками - это уже неправильно. Ну и кроме того, может стоит ее обновить?
C:\Program Files (x86)\Arduino\libraries\IRremote это библиотека которую я скачал вчера, а еще позавчера и так несколько дней подряд, пока мучаюсь с данной проблемой, и на двух компах. версия ардуины на обоих пк 1.6.3 собственно он пишет что её и использует C:\Program Files (x86)\Arduino\libraries\RobotIRremote а эта родная ардуиновская библиотека и у неё другой синтаксис(пробовал оставить только её) ну и если есть посвежее, то где её взять? написано что некоторые файлы обновились 9 дней назад
Обратите внимание на #ifdef вокруг каждого кусочка кода. Чтобы его включить, вам нужно определить соответствующий макрос через #define. Ну и еще переименуйте или спрячьте куда-нибудь файлы из RobotIRremote.
спасибо за ответ, но я чет его не понял, опыта почти нет в этом деле вот код стандартного примера который у меня не компилируется: Код (Text): /* * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend * An IR LED must be connected to Arduino PWM pin 3. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> IRsend irsend; void setup() { Serial.begin(9600); } void loop() { if (Serial.read() != -1) { for (int i = 0; i < 3; i++) { irsend.sendSony(0xa90, 12); // Sony TV power code delay(40); } } } Вы я так понимаю говорите о файле библиотеке IRremote.h ткните меня пожалуйста конкретно что надо сделать чтоб заработал например IRsendNEC
А желание разобраться есть? Вот нужный вам кусок кода из IRremote.h Код (Text): #ifdef DECODE_NEC long decodeNEC(decode_results *results); #endif Что нужно сделать, чтобы он включился? Правильно, нужно написать в самом начале #define DECODE_NEC Это сложно?
спасибо. не сложно. за это время я нашел статью с библиотекой и примером в которой компиляция идет но вот пока передать не получается, я принимаю код кнопки, правлю скеч, заливаю, отправляю опять в приемник и получаю другой код, соответственно желание есть и я пытаюсь, а не сижу и жду ответа)) ------------------------------------- UpDate в общем по вашему совету не чего не получилось, но получилось с библиотекой из этой статьи посему делаю вывод, что релиз библиотеки из первого сообщения не работоспособен (для данного утверждения обязательно смотреть дату сообщения и релиза!) Благодарю Вас за помощь!
Этот макрос должен быть виден еще и внутри .cpp файла. Там тоже все внутри #ifdef...#endif. p.s. Вы бы хоть сообщения компилятора что ли приводили, а то телепатией приходится заниматься.
ну как я написал выше, с другой версией этой библиотеке все заработало, так что надобности больше нет если только ради интереса, а лог ошибки точно такой же как и в первом сообщении
не знаю ответа на Ваше раздумье, поэтому вот ссылка на архив библиотеки http://arduino-project.net/download/arduino-library/IRremote.rar