3. Arduino – Tranzistori un analogie dati

Elektronika – Arduino – Tranzistori un analogo sensoru dati

Arduino 3. nodarbība

Šajā nodarbībā iemācīsimies tranzistoru darbības principu un veikt nolasījumus no Arduino analogajiem sensoriem.

Nepieciešamie komponenti

  1. Arduino kontrolieris (piem. Uno, Nano) ar USB kabeli
  2. Bredbords 400 punktu Half+
  3. Savienošanas vadi 10cm male-male 6 gab
  4. LED gaismas diode 1 gab.
  5. Rezistori 4.7KΩ 1 gab., 1MΩ 1 gab.
  6. 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, savienojam “gaismas diodes +” ar “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).

Papildus

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”.

2. papildus – demonstrēt eksperimentu bez Arduino mikrokontroliera, izmantojot jebkuru strāvas avotu no 4.5V – 9V, piemēram 3 AA baterijas vai 1 kronu.

Atbildēt