Advertisement
Alexcnc

Enkoder liniowy drukarki kierunkowy

Dec 15th, 2021 (edited)
645
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. boolean A, B;
  7. long P;
  8. float M;
  9.  
  10.  
  11. void setup() {
  12. //Serial.begin(115200);
  13. pinMode(6, INPUT); // кнопка reser
  14. pinMode(2, INPUT_PULLUP);
  15. pinMode(3, INPUT_PULLUP);
  16. attachInterrupt(0,blink1, CHANGE);
  17. attachInterrupt(1,blink, CHANGE);
  18. lcd.begin();
  19. lcd.backlight();
  20. }
  21.  
  22. void loop() {
  23. //lcd.clear();
  24. if (digitalRead(6)) P=0;
  25. lcd.setCursor(0,0);
  26. lcd.print("P=");
  27. lcd.print(P);
  28. lcd.print("             ");  // 13 затирающих пробелов
  29. M=(P/7.2)/10;                   // (360*4)    1440/360=7,2
  30.  
  31. lcd.setCursor(0,1);
  32. lcd.print("M=");
  33. lcd.print(M);
  34. lcd.print("cm        ");     // 8 затирающих пробелов
  35. }
  36.  
  37. void blink1(){
  38. A=digitalRead(2);
  39. B=digitalRead(3);
  40. if (B==A) P=P+1;
  41. else P=P-1;
  42. }
  43.  
  44. void blink(){
  45. A=digitalRead(2);
  46. B=digitalRead(3);
  47. if (B!=A) P=P+1;
  48. else P=P-1;
  49. }
Advertisement
RAW Paste Data Copied
Advertisement