Работаю над мини-проектом: была поставлена задача сделать счётчик баллов, которым можно будет управлять ИК-пультом. Все компоненты (кроме Arduino Uno) из Амперки: ЖК-экран 16x2 от МЭЛТ, ИК-приёмник TSOP 22 и ИК-пульт "Амперка". Код получился таким: Код (C++): #include <LiquidCrystalRus.h> #include "IRremote.h" IRrecv i(A0); decode_results in; LiquidCrystalRus d(12, 11, 5, 4, 3, 2); byte us = 0x1689609F; byte ds = 0x1689B847; byte uf = 0x168950AF; byte df = 0x168958A7; int b = 0; void setup() { d.begin(16, 2); d.print("Кол-во баллов:"); i.enableIRIn(); d.setCursor(0, 1); d.print(b); } void loop() { char(b); if (i.decode( &in)) { if (in.value == us) { b=b+1; } else if (in.value == ds) { b=b-1; } else if (in.value == uf) { b=b+10; } else if (in.value == df) { b=b-10; } if (b < 0) { b = 0; } if (b > 500) { b = 500; } d.setCursor(0,1); d.print(b); } i.resume(); } Код кнопок узнавал так: Код (C++): #include "IRremote.h" IRrecv irrecv(A0); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if ( irrecv.decode( &results )) { Serial.println( results.value, HEX); irrecv.resume(); } } Но в итоге счётчик не реагирует на пульт. Что делать ума ни приложу. Если поможете буду благодарен)) P. S. Подключал ровно так же как прописано статье wiki Амперка про ЖК-экраны 16x2, Только ещё подключил ИК-приёмник.
Ну, про типы уже сказано. Кроме типов: 1) что означает глубокомысленная запись char(b); в первой строчке в loop? 2) Какое отношение оно имеет к int b = 0; в строке 10? 3) Наконец, если уж b теперь char, то зачем Вы его сравнивает на >500, если char никогда не бывает больше 127? 4) почему resume вынесено за if ?
Ну он ругается, но пропускает. Вот что пишет: Спойлер: Отчёт компилятора C:\Users\Пользователь\Desktop\Arduino Code\dps_Uk_v1\dps_Uk_v1.ino:6:11: warning: large integer implicitly truncated to unsigned type [-Woverflow] C:\Users\Пользователь\Desktop\Arduino Code\dps_Uk_v1\dps_Uk_v1.ino:7:11: warning: large integer implicitly truncated to unsigned type [-Woverflow] C:\Users\Пользователь\Desktop\Arduino Code\dps_Uk_v1\dps_Uk_v1.ino:8:11: warning: large integer implicitly truncated to unsigned type [-Woverflow] C:\Users\Пользователь\Desktop\Arduino Code\dps_Uk_v1\dps_Uk_v1.ino:9:11: warning: large integer implicitly truncated to unsigned type [-Woverflow] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '160' from 'int' to 'char' inside { } [-Wnarrowing] }; ^ C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '161' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '224' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '163' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '164' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '165' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '166' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '167' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\ПользовательDocuments\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '168' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '169' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '170' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '225' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '171' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '172' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '226' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '173' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '174' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '175' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '176' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '177' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '178' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '179' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '180' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '227' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '182' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '183' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '184' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '185' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '186' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '187' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '188' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '189' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '190' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '191' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '228' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '229' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '192' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '193' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '230' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '194' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '195' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '196' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '197' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '198' from 'int' to 'char' inside { } [-Wnarrowing] C:\Users\Пользователь\Documents\Arduino\libraries\LiquidCrystalRus-master\LiquidCrystalRus.cpp:21:9: warning: narrowing conversion of '199' from 'int' to 'char' inside { } [-Wnarrowing] Скетч использует 8330 байт (25%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 307 байт (14%) динамической памяти, оставляя 1741 байт для локальных переменных. Максимум: 2048 байт.
Очень большое заблуждение думать, что варнинги компилятора никак не влияют на программу. Ещё большее заблуждение думать, что если компилятор ничего не сообщает, то Программа будет работать так, как задумывалось программистом.
Спасибо. LiquidCrystalRus заменил на LiquidCrystal (и изменил программу под неё разумеется) и последовал совету ZAZ-965. Про char(b): Я просто в один момент предположил, что экран просто не хочет int выводить и поставил программе менять у переменной b тип int на char. После "фиаско" это убрал, но одну строчку пропустил Саму переменную b ввожу в строке № 10 для вывода количества баллов. А resume поставил после if изначально, не подумал, что так я постоянно перезапускаю ИК- приёмник и принять он следовательно ничего не может. За это ОТДЕЛЬНОЕ спасибо! А так прога заработала, только получил баг с очисткой экрана, но он был устранён.