Muutre¾iim (ingl. Toggle)
Vaatame lähemalt, milliste meetoditega on võimalik pöörata muutujaid teistpidiseks 0 ja 1 vahel. Tüüpiliselt on C++ mitmeid erinevaid võimalusi teha sama asja, pisut teises stiilis ja siin tuleb mängu üldine lähenemine koodikirjutamisse ja skripti autori isiklikud, loomingulised eelistused.
Muutre¾iim või lülitusloogika tähendab olukorda, kus mingi väärtus vahetub kordamööda kahe oleku vahel iga kord, kui tingimus täidetakse või sündmus aset leiab. Arduino koodis kasutatakse seda sageli millegi sisse- ja väljalülitamiseks (nt LED-i oleku muutmine, ühe nupuvajutusega).
Põhimõtteliselt on see loogika järgmine:
Kõige levinumad väärtused Arduino kontekstis on:
Toome siinkohal välja neli peamist muutre¾iimi võtet. Võtame näidisprogrammide tegemisel aluseks ühe led tule diskreetse oleku, kui väljund o1 väärtus on 0 (ka false), siis tuli ei põle. Teisalt kui o1 on 1 (ka true) siis on väljundpordis signaal ja led tuli põleb.
if .. else if See on selge struktuuriga, näitab detailselt ära, mis on tingimus ja mida selle peale peab muutujale o1 omistama. Näiteks if (o1 == 0){ // kui o1 on väljas, siis o1 = 1; // lülita tuli sisse }else if (o1 == 1){ // kui o1 on sees, siis o1 = 0; // lülita tuli välja }
o1 = 1 - o1; See on aritmeetiline muutmine, mis töötab hästi binaarsete väärtuste 1 ja 0 vahel. Kui väärtus oli enne 1, siis on tehte 1 - 1 tulemuseks 0, kui enne oli väärtus 0, siis on tehte 1 - 0 tulemuseks 1. o1 = 1 - o1;
o1 ^= 1; Bitinihe Eksklusiivne VÕI (Bitwise XOR) on C/C++ (ja Arduino) kontekstis kõige elegantsem ja tõhusam viis ühe biti (või 1 ja 0) muutre¾iimi teostamiseks, kus kasutatakse operaatorit ∧ (eksklusiivne VÕI). o1 ^= 1; Selles väljendis kasutatud ^ märki nimetatakse eesti keeles katusmärgiks või karetiks (inglise keeles caret). Pisut problemaatiline võib olla Eesti või Skandinaavia ISO paigutusega klaviatuuridel selle sisestamine, sest seda ei ole sümbolina, vaid tuleb kasutada kahvikombinatsiooni, näiteks
| ||
Monteeri lihtsalt ja kiiresti
Riistvara montaa¾ on jaotatud etappideks ja toetatud õppevideodega. Vaata lähemalt.
Tarkvaratugi
Loe riistvaralist portide lugemist ja muutujate defineerimist toetava tarkvarateegi kohta
