Guest User

Untitled

a guest
Dec 30th, 2024
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. #include "HX711.h"
  2. #include <TM1638plus.h>
  3. #include <elapsedMillis.h>
  4. elapsedMillis timeElapsed;
  5. char odczyt[100];
  6. float ciezar;
  7. HX711 waga;
  8. #define STROBE_TM 4
  9. #define CLOCK_TM 6
  10. #define DIO_TM 7
  11. bool high_freq = false; //default false, If using a high freq CPU > ~100 MHZ set to true.
  12. //Constructor object (GPIO STB , GPIO CLOCK , GPIO DIO, use high freq MCU)
  13. TM1638plus tm(STROBE_TM, CLOCK_TM , DIO_TM, high_freq);
  14. int otwPin = 3;
  15. int ustPin = A1;
  16. int prze = 10;
  17. int ust = map(analogRead(ustPin), 0, 1000, 1400, 1600);
  18.  
  19. float calibration_factor = 53270;
  20. uint8_t buttons = tm.readButtons();
  21.  
  22. unsigned long aktualnyCzas = 0;
  23. unsigned long zapamietanyCzas = 0;
  24. int tara = 0;
  25.  
  26. void setup() {
  27. Serial.begin(9600);
  28. pinMode(otwPin, INPUT_PULLUP);
  29. waga.begin(8, 9);
  30. waga.set_scale();
  31. waga.tare();
  32. waga.power_up();
  33. tm.displayBegin();
  34. pinMode(prze, OUTPUT);
  35. pinMode(ustPin, INPUT);
  36.  
  37. }
  38.  
  39. void loop() {
  40. uint8_t buttons = tm.readButtons();
  41. aktualnyCzas = millis();
  42.  
  43. waga.set_scale(calibration_factor);
  44. ciezar=waga.get_units();
  45. dtostrf(ciezar,7,2,odczyt);
  46.  
  47. if(buttons == 1)
  48. {
  49. ust = map(analogRead(ustPin), 0, 1000, 1400, 1600);
  50. if((analogRead(ustPin) >= 0) && ((analogRead(ustPin) < 50)))
  51. {
  52. tm.reset();
  53. tm.displayText(" 14.00");
  54. delay(100);
  55. }
  56. else if((analogRead(ustPin) >= 50) && ((analogRead(ustPin) < 100)))
  57. {
  58. tm.reset();
  59. tm.displayText(" 14.10");
  60. delay(100);
  61. }
  62. else if((analogRead(ustPin) >= 100) && ((analogRead(ustPin) < 150)))
  63. {
  64. tm.reset();
  65. tm.displayText(" 14.20");
  66. delay(100);
  67. }
  68. else if((analogRead(ustPin) >= 150) && ((analogRead(ustPin) < 200)))
  69. {
  70. tm.reset();
  71. tm.displayText(" 14.30");
  72. delay(100);
  73. }
  74. else if((analogRead(ustPin) >= 200) && ((analogRead(ustPin) < 250)))
  75. {
  76. tm.reset();
  77. tm.displayText(" 14.40");
  78. delay(100);
  79. }
  80. else if((analogRead(ustPin) >= 250) && ((analogRead(ustPin) < 300)))
  81. {
  82. tm.reset();
  83. tm.displayText(" 14.50");
  84. delay(100);
  85. }
  86. else if((analogRead(ustPin) >= 300) && ((analogRead(ustPin) < 350)))
  87. {
  88. tm.reset();
  89. tm.displayText(" 14.60");
  90. delay(100);
  91. }
  92. else if((analogRead(ustPin) >= 350) && ((analogRead(ustPin) < 400)))
  93. {
  94. tm.reset();
  95. tm.displayText(" 14.70");
  96. delay(100);
  97. }
  98. else if((analogRead(ustPin) >= 400) && ((analogRead(ustPin) < 450)))
  99. {
  100. tm.reset();
  101. tm.displayText(" 14.80");
  102. delay(100);
  103. }
  104. else if((analogRead(ustPin) >= 450) && ((analogRead(ustPin) < 500)))
  105. {
  106. tm.reset();
  107. tm.displayText(" 14.90");
  108. delay(100);
  109. }
  110. else if((analogRead(ustPin) >= 500) && ((analogRead(ustPin) < 550)))
  111. {
  112. tm.reset();
  113. tm.displayText(" 15.00");
  114. delay(100);
  115. }
  116. else if((analogRead(ustPin) >= 550) && ((analogRead(ustPin) < 600)))
  117. {
  118. tm.reset();
  119. tm.displayText(" 15.10");
  120. delay(100);
  121. }
  122. else if((analogRead(ustPin) >= 600) && ((analogRead(ustPin) < 650)))
  123. {
  124. tm.reset();
  125. tm.displayText(" 15.20");
  126. delay(100);
  127. }
  128. else if((analogRead(ustPin) >= 650) && ((analogRead(ustPin) < 700)))
  129. {
  130. tm.reset();
  131. tm.displayText(" 15.30");
  132. delay(100);
  133. }
  134. else if((analogRead(ustPin) >= 700) && ((analogRead(ustPin) < 750)))
  135. {
  136. tm.reset();
  137. tm.displayText(" 15.40");
  138. delay(100);
  139. }
  140. else if((analogRead(ustPin) >= 750) && ((analogRead(ustPin) < 800)))
  141. {
  142. tm.reset();
  143. tm.displayText(" 15.50");
  144. delay(100);
  145. }
  146. else if((analogRead(ustPin) >= 800) && ((analogRead(ustPin) < 850)))
  147. {
  148. tm.reset();
  149. tm.displayText(" 15.60");
  150. delay(100);
  151. }
  152. else if((analogRead(ustPin) >= 850) && ((analogRead(ustPin) < 900)))
  153. {
  154. tm.reset();
  155. tm.displayText(" 15.70");
  156. delay(100);
  157. }
  158. else if((analogRead(ustPin) >= 900) && ((analogRead(ustPin) < 950)))
  159. {
  160. tm.reset();
  161. tm.displayText(" 15.80");
  162. delay(100);
  163. }
  164. else if((analogRead(ustPin) >= 950) && ((analogRead(ustPin) < 1000)))
  165. {
  166. tm.reset();
  167. tm.displayText(" 15.90");
  168. delay(100);
  169. }
  170. else if(analogRead(ustPin) >= 1000)
  171. {
  172. tm.reset();
  173. tm.displayText(" 16.00");
  174. delay(100);
  175. }
  176. }
  177.  
  178. else if(digitalRead(otwPin)==LOW)
  179. {
  180. zapamietanyCzas = aktualnyCzas;
  181. tm.reset();
  182. tm.displayText("OTwArTE");
  183. Serial.println("otwarte");
  184. digitalWrite(prze, LOW);
  185. tara = 0;
  186. }
  187.  
  188. else if(digitalRead(otwPin)==HIGH && aktualnyCzas - zapamietanyCzas >= 5000UL)
  189. {
  190. if(tara == 0)
  191. {
  192. waga.tare();
  193. tara = 1;
  194. }
  195. else if(ciezar <= ust*0.01)
  196. {
  197. digitalWrite(prze, HIGH);
  198. }
  199. else if(ciezar > ust*0.01)
  200. {
  201. digitalWrite(prze, LOW);
  202. delay(900);
  203. }
  204. tm.reset();
  205. tm.displayText(odczyt);
  206. Serial.println(odczyt);
  207. Serial.println(ust);
  208. delay(100);
  209. }
  210.  
  211. }
  212.  
Advertisement
Add Comment
Please, Sign In to add comment