Arduino – Tranzistori un Arduino analogo sensoru dati
Šajā nodarbībā iemācīsimies tranzistoru darbības principu un veikt nolasījumus no Arduino analogajiem sensoriem.
Nepieciešamie komponenti
- Arduino kontrolieris NANO (vai UNO) ar atbilstošu USB kabeli
- Bredbords 400 punktu Half+
- Savienošanas vadi 10cm male-male 6 gab
- LED gaismas diode 1 gab.
- Rezistori 4.7KΩ 1 gab., 1MΩ 1 gab.
- Tranzistors PNP (piem. S8550) 1 gab.
Skaidrojums
Tranzistorā, pievadot nelielu strāvu bāzē (vidējais elektrods) caur cilvēka ķermeni, ķēdē starp emiteri un kolektoru (malējie elektrodi) sāk plūst strāva un iedegas gaismas diode.
Slēgums
Savienojam slēgumu un tad pievienojam Arduino mikrokontrolieri datoram ar USB kabeli.
Turot brīvo vadu kontaktus pirkstos, ir jāiedegas LED gaismas diodei.
Lai nolasītu strāvas spriegumu, kāds tiek pievadīts LED gaismas diodei no tranzistora, ir savienots gaismas diodes “+” ar analogo pinu “A0” (dzeltenais vads attēlā).
Programma
Kā pieslēgt Arduino un kā lietot Arduino IDE programmu skatiet 1.nodarbībā
Atveram Arduino IDE programmu.
Fails – Jauns
Iekopējam kodu, tad Fails – Saglabāt. Pārbaudīt, tad Augšupielādēt.
/* Analogo sensoru dati - Analog sensor input */ int sensorPin = A0; // analogā pina nr. int sensorValue = 0; float Voltage = 0; void setup() { Serial.begin(9600); // sāk seriālo komunikāciju } void loop() { sensorValue = analogRead(sensorPin); // nolasa sensora datus Voltage = sensorValue * (5.0 / 1023.0); // aprēķina spriegumu Serial.print("Analog value: "); //drukā seriālajā monitorā Serial.print(sensorValue); Serial.print(", Voltage: "); Serial.println(Voltage); delay(1000); // gaida 1 sekundi }
“int” nozīmē Integer – apaļš skaitlis, bet “float” – skaitlis ar decimāldāļām aiz komata.
Analogās vērtības ir no 0 līdz 1023.
Spriegumu (Voltage) aprēķinām Analogo vērtību reizinot ar (5.0/1023.0), jo 1023 atbilst 5V spriegumam.
Serial.print drukā datus uz Seriālā porta monitoru vienā rindā, bet Serial.println norāda, ka nākamā rinda drukāsies jaunā rindā.
Ieslēdzot Seriālā porta monitoru vai ploteri, var redzēt, ka savienojot kontaktus ar pirkstiem, strāvas spriegums ķēdē palielinās līdz aptuveni 4 voltiem(V).
Papildu uzdevums 1
Izmainīsim kodu, lai dators ziņo, kad pirksti ir pievienoti.
Iepriekš redzējām, ka pirkstu pievienošana dod analogo vērtību no 500 – 900.
Pievienosim kodam 3 rindiņas (starp sprieguma aprēķinu un Serial.print) ar “if” nosacījumu, kurš izpildās, ja vērtība pārsniedz 500.
if (sensorValue > 500) { Serial.println("Pirksti pievienoti"); }
Daži cilvēki vājāk, bet daži labāk vada strāvu, tad nosacījumu var samazināt vai palielināt.
Pamanījām arī, ka savienojot vadus, analogā vērtība ir aptuveni 1000.
Iepriekšējo 3 rindiņu vietā ieliekam 2 if nosacījumus:
if ((sensorValue > 500) && (sensorValue < 950)) { Serial.println("Pirksti pievienoti"); } if (sensorValue > 950) { Serial.println("Vadi savienoti"); }
Tātad, ja analogā vērtība būs no 500-950, tad parādīsies uzraksts “Pirksti pievienoti”, bet ja virs 950, tad “Vadi savienoti”.
Papildu uzdevums 2
Demonstrēt eksperimentu bez Arduino mikrokontroliera, izmantojot jebkuru strāvas avotu no 4.5V – 9V, piemēram 3 AA baterijas vai 1 kronu.
<< Iepriekšējā, 2. nodarbība | Nākamā, 4. 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
-
Savienošanas vadi 10cm/20cm – 20gab.€3.00 – €4.00
-
Bredbords half+ 400-punktu€5.00
-
LED Gaismas diodes€0.10 – €0.15
-
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