Advertisement
Eryk_Czarny

sterownik_pieca_v1.2

Oct 13th, 2022 (edited)
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.75 KB | None | 0 0
  1. #include <Stepper.h>
  2.  
  3.  
  4.  
  5. #define A 2 //SEGMENT A
  6. #define B 3 //SEGMENT B
  7. #define C 4 //SEGMENT C
  8. #define D 5 //SEGMENT D
  9. #define E 6 //SEGMENT E
  10. #define F 7 //SEGMENT F
  11. #define G 8 //SEGMENT G
  12. #define H 9 //SEGMENT H
  13.  
  14. //POTENCJOMETR DO REGULACJI PRĘDKOSCI SILNIKA
  15. #define potencjometr A0
  16.  
  17. //Przycisk do sterowania trybami
  18. #define przycisk 1
  19.  
  20. //Przekaznik do sterowania
  21. #define przekaznik 0
  22.  
  23.  
  24. //ZMIENNE DO STEROWANIA
  25. const int kroki = 200; //ILOSC KROKÓW SILNIKA
  26. int predkosc_silnika = 0; //PRĘDKOŚĆ SILNIKA
  27. int odczyt_potencjometr = 0; //ODCZYT Z POTENCJOMETRU
  28. int menu = 0;
  29. unsigned long czas = 0;
  30. unsigned long zapamietany_czas = 0;
  31. unsigned long opoznienie = 500;
  32. unsigned long czas_wtrysku = 0;
  33. unsigned long czas_wtrysku_zap = 0;
  34. Stepper Silnik(kroki, 10, 11, 12, 13); //definicja pinow silnika
  35.  
  36.  
  37.  
  38. void setup()
  39. {
  40.  
  41. //USTAWIENIE POTENCJOMETRU
  42. pinMode(potencjometr, INPUT);
  43.  
  44. //UZWJENIA SILNIKA
  45. pinMode(10, OUTPUT);
  46. pinMode(11, OUTPUT);
  47. pinMode(12, OUTPUT);
  48. pinMode(13, OUTPUT);
  49.  
  50. //wyswietlacz
  51. pinMode(A, OUTPUT);
  52. pinMode(B, OUTPUT);
  53. pinMode(C, OUTPUT);
  54. pinMode(D, OUTPUT);
  55. pinMode(E, OUTPUT);
  56. pinMode(F, OUTPUT);
  57. pinMode(G, OUTPUT);
  58. pinMode(H, OUTPUT); //kropka
  59.  
  60. //przycisk
  61. pinMode(przycisk, INPUT_PULLUP);
  62.  
  63. //przekaznik
  64. pinMode(przekaznik, OUTPUT);
  65. }
  66.  
  67. void loop()
  68. {
  69. //sterowanie_silnikiem(speed_control());
  70. sterowanie_silnikiem(speed_control());
  71. }
  72.  
  73.  
  74. //ODCZYT I KONTORLA PREDKOSCI
  75. int speed_control()
  76. {
  77. menu = sterowanie_przycisk();
  78.  
  79. switch (menu)
  80. {
  81.  
  82. case 1:
  83. digitalWrite(przekaznik, LOW);
  84. //ODCZYT WARTOŚCI Z POTENCJOMETRU
  85. odczyt_potencjometr = analogRead(potencjometr);
  86.  
  87. //ZAMIANA WARTOŚCI POTENCJOMETRA NA PRĘDKOŚĆ
  88. predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
  89. return predkosc_silnika;
  90. break;
  91. case 2:
  92. czas_wtrysku = millis();
  93. odczyt_potencjometr = analogRead(potencjometr);
  94.  
  95. //ZAMIANA WARTOŚCI POTENCJOMETRA NA PRĘDKOŚĆ
  96. predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
  97. if (czas_wtrysku - czas_wtrysku_zap >= 1200UL)
  98. {
  99. digitalWrite(przekaznik, HIGH);
  100.  
  101. }
  102.  
  103. if (czas_wtrysku - czas_wtrysku_zap >= 4200UL)
  104. {
  105. czas_wtrysku_zap = czas_wtrysku;
  106. digitalWrite(przekaznik, LOW);
  107. }
  108. return predkosc_silnika;
  109. break;
  110.  
  111. case 3:
  112. menu = 1;
  113. odczyt_potencjometr = analogRead(potencjometr);
  114. predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
  115. return predkosc_silnika;
  116. break;
  117.  
  118. }
  119.  
  120. //ZWROT RZECZYWISTEJ PREDKOŚC
  121. }
  122.  
  123. //URUCHOMIENIE SILNIKA
  124. void sterowanie_silnikiem(int engine_speed)
  125. {
  126. //DEFINICJA PREDKOŚCI
  127. engine_speed = engine_speed;
  128.  
  129. //USTAWIENIE PRĘDKOŚCI SILNIKA PRĘDKOŚĆ BRANA Z VOID SPEED_CONTROL()
  130. Silnik.setSpeed(engine_speed);
  131.  
  132. //ÞŁYNNY OBRÓT
  133. Silnik.step(kroki / 100);
  134.  
  135.  
  136.  
  137. //WYŚWIETLANIE PRĘDKOŚCI
  138.  
  139. if (engine_speed >= 30 && engine_speed <= 45)
  140. {
  141. wyswietlacz(2);
  142. }
  143.  
  144. else if (engine_speed >= 46 && engine_speed <= 60)
  145. {
  146. wyswietlacz(3);
  147. }
  148.  
  149. else if (engine_speed >= 61 && engine_speed <= 75)
  150. {
  151. wyswietlacz(4);
  152. }
  153.  
  154. else if (engine_speed >= 76 && engine_speed <= 90)
  155. {
  156. wyswietlacz(5);
  157. }
  158.  
  159. else if (engine_speed >= 91 && engine_speed <= 105)
  160. {
  161. wyswietlacz(6);
  162. }
  163.  
  164. else if (engine_speed >= 106 && engine_speed <= 120)
  165. {
  166. wyswietlacz(7);
  167. }
  168.  
  169. else if (engine_speed >= 121 && engine_speed <= 135)
  170. {
  171. wyswietlacz(8);
  172. }
  173.  
  174. else if (engine_speed >= 136 && engine_speed <= 150)
  175. {
  176. wyswietlacz(9);
  177. }
  178.  
  179. else if (engine_speed >= 151 && engine_speed <= 165)
  180. {
  181. wyswietlacz(10);
  182. }
  183.  
  184. else if (engine_speed >= 166 && engine_speed <= 180)
  185. {
  186. wyswietlacz(11);
  187. }
  188.  
  189. else if (engine_speed >= 181 && engine_speed <= 195)
  190. {
  191. wyswietlacz(12);
  192. }
  193.  
  194. else if (engine_speed >= 196 && engine_speed <= 210)
  195. {
  196. wyswietlacz(13);
  197. }
  198.  
  199. else if (engine_speed >= 211 && engine_speed <= 225)
  200. {
  201. wyswietlacz(14);
  202. }
  203.  
  204. else if (engine_speed >= 226 && engine_speed <= 240)
  205. {
  206. wyswietlacz(15);
  207. }
  208.  
  209. else if (engine_speed >= 241 && engine_speed <= 255)
  210. {
  211. wyswietlacz(16);
  212. }
  213.  
  214. else if (engine_speed >= 256 && engine_speed <= 270)
  215. {
  216. wyswietlacz(17);
  217. }
  218.  
  219. else if (engine_speed >= 271 && engine_speed <= 285)
  220. {
  221. wyswietlacz(18);
  222. }
  223.  
  224. else if (engine_speed >= 286 && engine_speed <= 300)
  225. {
  226. wyswietlacz(19);
  227. }
  228.  
  229. else if (engine_speed >= 301 && engine_speed <= 315)
  230. {
  231. wyswietlacz(20);
  232. }
  233.  
  234. else if (engine_speed >= 316 && engine_speed <= 330)
  235. {
  236. wyswietlacz(21);
  237. }
  238. else
  239. {
  240. wyswietlacz(404);
  241. }
  242.  
  243. }
  244.  
  245.  
  246. void wyswietlacz(int cyfra)
  247. {
  248. switch (cyfra)
  249. {
  250. case 1:
  251. digitalWrite(A, LOW);
  252. digitalWrite(B, LOW);
  253. digitalWrite(C, LOW);
  254. digitalWrite(D, LOW);
  255. digitalWrite(E, LOW);
  256. digitalWrite(F, LOW);
  257. digitalWrite(G, HIGH);
  258. digitalWrite(H, HIGH);
  259.  
  260. break;
  261.  
  262. case 2:
  263. digitalWrite(A, HIGH);
  264. digitalWrite(B, LOW);
  265. digitalWrite(C, LOW);
  266. digitalWrite(D, HIGH);
  267. digitalWrite(E, HIGH);
  268. digitalWrite(F, HIGH);
  269. digitalWrite(G, HIGH);
  270. digitalWrite(H, HIGH);
  271.  
  272. break;
  273.  
  274. case 3:
  275. digitalWrite(A, HIGH);
  276. digitalWrite(B, LOW);
  277. digitalWrite(C, LOW);
  278. digitalWrite(D, HIGH);
  279. digitalWrite(E, HIGH);
  280. digitalWrite(F, HIGH);
  281. digitalWrite(G, HIGH);
  282. digitalWrite(H, LOW);
  283.  
  284. break;
  285.  
  286. case 4:
  287. digitalWrite(A, LOW);
  288. digitalWrite(B, LOW);
  289. digitalWrite(C, HIGH);
  290. digitalWrite(D, LOW);
  291. digitalWrite(E, LOW);
  292. digitalWrite(F, HIGH);
  293. digitalWrite(G, LOW);
  294. digitalWrite(H, HIGH);
  295.  
  296. break;
  297.  
  298. case 5:
  299. digitalWrite(A, LOW);
  300. digitalWrite(B, LOW);
  301. digitalWrite(C, HIGH);
  302. digitalWrite(D, LOW);
  303. digitalWrite(E, LOW);
  304. digitalWrite(F, HIGH);
  305. digitalWrite(G, LOW);
  306. digitalWrite(H, LOW);
  307.  
  308. break;
  309.  
  310. case 6:
  311. digitalWrite(A, LOW);
  312. digitalWrite(B, LOW);
  313. digitalWrite(C, LOW);
  314. digitalWrite(D, LOW);
  315. digitalWrite(E, HIGH);
  316. digitalWrite(F, HIGH);
  317. digitalWrite(G, LOW);
  318. digitalWrite(H, HIGH);
  319.  
  320. break;
  321.  
  322. case 7:
  323. digitalWrite(A, LOW);
  324. digitalWrite(B, LOW);
  325. digitalWrite(C, LOW);
  326. digitalWrite(D, LOW);
  327. digitalWrite(E, HIGH);
  328. digitalWrite(F, HIGH);
  329. digitalWrite(G, LOW);
  330. digitalWrite(H, LOW);
  331.  
  332. break;
  333.  
  334. case 8:
  335. digitalWrite(A, HIGH);
  336. digitalWrite(B, LOW);
  337. digitalWrite(C, LOW);
  338. digitalWrite(D, HIGH);
  339. digitalWrite(E, HIGH);
  340. digitalWrite(F, LOW);
  341. digitalWrite(G, LOW);
  342. digitalWrite(H, HIGH);
  343.  
  344. break;
  345.  
  346. case 9:
  347. digitalWrite(A, HIGH);
  348. digitalWrite(B, LOW);
  349. digitalWrite(C, LOW);
  350. digitalWrite(D, HIGH);
  351. digitalWrite(E, HIGH);
  352. digitalWrite(F, LOW);
  353. digitalWrite(G, LOW);
  354. digitalWrite(H, LOW);
  355.  
  356. break;
  357.  
  358. case 10:
  359. digitalWrite(A, LOW);
  360. digitalWrite(B, HIGH);
  361. digitalWrite(C, LOW);
  362. digitalWrite(D, LOW);
  363. digitalWrite(E, HIGH);
  364. digitalWrite(F, LOW);
  365. digitalWrite(G, LOW);
  366. digitalWrite(H, HIGH);
  367.  
  368. break;
  369.  
  370. case 11:
  371. digitalWrite(A, LOW);
  372. digitalWrite(B, HIGH);
  373. digitalWrite(C, LOW);
  374. digitalWrite(D, LOW);
  375. digitalWrite(E, HIGH);
  376. digitalWrite(F, LOW);
  377. digitalWrite(G, LOW);
  378. digitalWrite(H, LOW);
  379.  
  380. break;
  381.  
  382. case 12:
  383. digitalWrite(A, LOW);
  384. digitalWrite(B, HIGH);
  385. digitalWrite(C, LOW);
  386. digitalWrite(D, LOW);
  387. digitalWrite(E, LOW);
  388. digitalWrite(F, LOW);
  389. digitalWrite(G, LOW);
  390. digitalWrite(H, HIGH);
  391.  
  392. break;
  393.  
  394. case 13:
  395. digitalWrite(A, LOW);
  396. digitalWrite(B, HIGH);
  397. digitalWrite(C, LOW);
  398. digitalWrite(D, LOW);
  399. digitalWrite(E, LOW);
  400. digitalWrite(F, LOW);
  401. digitalWrite(G, LOW);
  402. digitalWrite(H, LOW);
  403.  
  404. break;
  405.  
  406. case 14:
  407. digitalWrite(A, LOW);
  408. digitalWrite(B, LOW);
  409. digitalWrite(C, LOW);
  410. digitalWrite(D, HIGH);
  411. digitalWrite(E, HIGH);
  412. digitalWrite(F, HIGH);
  413. digitalWrite(G, HIGH);
  414. digitalWrite(H, HIGH);
  415.  
  416. break;
  417.  
  418. case 15:
  419. digitalWrite(A, LOW);
  420. digitalWrite(B, LOW);
  421. digitalWrite(C, LOW);
  422. digitalWrite(D, HIGH);
  423. digitalWrite(E, HIGH);
  424. digitalWrite(F, HIGH);
  425. digitalWrite(G, HIGH);
  426. digitalWrite(H, LOW);
  427.  
  428. break;
  429.  
  430. case 16:
  431. digitalWrite(A, LOW);
  432. digitalWrite(B, LOW);
  433. digitalWrite(C, LOW);
  434. digitalWrite(D, LOW);
  435. digitalWrite(E, LOW);
  436. digitalWrite(F, LOW);
  437. digitalWrite(G, LOW);
  438. digitalWrite(H, HIGH);
  439.  
  440. break;
  441.  
  442. case 17:
  443. digitalWrite(A, LOW);
  444. digitalWrite(B, LOW);
  445. digitalWrite(C, LOW);
  446. digitalWrite(D, LOW);
  447. digitalWrite(E, LOW);
  448. digitalWrite(F, LOW);
  449. digitalWrite(G, LOW);
  450. digitalWrite(H, LOW);
  451.  
  452. break;
  453.  
  454. case 18:
  455. digitalWrite(A, LOW);
  456. digitalWrite(B, LOW);
  457. digitalWrite(C, LOW);
  458. digitalWrite(D, LOW);
  459. digitalWrite(E, HIGH);
  460. digitalWrite(F, LOW);
  461. digitalWrite(G, LOW);
  462. digitalWrite(H, HIGH);
  463.  
  464. break;
  465.  
  466. case 19:
  467. digitalWrite(A, LOW);
  468. digitalWrite(B, LOW);
  469. digitalWrite(C, LOW);
  470. digitalWrite(D, LOW);
  471. digitalWrite(E, HIGH);
  472. digitalWrite(F, LOW);
  473. digitalWrite(G, LOW);
  474. digitalWrite(H, LOW);
  475.  
  476. break;
  477.  
  478. case 20:
  479. digitalWrite(A, HIGH);
  480. digitalWrite(B, HIGH);
  481. digitalWrite(C, LOW);
  482. digitalWrite(D, LOW);
  483. digitalWrite(E, LOW);
  484. digitalWrite(F, LOW);
  485. digitalWrite(G, LOW);
  486. digitalWrite(H, HIGH);
  487. break;
  488.  
  489. case 21:
  490. digitalWrite(A, HIGH);
  491. digitalWrite(B, HIGH);
  492. digitalWrite(C, LOW);
  493. digitalWrite(D, LOW);
  494. digitalWrite(E, LOW);
  495. digitalWrite(F, LOW);
  496. digitalWrite(G, LOW);
  497. digitalWrite(H, LOW);
  498. break;
  499.  
  500. case 404:
  501. digitalWrite(A, LOW);
  502. digitalWrite(B, HIGH);
  503. digitalWrite(C, HIGH);
  504. digitalWrite(D, LOW);
  505. digitalWrite(E, LOW);
  506. digitalWrite(F, LOW);
  507. digitalWrite(G, LOW);
  508. digitalWrite(H, HIGH);
  509. }
  510.  
  511. }
  512.  
  513.  
  514. int sterowanie_przycisk()
  515. {
  516. if (digitalRead(przycisk) == LOW)
  517. {
  518. czas = millis();
  519. if (czas - zapamietany_czas >= opoznienie)
  520. {
  521. zapamietany_czas = czas;
  522. menu += 1;
  523. }
  524. }
  525. return menu;
  526. }
  527.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement