Arduino – Voltmetrs un sprieguma samazināšana ar rezistoriem
Šajā nodarbībā izgatavosim līdzstrāvas voltmetru (DC Voltmeter) un mērīsim spriegumu baterijās – noteiksim vai tās ir pilnas vai tukšas. Lai saudzētu Arduino, veiksim kontrolierī ienākošā sprieguma samazināšanu ar 2 rezistoriem.
Nepieciešamie komponenti
- Arduino kontrolieris (piem. Uno, Nano) ar USB kabeli
- Bredbords 400 punktu Half+
- Savienošanas vadi 10cm male-male 11 gab
- LED gaismas diodes 6 gab.
- Rezistori 330Ω 6 gab. (der jebkuri rezistori ar pretestību 200Ω-680Ω)
- Rezistori 4.7KΩ un 10KΩ (var lietot jebkurus, izmainīt izmēru kodā)
Skaidrojums
Arduino analogā ieeja nolasa spriegumu ar analogajām vērtībām no 0 (0V) līdz 1023 (5V). Spriegumu (Voltage) aprēķinām Analogo vērtību reizinot ar (5.0/1023.0).
Izmantojot 2 rezistorus (10K, 4.7K), veicam sprieguma samazināšanu ap 3 reizes.
Formula: Vout = Vin * (R2/(R1+R2)) Lai iegūtu pareizu spriegumu, kodā veiksim pretēju aprēķinu: Vin = Vout / (R2/(R1+R2))
Jaunu 1.5V (vai pilnu 1.2V lādējamo) bateriju (piem. AA, AAA, u.c.) spriegums ir 1.65V, bet tukšas tās ir pie sprieguma 1.2V-1.0V.
Spriegumu noteiksim ar 6 gab. LED. Pirmā rādīs spriegumu virs 1.6V, bet katra nākamā par 0.1V zemāku spriegumu, līdz sestā LED rādīs spriegumu mazāku par 1.2V.
Slēgums
Uzmanību! Nepievienot spriegumu lielāku par 10V! Tikai līdzstrāvu! Obligāti ievērot strāvas avota polaritāti! Neievērojot, Arduino var tikt sabojāts!
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.
/* Voltmetrs - DC Voltmeter */ int analogInput = 0; //int - apaļš skaitlis, analogais pin A0 float vin = 0.0; //float - skaitlis ar dec.daļām. spriegums V float vout = 0.0; float R1 = 10000.0; //rezistors R1 (10K) float R2 = 4700.0; //rezistors R2 (4.7K) int value = 0; //nolasītā vērtība sākumā 0. const int led2 = 2; //const int - nemainīgs apaļš skaitlis const int led3 = 3; const int led4 = 4; const int led5 = 5; const int led6 = 6; const int led7 = 7; void setup(){ pinMode(analogInput, INPUT); //analogais pins sprieguma mērīšanai pinMode(led2, OUTPUT); //pini 2-7 kā izejošie uz LED pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); Serial.begin(9600); // sāk seriālo komunikāciju } void loop(){ value = analogRead(analogInput); //nolasa vērtību vout = (value * 5.0) / 1024.0; //aprēķina spriegumu vin = vout / (R2/(R1+R2)); if (vin<0.10) { vin=0.0; // vērtību mazāku par 0.1V uz 0V } else { Serial.print("Spriegums: "); //drukā seriālajā monitorā Serial.println(vin); //ln - uz nākamo rindu } if (vin > 1.6) { digitalWrite(led2, HIGH); // ieslēdz delay(500); // gaida norādītās milisekundes digitalWrite(led2, LOW); // izslēdz } if (vin > 1.5 && vin < 1.6) { digitalWrite(led3, HIGH); delay(500); digitalWrite(led3, LOW); } if (vin > 1.4 && vin < 1.5) { digitalWrite(led4, HIGH); delay(500); digitalWrite(led4, LOW); } if (vin > 1.3 && vin < 1.4) { digitalWrite(led5, HIGH); delay(500); digitalWrite(led5, LOW); } if (vin > 1.2 && vin < 1.3) { digitalWrite(led6, HIGH); delay(500); digitalWrite(led6, LOW); } if (vin > 0.9 && vin < 1.2) { digitalWrite(led7, HIGH); delay(500); digitalWrite(led7, LOW); } }
Ieslēdzam no izvēnes: Rīki – Seriālā porta monitors.
Tāpat varam vērot izmaiņas arī ar Seriālo ploteri: Rīki – Serial plotter.
Papildu uzdevums
–
<< Iepriekšējā, 7. nodarbība | Nākamā, 9. nodarbība >>
Arduino sākumkomplekts nodarbībām 1-10 – 22.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
-
NodeMcu V3 ESP8266 CH340G ESP-12E WIFI€14.00
-
NANO 3.0 ATmega328P, Mini USB, CH340G€12.00
-
UNO R3 ATmega328P PrinterUSB CH340G€18.00