Добрый день. С наступившим Новым 2017 ! Задача сделать тахометр на основе ИК приёмника и передатчика. При подключении драйвера IRremote, выдаёт ошибку. Проконсультируйте. Ниже сейчас попробую прикрепить: 1. сам код ( пробный - причём даже совсем не на тахометр ) 2. Фото ошибки 3. Механика
Всё вроде бы элементарно, но я ведь не подключаю RobotIRremote, но на него всё равно материться. При удалении из папки драйверов RobotIRremote, начинает выдавать такую ошибку... смотреть внизу... Надеюсь вы меня проконсультируете читающий человек !
Библиотека IRemote устарела. да и не нужна вам, в принципе говоря. Она для чтения данных с пультов, у вас всё гораздо проще.
А что за ошибка, при компеляции выдаётся ? причем сам скетч работал 15 дней назад, сейчас после праздников запускаю и вот такое....уже переустановил всё и всё равно. Помойму ошибка в самом коде программы.
Можно получить более развёрнутый ответ. Как может устареть библиотека в открытом коде программы. И работают ли теже коды программы для RobotIRremote. У вас тут написано Гуру, значит тогда спрошу как гуру, чтобы не особо вдаваться сразу в язык програмирования, можно ли ( если есть ) вариант кода для RobotIRremote тахометра. На основе прерывания между ИК передатчиком и приёмником.
Инфраструктура изменилась, файл WProgram.h переименовали. Библиотеку IRemote не обновили. Ну предполагая, что вы пользуетесь последними версиями всего, разумеется. Вот у меня был велокомпьютер на герконах. Примерно то же что и ваша задача. В гугле есть более внятно. Если не хотите вдаваться - вам в "закажу проект". Никто ради вас просто так не будет дома собирать стенд и отлаживать код. Код (C++): #include <avr/sleep.h> class Debounce { public: volatile unsigned long time = 0; bool onEvent(); }; const byte wheelPin = 2; const byte pedalPin = 3; Debounce* wheel = new Debounce(); Debounce* pedal = new Debounce(); void setup() { pinMode(wheelPin, INPUT_PULLUP); pinMode(pedalPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(wheelPin), onWheel, LOW); attachInterrupt(digitalPinToInterrupt(pedalPin), onPedal, LOW); Serial.begin(115200); } void loop() { set_sleep_mode(SLEEP_MODE_IDLE); sleep_enable(); sleep_mode(); } void onWheel(){ if (wheel->onEvent()) Serial.print("w"); } void onPedal(){ if (pedal->onEvent()) Serial.print("p"); } bool Debounce::onEvent(){ unsigned long time1 = millis(); if (time1 - this->time > 50) { this->time = time1; return true; } return false; }
Спасибо за ответ. Если честно по идее всё достаточно просто. Не думал что там так всё сложно, посчитать кол-во прерываний за 1 секунду и выдать на монитор порта. А сколько будет стоить разработка такого кода ? ( надеюсь не забанят за такое тут ) поскольку это ладно элементарно, но есть задачи и посложнее, там точно буду заказывать, а сейчас всё как в качестве небольшого стенда всего лишь, для замера оборотов гребных винтов на корабле для сына, сейчас есть рассинхронизация, а не померив не поймёшь да и пригодиться . Сколько такой простой код будет стоить, как вы сами думаете, чтобы на будущее цены понимать.