This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:arduino:buttons:project1 [2017/05/11 07:42] – Somepub | et:arduino:buttons:project1 [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ====== Projekt 1 LED-i juhtimine nupuga | ====== Projekt 1 LED-i juhtimine nupuga | ||
| - | Lisada Arduino plaadile nupp, mille üks juhe ühendada | + | Lisada Arduino plaadile nupp, mille üks juhe ühendada |
| - | **NB!** Kui nupul puudub jadamisi takisti, siis tuleb eriti tähelepanelikult jälgida, et nuppu ei ühendataks | + | **NB!** Kui nupul puudub jadamisi takisti, siis tuleb eriti tähelepanelikult jälgida, et nuppu ei ühendataks |
| {{: | {{: | ||
| - | ~~PB~~ | ||
| ===== Näide #1.1 Nuppu all hoides LED põleb ===== | ===== Näide #1.1 Nuppu all hoides LED põleb ===== | ||
| - | Tegemist on lihtsa programmiga, | + | Tegemist on lihtsa programmiga, |
| Arduino digitaalsete viikude kohta saab lugeda rohkem siit: [[https:// | Arduino digitaalsete viikude kohta saab lugeda rohkem siit: [[https:// | ||
| Line 40: | Line 39: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | // Nupu muutuja | + | // Nupu muutuja |
| nupuOlek = digitalRead(nupp); | nupuOlek = digitalRead(nupp); | ||
| - | // Kui nupp on alla vajutatud, siis seame LED viigu kõrgeks ehk LED süttib | + | // Kui nupp on alla vajutatud, siis seadistame |
| if (nupuOlek == LOW) | if (nupuOlek == LOW) | ||
| { | { | ||
| digitalWrite(led, | digitalWrite(led, | ||
| } | } | ||
| - | // Muul juhul seame LED viigu madalaks ehk LED ei põle | + | // Muul juhul seadistame |
| else | else | ||
| { digitalWrite(led, | { digitalWrite(led, | ||
| Line 55: | Line 54: | ||
| ===== Näide #1.2 Nupule vajutades LED süttib 1 sekundiks ===== | ===== Näide #1.2 Nupule vajutades LED süttib 1 sekundiks ===== | ||
| - | Võrreldes eelmise programmiga on juurde lisatud 1000 ms (millisekundi) pikkune viide pärast LED-i oleku kõrgeks muutmist. Lisatud rida koodis hoiab LED-i põlemas veel viite väärtuse võrra pärast nupu lahti laskmist. Antud meetod on otstarbekas, | + | Võrreldes eelmise programmiga on juurde lisatud 1000 ms (millisekundi) pikkune viide pärast LED-i oleku kõrgeks muutmist. Lisatud rida koodis hoiab LED-i põlemas veel viite väärtuse võrra pärast nupu lahti laskmist. Antud meetod on otstarbekas, |
| <code c> | <code c> | ||
| Line 77: | Line 76: | ||
| void loop() | void loop() | ||
| { | { | ||
| - | // Nupu muutuja | + | // Nupu muutuja |
| nupuOlek = digitalRead(nupp); | nupuOlek = digitalRead(nupp); | ||
| | | ||
| - | /* Kui nupp on alla vajutatud, siis seame LED viigu kõrgeks ehk LED süttib, | + | /* Kui nupp on alla vajutatud, siis seadistame |
| | | ||
| if (nupuOlek == LOW) | if (nupuOlek == LOW) | ||
| Line 92: | Line 91: | ||
| ===== Näide #1.3 Nupule vajutades muudab LED oma olekut ===== | ===== Näide #1.3 Nupule vajutades muudab LED oma olekut ===== | ||
| - | Peatsüklis //loop// LED oleku kõrgeks muutmisele järgneb //while// tsükkel, mis hoiab programmi kinni kuni nupp on lahti lastud ehk viigu olek muutub tagasi kõrgeks. Lisaks on juures viide enne //while// tsüklit ja pärast LED-i oleku muutmist. Konkreetsed viited on vajalikud nupu kontaktide põrkumisest tekkiva värelemise efekti (debounce) eemaldamiseks, | + | Peatsüklis //loop// LED oleku kõrgeks muutmisele järgneb //while// tsükkel, mis hoiab programmi kinni kuni nupp on lahti lastud ehk viigu olek muutub tagasi kõrgeks. Lisaks on juures viide enne //while// tsüklit ja pärast LED-i oleku muutmist. Konkreetsed viited on vajalikud nupu kontaktide põrkumisest tekkiva värelemise efekti (debounce) eemaldamiseks, |
| - | ~~PB~~ | ||
| <code c> | <code c> | ||
| /* | /* | ||
| Line 124: | Line 122: | ||
| } | } | ||
| /* LED viigu olek inverteeritakse ehk seatakse | /* LED viigu olek inverteeritakse ehk seatakse | ||
| - | | + | |
| digitalWrite(led, | digitalWrite(led, | ||
| | | ||