Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
  4.  
  5. #include "HX711.h"
  6. const int LOADCELL_DOUT_PIN = 5;
  7. const int LOADCELL_SCK_PIN = 6;
  8. HX711 scale;
  9.  
  10. #define clk 2
  11. #define dt 3
  12. #define sw 4
  13. #define in1 7
  14. #define in2 8
  15. #define in3 9
  16. #define in4 10
  17.  
  18. volatile boolean TurnDetected;
  19. volatile boolean up;
  20. bool doonce = 0;
  21. char screen = 0;
  22. boolean changestate = 0;
  23. long weight;
  24. int pump1ml = 20;
  25. int pump2ml = 20;
  26.  
  27.  
  28. void isr0 () {
  29. TurnDetected = true;
  30. up = (digitalRead(clk) == digitalRead(dt));
  31. }
  32.  
  33. void setup() {
  34. Serial.begin(57600);
  35. scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  36. lcd.begin(16, 2);
  37. pinMode(sw, INPUT_PULLUP);
  38. pinMode(clk, INPUT);
  39. pinMode(dt, INPUT);
  40. pinMode(in1, OUTPUT);
  41. pinMode(in2, OUTPUT);
  42. pinMode(in3, OUTPUT);
  43. pinMode(in4, OUTPUT);
  44. digitalWrite(in1, LOW);
  45. digitalWrite(in2, LOW);
  46. digitalWrite(in3, LOW);
  47. digitalWrite(in4, LOW);
  48. attachInterrupt (0, isr0, RISING);
  49. }
  50.  
  51. void loop() {
  52. if (TurnDetected) {
  53. delay(200);
  54. doonce = 0;
  55. if (changestate == 0) {
  56. if (up) {
  57. screen++;
  58. if (screen > 3) {
  59. screen = 3;
  60. }
  61. }
  62. else {
  63. screen = screen - 1;
  64. if (screen < 0) {
  65. screen = 0;
  66. }
  67. }
  68. }
  69. else {
  70. if (up) {
  71. switch (screen) {
  72. case 0: pump1ml = pump1ml + 10;
  73. break;
  74. case 1: pump2ml = pump2ml + 10;
  75. break;
  76. }
  77. }
  78. else {
  79. switch (screen) {
  80. case 0: pump1ml = pump1ml - 10;
  81. break;
  82. case 1: pump2ml = pump2ml - 10;
  83. break;
  84.  
  85. }
  86. }
  87. }
  88. TurnDetected = false;
  89. }
  90.  
  91.  
  92. if (digitalRead(sw) == LOW) {
  93. delay(200);
  94. changestate = !changestate;
  95. doonce = 0;
  96. }
  97.  
  98. if (screen == 0 && doonce == 0) {
  99. lcd.clear();
  100. lcd.print("1 Slozka");
  101. lcd.setCursor(0, 1);
  102. lcd.print(pump1ml);
  103. lcd.setCursor(3, 1);
  104. lcd.print("ml");
  105. if (changestate == 0) {
  106. lcd.setCursor(9, 0 );
  107. lcd.print("Zmenit?");
  108. }
  109. doonce = 1;
  110. }
  111.  
  112. if (screen == 1 && doonce == 0) {
  113. lcd.clear();
  114. lcd.print("2 Slozka");
  115. lcd.setCursor(0, 1);
  116. lcd.print(pump2ml);
  117. lcd.setCursor(3, 1);
  118. lcd.print("ml");
  119. if (changestate == 0) {
  120. lcd.setCursor(9, 0 );
  121. lcd.print("Zmenit?");
  122. }
  123. doonce = 1;
  124. }
  125.  
  126.  
  127. if (screen == 2 && doonce == 0) {
  128. lcd.clear();
  129. if (changestate == 0) {
  130. lcd.print("Zacit davkovat?");
  131. lcd.setCursor(0, 1);
  132. lcd.print("Spravny pomer?");
  133. doonce = 1;
  134. }
  135. else {
  136. lcd.print("Cekejte !");
  137. delay(100);
  138. lcd.clear();
  139. lcd.print("Pumpa 1 Zapnuta");
  140. digitalWrite(in1, HIGH);
  141. while (scale.read() - weight < 3000) {
  142.  
  143. }
  144. lcd.clear();
  145. lcd.print(pump1ml);
  146. lcd.print("ml");
  147. delay((pump1ml/11)*1000);
  148. digitalWrite(in1, LOW);
  149. delay(2000);
  150. weight = scale.read();
  151. delay(100);
  152. lcd.clear();
  153. lcd.print("Pumpa 2 Zapnuta");
  154. digitalWrite(in3, HIGH);
  155. while (scale.read() - weight < 3000) {
  156.  
  157. }
  158. lcd.clear();
  159. lcd.print(pump2ml);
  160. lcd.print("ml");
  161. delay((pump2ml/12)*1000);
  162. digitalWrite(in3, LOW);
  163. delay(2000);
  164.  
  165. if (scale.is_ready()) {
  166. long reading = scale.read();
  167. Serial.print("HX711 reading: ");
  168. Serial.println(reading);
  169. } else {
  170. Serial.println("HX711 not found.");
  171. }
  172.  
  173.  
  174. changestate = 0;
  175. }
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement