This shows you the differences between two versions of the page.
| et:arduino:programming [2017/05/26 11:02] – kaupo.raid | et:arduino:programming [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Programmeerimine ====== | ====== Programmeerimine ====== | ||
| ===== Programmi struktuur ===== | ===== Programmi struktuur ===== | ||
| Line 63: | Line 63: | ||
| Sulgudes olevat sõna //signed// ei pea kasutama, kuna vaikimisi on andmetüübid bipolaarsed. Arduino programmeerimiskeeles on teksti hoidmiseks //String// objekt, mis lubab teha erinevaid tekstitöötluse toiminguid: teksti lisamine ja eemaldamine, | Sulgudes olevat sõna //signed// ei pea kasutama, kuna vaikimisi on andmetüübid bipolaarsed. Arduino programmeerimiskeeles on teksti hoidmiseks //String// objekt, mis lubab teha erinevaid tekstitöötluse toiminguid: teksti lisamine ja eemaldamine, | ||
| + | \\ | ||
| Konstante saab tekitada kahel viisil: | Konstante saab tekitada kahel viisil: | ||
| * makro #define kaudu | * makro #define kaudu | ||
| Line 125: | Line 126: | ||
| === Loogilised tehted === | === Loogilised tehted === | ||
| - | Loogilised tehted on eitus (**!**), loogiline korrutamine (**&&**) ja loogiline liitmine (**||**). Kui kasutada koos erinevaid loogikatehteid siis täidetakse esmalt eitus ja seejärel vasakult paremale järjekorras loogiline liitmine ja korrutamine. Samuti võib kindla tehte eelistamiseks kasutada sulge. | + | Loogilised tehted on eitus (!), loogiline korrutamine (&& |
| [{{ : | [{{ : | ||
| Line 162: | Line 163: | ||
| === Võrdlused === | === Võrdlused === | ||
| Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (> =), väiksem (<) ja väiksem-võrdne (< =). | Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (> =), väiksem (<) ja väiksem-võrdne (< =). | ||
| - | ~~PB~~ | + | < |
| **Näited võrdluste kasutamisest: | **Näited võrdluste kasutamisest: | ||
| <code c> | <code c> | ||
| Line 245: | Line 246: | ||
| </ | </ | ||
| - | **Tsüklis liikumine** | + | **Tsüklis liikumine**\\ |
| Tsüklites on võimalik käimasoleva tsükli mõjutamiseks kasutada käske //break// ja // | Tsüklites on võimalik käimasoleva tsükli mõjutamiseks kasutada käske //break// ja // | ||
| <code c> | <code c> | ||
| /* Tsüklis suurendatakse muutujat loendur. | /* Tsüklis suurendatakse muutujat loendur. | ||
| - | | + | |
| mis sunnib programmi alustama uue tsükliga. | mis sunnib programmi alustama uue tsükliga. | ||
| Seega loenduri suurendamine jääb kolmel juhul vahele. */ | Seega loenduri suurendamine jääb kolmel juhul vahele. */ | ||
| Line 302: | Line 303: | ||
| ===== Viikude juhtimise funktsioonid ===== | ===== Viikude juhtimise funktsioonid ===== | ||
| - | Arduino programmeerimiseks on juba defineeritud hulk erinevaid funktsioone. Need ei ole standard C keele käsud vaid spetsiaalselt Arduino riistvara jaoks loodud funktsioonid. Kõige olulisemad ja vältimatult | + | Arduino programmeerimiseks on juba defineeritud hulk erinevaid funktsioone. Need ei ole standard C keele käsud vaid spetsiaalselt Arduino riistvara jaoks loodud funktsioonid. Kõige olulisemad ja vältimatult |
| **Viigu seadistamine: | **Viigu seadistamine: | ||
| Line 342: | Line 343: | ||
| pinMode(andurAN, | pinMode(andurAN, | ||
| } | } | ||
| - | |||
| void loop(){ | void loop(){ | ||
| if(analogRead(andurAN) > 500){ | if(analogRead(andurAN) > 500){ | ||
| - | // Kui anduri analoogsisendi väärtus on suurem kui 500, siis täidetakse programmi osa | + | // Kui anduri analoogsisendi väärtus on suurem kui 500, |
| + | // siis täidetakse | ||
| } | } | ||
| } | } | ||
| Line 358: | Line 359: | ||
| } | } | ||
| void loop(){ | void loop(){ | ||
| - | digitalWrite(led, | + | digitalWrite(led, |
| } | } | ||
| </ | </ | ||
| Line 370: | Line 371: | ||
| } | } | ||
| void loop(){ | void loop(){ | ||
| - | analogWrite(led, | + | analogWrite(led, |
| } | } | ||
| </ | </ | ||
| - | ===== Ajastus funktsioonid | + | ===== Ajastusfunktsioonid |
| Programmi töös on tihti vaja teostada kindla ajastusega tegevusi. Selleks on Arduino-l olemas neli funktsiooni, | Programmi töös on tihti vaja teostada kindla ajastusega tegevusi. Selleks on Arduino-l olemas neli funktsiooni, | ||
| Line 383: | Line 384: | ||
| void loop() { | void loop() { | ||
| - | // Loenduri tekitamine, mis loendab sekundeid | ||
| delay(1000); | delay(1000); | ||
| - | stopper++; // Muutujale ühe kordne | + | stopper++; // Muutujale ühe liitmine |
| } | } | ||
| </ | </ | ||
| Line 395: | Line 395: | ||
| void loop() { | void loop() { | ||
| delayMicroseconds(1000); | delayMicroseconds(1000); | ||
| - | stopper++; // Muutujale ühe kordne | + | stopper++; // Muutujale ühe liitmine |
| } | } | ||
| </ | </ | ||
| Line 406: | Line 406: | ||
| void loop() { | void loop() { | ||
| - | // Pidev võrdlemine mikrosekundite hetke arvu eelneva | + | // Pidev millisekundite |
| // Kui kahe arvu vahe on suurem kui 1000,siis suurendame muutujat stopper ühe võrra | // Kui kahe arvu vahe on suurem kui 1000,siis suurendame muutujat stopper ühe võrra | ||
| if((long)(millis() - aeg) > 1000){ | if((long)(millis() - aeg) > 1000){ | ||
| - | stopper++; // Muutujale ühe kordne | + | stopper++; // Muutujale ühe liitmine |
| - | aeg = millis(); // Millisekundite | + | aeg = millis(); // Millisekundite arvu salvestamine |
| } | } | ||
| // Programm saab muul ajal vabalt joosta | // Programm saab muul ajal vabalt joosta | ||
| Line 423: | Line 423: | ||
| void loop() { | void loop() { | ||
| - | // Pidev võrdlemine | + | // Pidev mikrosekundite arvu võrdlemine |
| - | // Kui kahe arvu vahe on suurem, kui 1000, siis suurendame muutujat stopper 1 võrra | + | // Kui kahe arvu vahe on suurem kui 1000, siis suurendame muutujat stopper 1 võrra |
| if((long)(micros() - aeg) > 1000){ | if((long)(micros() - aeg) > 1000){ | ||
| stopper++; // Liidame muutujale ühe | stopper++; // Liidame muutujale ühe | ||
| - | aeg = micros(); // Millisekundite | + | aeg = micros(); // Millisekundite arvu salvestamine |
| } | } | ||
| // Programm saab muul ajal vabalt joosta | // Programm saab muul ajal vabalt joosta | ||
| Line 434: | Line 434: | ||
| ===== Teegid ===== | ===== Teegid ===== | ||
| - | Kontrolleri programmeerimise lihtsustamiseks on riistvara tootjad ja/või vabatahtlikud loonud tarkvarateegid erinevate seadmete | + | Kontrolleri programmeerimise lihtsustamiseks on riistvara tootjad ja/või vabatahtlikud loonud tarkvarateegid erinevate seadmete |
| **Mõned Arduino IDE-s vaikimisi olevad teegid:** | **Mõned Arduino IDE-s vaikimisi olevad teegid:** | ||
| Line 447: | Line 447: | ||
| \\ | \\ | ||
| - | Teeke võib ka ise koostada ja seda on mõtekas | + | Teeke võib ka ise koostada ja seda on mõttekas |
| Uue teegi loomiseks võib alustada tavalisest Arduino programmist, | Uue teegi loomiseks võib alustada tavalisest Arduino programmist, | ||
| Line 458: | Line 458: | ||
| - | ~~PB~~ | + | < |
| === Välise teegi lisamine Arduino arenduskeskkonda === | === Välise teegi lisamine Arduino arenduskeskkonda === | ||