Advertisement
Guest User

sterownik_pralki

a guest
Jun 13th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2.  
  3. LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
  4.  
  5. int silnik=0;
  6. int moc=0;
  7. int czas=0;
  8. double x;
  9. int temp=30;
  10. int obr=600;
  11. int tryb=0;
  12. int EnB=8;
  13. int En4=9;
  14. int En3=10;
  15. int Przyc=11;
  16. int s;
  17.  
  18. void setup(){
  19.  
  20. Serial.begin(9600);
  21. lcd.begin(16, 2); //Deklaracja typu
  22.  
  23. pinMode(EnB,OUTPUT);
  24. pinMode(En4,OUTPUT);
  25. pinMode(En3,OUTPUT);
  26.  
  27. digitalWrite(EnB,LOW);
  28. digitalWrite(En4,LOW);
  29. digitalWrite(En3,LOW);
  30.  
  31. pinMode(Przyc,INPUT_PULLUP);
  32. ekran_powitalny();
  33.  
  34. digitalWrite(Przyc,HIGH);
  35. delay(200);
  36.  
  37. while(digitalRead(Przyc)==HIGH){
  38.  
  39. Tryb();
  40.  
  41. //lcd.setCursor(14,1);
  42. //lcd.print(tryb);
  43. delay(100);
  44. }
  45. delay(200);
  46. lcd.clear();
  47.  
  48. wyswietlanie_menu_wyboru();
  49. x=0;
  50.  
  51. digitalWrite(Przyc,HIGH);
  52. delay(200);
  53. while(digitalRead(Przyc)==HIGH){
  54.  
  55. Tempt();
  56.  
  57. lcd.setCursor(5,0);
  58. lcd.print(temp);
  59. delay(100);
  60. }
  61. x=0;
  62.  
  63. digitalWrite(Przyc,HIGH);
  64. delay(200);
  65. while(digitalRead(Przyc)==HIGH){
  66.  
  67. Obroty();
  68.  
  69. lcd.setCursor(5,1);
  70. lcd.print(obr);
  71. delay(200);
  72. }
  73. lcd.clear();
  74.  
  75. switch(tryb){
  76. case 1:
  77. Tryb1();
  78. break;
  79.  
  80. case 2:
  81. Tryb2();
  82. break;
  83.  
  84. case 3:
  85. Tryb3();
  86. break;
  87.  
  88. case 4:
  89. Tryb4();
  90. break;
  91.  
  92. case 5:
  93. Tryb5();
  94. break;
  95.  
  96. case 6:
  97. Tryb6();
  98. break;
  99. }
  100. lcd.setCursor(4,0);
  101. lcd.print("Gotowe!!!");
  102. delay(1000);
  103. }
  104.  
  105. void loop(){
  106. }
  107. void Silnik(int wart, int kierunek){
  108.  
  109. if(kierunek==0){
  110. digitalWrite(En3,0);
  111. digitalWrite(En4,1);
  112. analogWrite(EnB,wart);
  113. }else{
  114. digitalWrite(En3,1);
  115. digitalWrite(En4,0);
  116. analogWrite(EnB,wart);
  117. }
  118. }
  119. void Tempt(){
  120.  
  121. x=analogRead(A5);
  122. if((x>=0)&&(x<256)){
  123. temp=30;
  124. }
  125. if((x>255)&&(x<512)){
  126. temp=40;
  127. }
  128. if((x>511)&&(x<768)){
  129. temp=60;
  130. }
  131. if((x>766)&&(x<1024)){
  132. temp=90;
  133. }
  134. }
  135. void Obroty(){
  136.  
  137. x=analogRead(A5);
  138. if((x>=0)&&(x<256)){
  139. obr=600;
  140. silnik=150;
  141. }
  142. if((x>255)&&(x<512)){
  143. obr=700;
  144. silnik=170;
  145. }
  146. if((x>511)&&(x<768)){
  147. obr=800;
  148. silnik=180;
  149. }
  150. if((x>766)&&(x<1024)){
  151. obr=900;
  152. silnik=200;
  153. }
  154. }
  155. void Tryb(){
  156.  
  157. x=analogRead(A5);
  158. if((x>=0)&&(x<171)){
  159. tryb=1;
  160. lcd.setCursor(0,0);
  161. lcd.print("Pranie wstepne");
  162. }lcd.clear();
  163. if((x>170)&&(x<340)){
  164. tryb=2;
  165. lcd.setCursor(0,0);
  166. lcd.print("Pranie zasadnicze");
  167. }lcd.clear();
  168. if((x>341)&&(x<512)){
  169. tryb=3;
  170. lcd.setCursor(0,0);
  171. lcd.print("Pranie zasadnicze");
  172. }lcd.clear();
  173. if((x>513)&&(x<684)){
  174. tryb=4;
  175. lcd.setCursor(0,0);
  176. lcd.print("Plukanie");
  177. }lcd.clear();
  178. if((x>683)&&(x<853)){
  179. tryb=5;
  180. lcd.setCursor(0,0);
  181. lcd.print("Wirowanie");
  182. }lcd.clear();
  183. if((x>854)&&(x<1024)){
  184. tryb=6;
  185. lcd.setCursor(0,0);
  186. lcd.print("Suszenie");
  187. }lcd.clear();
  188. }
  189. void Tryb2(){
  190.  
  191. for(czas=10;czas>=0;czas--){
  192. Silnik(silnik,0);
  193. Serial.println(czas);
  194. lcd.setCursor(0,0);
  195. lcd.print("Pranie wstepne");
  196. wyswietlanie_czasu();
  197. delay(1000);
  198. }
  199. Silnik(0,0);
  200. lcd.clear();
  201. czas=0;
  202. }
  203. void Tryb3(){
  204.  
  205. for(czas=10;czas>=0;czas--){
  206. Silnik(silnik,czas%2);
  207. Serial.println(czas);
  208. lcd.setCursor(0,0);
  209. lcd.print("Pranie zasadnicze");
  210. wyswietlanie_czasu();
  211. delay(1000);
  212. }
  213. lcd.clear();
  214. czas=0;
  215. Silnik(0,0);
  216. }
  217. void Tryb4(){
  218.  
  219. for(czas=4;czas>=0;czas--){
  220. Silnik(silnik,czas%2);
  221. obr=200;
  222. temp=30;
  223. Serial.println(czas);
  224. lcd.setCursor(0,0);
  225. lcd.print("Plukanie");
  226. wyswietlanie_czasu();
  227. delay(1000);
  228. }
  229. lcd.clear();
  230. czas=0;
  231. Silnik(0,0);
  232. }
  233. void Tryb5(){
  234.  
  235. for(czas=10;czas>=0;czas--){
  236. Silnik(silnik,0);
  237. obr=900;
  238. temp=30;
  239. Serial.println(czas);
  240. lcd.setCursor(0,0);
  241. lcd.print("Wirowanie");
  242. wyswietlanie_czasu();
  243. delay(1000);
  244. }
  245. lcd.clear();
  246. czas=0;
  247. Silnik(0,0);
  248. }
  249. void Tryb6(){
  250.  
  251. for(czas=10;czas>=0;czas--){
  252. Silnik(silnik,czas%2);
  253. obr=500;
  254. Serial.println(czas);
  255. lcd.setCursor(0,0);
  256. lcd.print("Suszenie");
  257. wyswietlanie_czasu();
  258. delay(1000);
  259. }
  260. Silnik(0,0);
  261. lcd.clear();
  262. czas=0;
  263. }
  264. void Tryb1(){
  265.  
  266. Tryb2();
  267. delay(500);
  268. Tryb3();
  269. delay(500);
  270. Tryb4();
  271. delay(500);
  272. Tryb5();
  273. delay(500);
  274. Tryb6();
  275. delay(500);
  276. }
  277.  
  278. void ekran_powitalny(){
  279. lcd.clear();
  280. lcd.setCursor(6,0);
  281. lcd.print("MEiL");
  282. lcd.setCursor(3,1);
  283. lcd.print("Industries");
  284. delay(3000);
  285. lcd.clear();
  286.  
  287. lcd.setCursor(5,0);
  288. lcd.print("Witaj!");
  289. lcd.setCursor(0,1);
  290. lcd.print("Wybierz tryb:");
  291. }
  292.  
  293. void wyswietlanie_menu_wyboru(){
  294.  
  295. lcd.setCursor(0, 0); //Ustawienie kursora
  296. lcd.print("temp "); //Wyúwietlenie tekstu
  297. lcd.setCursor(7,0);
  298. lcd.print("*C");
  299. lcd.setCursor(0, 1); //Ustawienie kursora
  300. lcd.print("obr "); //Wyúwietlenie tekstu
  301. lcd.setCursor(8, 1); //Ustawienie kursora
  302. lcd.print("rpm"); //Wyúwietlenie tekstu
  303. }
  304.  
  305. void wyswietlanie_czasu(){
  306. lcd.setCursor(5,1);
  307. lcd.print(" ");
  308. lcd.setCursor(5,1);
  309. lcd.print(czas);
  310. lcd.setCursor(7,1);
  311. lcd.print("sek");
  312. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement