код из видео
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <MsTimer2.h> LiquidCrystal_I2C lcd(0x27, 16, 2); volatile unsigned int state = 3200; volatile unsigned int blinkMin = 0; volatile unsigned int tm = 0; unsigned int kWh = 0; unsigned int Wm = 0; void setup(){ pinMode(2, INPUT_PULLUP); attachInterrupt(0, blink, RISING); // 2 MsTimer2::set(60000, MsTimer); MsTimer2::start(); lcd.begin(); lcd.backlight(); } void loop(){ // в цикле выводим инфу на экран lcd.setCursor(0, 0); lcd.print(kWh); lcd.print(","); // lcd.print(map(state, 0, 3200, 0, 10)); // можно мапить до одного символа lcd.print(state); lcd.print(" kW'h "); lcd.setCursor(1, 1); lcd.print(Wm); // сколько раз блимнули за минуту // пригодится для графика потребления } void MsTimer(){ Wm = blinkMin; blinkMin = 0; /// тут бы флаг за запись в SD } void blink(){ state--; if(state == 0 || state > 3200){ kWh++; // тут бы флаг на запись в еепррм state = 3200; } blinkMin++; }