- Būtini komponentai:
- Grandinės schema:
- „Arduino Uno“:
- 16x2 LCD ekranas:
- Atsparumo spalvos kodo sąvoka:
- Atsparumo apskaičiavimas naudojant „Arduino Ohm“ matuoklį:
- Kodo paaiškinimas:
Mums sunku skaityti rezistorių spalvų kodus, kad rastume jo atsparumą. Norėdami įveikti pasipriešinimo vertės nustatymo sunkumus, naudodami „Arduino“, sukursime paprastą omo matuoklį. Pagrindinis šio projekto principas yra įtampos skirstytuvo tinklas. Nežinomo pasipriešinimo vertė rodoma 16 * 2 LCD ekrane. Šis projektas taip pat naudojamas kaip 16 * 2 skystųjų kristalų ekranas, sąsaja su „Arduino“.
Būtini komponentai:
- Arduino Uno
- 16 * 2 LCD ekranas
- Potenciometras (1 kg omo)
- Rezistoriai
- Bandomoji Lenta
- Džemperių laidai
Grandinės schema:
„Arduino Uno“:
„Arduino Uno“ yra atvirojo kodo mikrovaldiklio plokštė, pagrįsta mikrovaldikliu „ATmega328p“. Jis turi 14 skaitmeninių kaiščių (iš kurių 6 kaiščius galima naudoti kaip PWM išėjimus), 6 analoginius įėjimus, laive esančius įtampos reguliatorius ir kt. „Arduino Uno“ turi 32 KB „flash“ atminties, 2 KB SRAM ir 1 KB EEPROM. Jis veikia 16MHz taktiniu dažniu. „Arduino Uno“ palaiko „Serial“, „I2C“, SPI ryšį, kad būtų galima bendrauti su kitais įrenginiais. Žemiau esančioje lentelėje pateikiama „Arduino Uno“ techninė specifikacija.
Mikrovaldiklis | ATmega328p |
Darbinė įtampa | 5V |
Įvesties įtampa | 7–12 V (rekomenduojama) |
Skaitmeniniai įvesties / išvesties kaiščiai | 14 |
Analoginiai kaiščiai | 6 |
„Flash“ atmintis | 32 KB |
SRAM | 2KB |
EEPROM | 1 KB |
Laikrodžio greitis |
16MHz |
16x2 LCD ekranas:
16 * 2 skystųjų kristalų ekranas yra plačiai naudojamas įterptųjų programų ekranas. Čia yra trumpas paaiškinimas apie 16 * 2 skystųjų kristalų ekrano kaiščius ir veikimą. Skystųjų kristalų ekrane yra du labai svarbūs registrai. Jie yra duomenų registras ir komandų registras. Komandų registras naudojamas komandoms siųsti, pvz., Išvalyti ekraną, žymeklį namuose ir pan., Duomenų registras naudojamas duomenims, kurie turi būti rodomi 16 * 2 LCD, siųsti. Žemiau esančioje lentelėje pateikiamas 16 * 2 lcd kaiščių aprašymas.
Smeigtukas |
Simbolis |
I / O |
apibūdinimas |
1 |
Vss |
- |
Žemė |
2 |
Vdd |
- |
+ 5 V maitinimo šaltinis |
3 |
Vee |
- |
Maitinimas, skirtas kontroliuoti kontrastą |
4 |
RS |
Aš |
RS = 0 komandų registrui, RS = 1 duomenų registrui |
5 |
RW |
Aš |
R / W = 0 rašant, R / W = 1 skaitant |
6 |
E |
I / O |
Įgalinti |
7 |
D0 |
I / O |
8 bitų duomenų magistralė (LSB) |
8 |
D1 |
I / O |
8 bitų duomenų magistralė |
9 |
D2 |
I / O |
8 bitų duomenų magistralė |
10 |
D3 |
I / O |
8 bitų duomenų magistralė |
11 |
D4 |
I / O |
8 bitų duomenų magistralė |
12 |
D5 |
I / O |
8 bitų duomenų magistralė |
13 |
D6 |
I / O |
8 bitų duomenų magistralė |
14 |
D7 |
I / O |
8 bitų duomenų magistralė (MSB) |
15 |
A |
- |
+ 5 V apšvietimui |
16 |
K. |
- |
Žemė |
Atsparumo spalvos kodo sąvoka:
Norėdami nustatyti atsparumo vertę, galime naudoti šią formulę.
R = {(AB * 10 c) Ω ± T%}
Kur
A = pirmosios juostos spalvos vertė.
B = spalvos reikšmė antroje juostoje.
C = trečiosios juostos spalvos vertė.
T = ketvirtosios juostos spalvos vertė.
Žemiau esančioje lentelėje pateikiamas rezistorių spalvų kodas.
Spalva |
Skaitinė spalvos vertė |
Daugybos koeficientas (10 c) |
Tolerancijos vertė (T) |
Juoda |
0 |
10 0 |
- |
Ruda |
1 |
10 1 |
± 1% |
Raudona |
2 |
10 2 |
± 2% |
Oranžinė |
3 |
10 3 |
- |
Geltona |
4 |
10 4 |
- |
Žalias |
5 |
10 5 |
- |
Mėlyna |
6 |
10 6 |
- |
Violetinė |
7 |
10 7 |
- |
Pilka |
8 |
10 8 |
- |
Balta |
9 |
10 9 |
- |
Auksas |
- |
10 -1 |
± 5% |
sidabras |
- |
10 -2 |
± 10% |
Nėra grupės |
- |
- |
± 20% |
Pavyzdžiui, jei spalvų kodai yra Ruda - Žalia - Raudona - Sidabrinė, atsparumo vertė apskaičiuojama taip:
Ruda = 1 Žalia = 5 Raudona = 2 Sidabrinė = ± 10%
Iš pirmųjų trijų juostų R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Ketvirta juosta rodo ± 10% toleranciją
10% iš 1500 = 150 + 10 proc. Vertė yra 1500 + 150 = 1650Ω Jei - 10 proc., Vertė yra 1500-150 = 1350Ω
Todėl tikroji varžos vertė gali būti nuo 1350Ω iki 1650Ω.
Kad būtų patogiau, čia yra atsparumo spalvų kodo skaičiuoklė, kur jums reikia įvesti tik rezistoriaus žiedų spalvą ir gausite atsparumo vertę.
Atsparumo apskaičiavimas naudojant „Arduino Ohm“ matuoklį:
Šio atsparumo matuoklio veikimas yra labai paprastas ir jį galima paaiškinti naudojant paprastą įtampos daliklio tinklą, parodytą žemiau.
Iš rezistorių R1 ir R2 įtampos daliklio tinklo, Vout = Vin * R2 / (R1 + R2)
Iš pirmiau pateiktos lygties galime išvesti R2 reikšmę kaip
R2 = Vout * R1 / (Vin - Vout)
Kur R1 = žinomas atsparumas
R2 = nežinomas pasipriešinimas
Vin = įtampa, sukurta „Arduino“ 5 V kontakte
Vout = įtampa ties R2 žemės atžvilgiu.
Pastaba: pasirinktos žinomos varžos (R1) vertė yra 3,3 KΩ, tačiau vartotojai turėtų ją pakeisti pasirinkto rezistoriaus varžos verte.
Taigi, jei gausime nežinomos varžos (Vout) įtampos vertę, galime lengvai apskaičiuoti nežinomą varžą R2. Čia mes perskaitėme įtampos vertę „Vout“ naudodami analoginį kaištį A0 (žr. Grandinės schemą) ir pavertėme tas skaitmenines vertes (0–1023) į įtampą, kaip paaiškinta žemiau esančiame kode.
Jei žinomo pasipriešinimo vertė yra daug didesnė ar mažesnė už nežinomą pasipriešinimą, klaida bus didesnė. Taigi patartina žinomą atsparumo vertę laikyti arčiau nežinomo atsparumo.
Kodo paaiškinimas:
Visa šio projekto „ Arduino“ programa ir demonstracinis vaizdo įrašas pateikiami šio projekto pabaigoje. Kodas yra padalintas į mažus reikšmingus gabalėlius ir paaiškinamas toliau.
Šioje kodo dalyje mes apibrėžsime kaiščius, ant kurių 16 * 2 LCD ekranas yra prijungtas prie „Arduino“. RS kištukas iš 16 * 2 LCD yra prijungtas prie „Arduino“ 2 skaitmeninio kaiščio. Įgalinti 16 * 2 lcd smeigtuką yra prijungtas prie „Arduino“ 3 skaitmeninio smeigtuko. Duomenų kaiščiai (D4-D7) iš 16 * 2 LCD yra prijungti prie „Arduino“ 4,5,6,7 skaitmeninių kaiščių.
„LiquidCrystal lcd“ (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Šioje kodo dalyje mes apibrėžiame keletą kintamųjų, kurie naudojami programoje. Vin yra įtampa, kurią teikia 5 V arduino kaištis. Vout yra rezistoriaus R2 įtampa žemės atžvilgiu.
R1 yra žinomo pasipriešinimo vertė. R2 yra nežinomo pasipriešinimo vertė.
int Vin = 5; // įtampa esant 5 V arduino plūdės kaiščiui Vout = 0; // įtampa ties arduino plūdės A0 kaiščiu R1 = 3300; // žinomos varžos plūdės vertė R2 = 0; // nežinomo pasipriešinimo vertė
Šioje kodo dalyje mes ketiname inicijuoti 16 * 2 LCD ekraną. Komandos pateikiamos 16 * 2 lcd ekrane, kuriame pateikiami įvairūs nustatymai, pvz., Išvalomas ekranas, mirksi žymeklis ir pan.
lcd.prade (16,2);
Šioje kodo dalyje analoginė įtampa ties rezistoriumi R2 (A0 kaištis) paverčiama skaitmenine verte (nuo 0 iki 1023) ir saugoma kintamajame.
a2d_data = analogRead (A0);
Šioje kodo dalyje skaitmeninė vertė (nuo 0 iki 1023) paverčiama įtampa tolesniems skaičiavimams.
buferis = a2d_data * Vin; Vout = (buferis) / 1024,0;
„ Arduino Uno ADC“ yra 10 bitų skiriamoji geba (taigi sveikojo skaičiaus reikšmės nuo 0 iki 2 ^ 10 = 1024 vertės). Tai reiškia, kad jis įvesties įtampas nuo 0 iki 5 voltų suskirstys į sveiko skaičiaus reikšmes nuo 0 iki 1023. Taigi, jei įvesties „ anlogValue“ padauginsime iš (5/1024), gausime skaitmeninę įėjimo įtampos vertę. Sužinokite, kaip naudoti ADC įvestį „Arduino“.
Šioje kodo dalyje faktinė nežinomo pasipriešinimo vertė apskaičiuojama taikant aukščiau paaiškintą procedūrą.
buferis = Vout / (Vin-Vout); R2 = R1 * buferis;
Šioje kodo dalyje nežinomo pasipriešinimo vertė atspausdinta 16 * 2 lcd ekrane.
lcd.setCursor (4,0); lcd.print („omo matuoklis“); lcd.setCursor (0,1); lcd.print ("R (omas) ="); lcd.print (R2);
Tai mes galime lengvai apskaičiuoti nežinomo rezistoriaus varžą naudodami „Arduino“. Taip pat patikrinkite:
- „Arduino“ dažnio matuoklis
- „Arduino“ talpos matuoklis