Arduino – Digitālā seriālā nolasīšana
Šajā nodarbībā iemācīsimies ar Arduino saņemt digitālus datus no ārējas pogas vai slēdža.
Nepieciešamie komponenti
- Arduino plate NANO (vai UNO) ar atbilstošu USB kabeli
- Bredbords 400 punktu Half+
- Savienošanas vadi 10cm male-male 7 gab
- Rezistori 10KΩ 1 gab, 330Ω 1 gab
- Taktilā poga 1 gab.
Slēgums
Programma
Kodu var atvērt no:
Fails – Piemēri – 01. Basics – DigitalReadSerial
int pushButton = 2; // Poga pushButton pieslēgta digitālajam pinam 2 vai D2 void setup() { Serial.begin(9600); // Sāk seriālo komunikāciju pinMode(pushButton, INPUT); // Uzstādām pushButton pinu kā ievadi } void loop() { // Sāk ciklu, kas izpildās atkal un atkal int buttonState = digitalRead(pushButton); // Nolasa ievades pinu Serial.println(buttonState); // Drukā pogas vērtību 0 vai 1 delay(100); // pauze milisekundēs }
Augšupielādējam kodu un palaižam Seriālā porta monitoru. Tas drukā 0.
Nospiežot pogu, drukās 1.
Ja vēlamies, lai drukā 0 un 1 vai grafiku zīmē lēnāk, ierakstām lielāku delay (pauze milisekundēs). Piemēram 100 (o.1s) vietā 1000 (1s) vai 2000 (2s).
Papildu uzdevums 1
Starp Serial.println un delay pieliekam dažas rindiņas, kas atšifrēs, ko nozīmē 0 un 1.
if (buttonState == 0) { Serial.println("Poga nav nospiesta"); } else { Serial.println("Poga nospiesta!"); }
–
Papildu uzzdevums 2
Izmantojam iebūvēto gaismas diodi, kura savienota ar pinu 13 vai papildus piespraužam gaismas diodi ar (+) pie digitālā pina 13 (D13), bet (-) caur 330Ω rezistoru pie – (GND).
Paņemam kodu no:
Fails – Piemēri – 02.Digital – Button
const int buttonPin = 2; const int ledPin = 13; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
Ja poga būs nospiesta, iedegsies gaismas diode, citādi ne.
Papildu uzdevums 3
Paņemam kodu no:
Fails – Piemēri – 02.Digital – StateChangeDetection
Tiek skaitīts, cik reizes ir nospiesta poga (HIGH), gaismas diode tiks iedegta ik pēc katriem 4 nospiedieniem.
Skatāmies rezultātu – nospiedienu skaitu: Rīki – Seriālā porta monitors.
Papildu uzdevums 4
Paņemam kodu no:
Fails – Piemēri – 02.Digital – Debounce (Aizture)
Katru reizi, kad tik nospiesta poga (HIGH), gaismas diode tiks vai nu iedegta, vai izdzēsta.
Netiek izmantots Delay.
<< Iepriekšējā, 3. nodarbība | Nākamā, 5. nodarbība >>
Arduino sākumkomplekts 12 nodarbībām – 32.00€
Piegāde ar Latvijas pastu vai pakomātu (Omniva, DPD, PastaStacija) – 3.00€
Pasūtīšana un papildu info pa tālr.: 29216755 vai e-pastu: info[at]orient.lv
-
Arduino sākumkomplekts 12 nodarbībām NANO€45.00
-
Mini USB kabelis 80cm€1.80
-
Taktilā poga ar cepurīti 12mm€0.40
-
Savienošanas vadi 10cm/20cm – 20gab.€3.00 – €4.00
-
Bredbords half+ 400-punktu€5.00
-
Rezistori (pretestības) 0.25W metāla plēves€0.10
-
NANO 3.0 ATmega328P, Mini USB, CH340G€12.00
-
UNO R3 ATmega328P PrinterUSB CH340G€18.00