Advertisement
Alexcnc

Cycle

Dec 23rd, 2021
897
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. LiquidCrystal_I2C lcd(0x27,16,2);
  5.  
  6. volatile boolean A, B;
  7. volatile long P;                   //число прерываний
  8. long relayPin;
  9.  
  10.  
  11. void setup() {
  12. pinMode(relayPin, OUTPUT);          // выход на сигнальное релле
  13. pinMode(6, INPUT);                  // кнопка reser
  14. pinMode(2, INPUT);                  // вход сигнала А с датчика
  15. attachInterrupt(0,blink1, RISING);  // первое прерывание с датчика
  16. lcd.begin();                        // инициализация экрана
  17. lcd.backlight();                    // вкл. подсветки
  18. }
  19.  
  20. void loop()              // обработка вывода на екран и количества цыклов
  21. {
  22. if (digitalRead(6)) P=0;            // если нажата кнопка reset, то Р сбрасываем в ноль
  23. lcd.setCursor(0,0);                 // устанавливаем курсор, 1 позиция 0 строка
  24. lcd.print("Cycle=");                // пишем Cycle=
  25. lcd.print(P);                       // выводим значение P
  26. if (P >= 500)                       // если счетчик достиг *** значения
  27. {
  28. digitalWrite(relayPin,HIGH);        // устанвливаем 13 pin в 1
  29. }
  30.  
  31. }
  32.  
  33. void blink1()
  34. {                         // обработчик прерывания с датчика
  35. P=P+1;                               // инкремент импульса
  36. }
Advertisement
RAW Paste Data Copied
Advertisement