- Potrebne komponente:
- Shema vezja:
- Arduino Uno:
- LCD 16x2:
- Koncept barvne kode odpornosti:
- Izračun upora z merilnikom Arduino Ohm:
- Razlaga kode:
Na uporih težko beremo barvne kode, da bi našli njegovo odpornost. Da bi premagali težave pri iskanju vrednosti upora, bomo z uporabo Arduina izdelali preprost merilnik ohmov. Osnovno načelo tega projekta je omrežje z delilnikom napetosti. Vrednost neznane odpornosti je prikazana na 16 * 2 LCD zaslonu. Ta projekt služi tudi kot 16 * 2 LCD zaslon, ki povezuje Arduino.
Potrebne komponente:
- Arduino Uno
- 16 * 2 LCD zaslon
- Potenciometer (1 kilo Ohm)
- Upori
- Breadboard
- Jumper žice
Shema vezja:
Arduino Uno:
Arduino Uno je odprtokodna mikrokrmilna plošča, ki temelji na mikrokrmilniku ATmega328p. Ima 14 digitalnih zatičev (od tega je 6 zatičev mogoče uporabiti kot PWM izhode), 6 analognih vhodov, vgrajenih regulatorjev napetosti itd. Arduino Uno ima 32KB bliskovnega pomnilnika, 2KB SRAM-a in 1KB EEPROM-a. Deluje na taktni frekvenci 16MHz. Arduino Uno podpira komunikacijo Serial, I2C, SPI za komunikacijo z drugimi napravami. Spodnja tabela prikazuje tehnične specifikacije Arduino Uno.
Mikrokrmilnik | ATmega328p |
Delovna napetost | 5V |
Vhodna napetost | 7-12V (priporočeno) |
Digitalni I / O zatiči | 14. |
Analogni zatiči | 6. |
Flash pomnilnik | 32 KB |
SRAM | 2KB |
EEPROM | 1KB |
Hitrost ure |
16MHz |
LCD 16x2:
16 * 2 LCD je široko uporabljen zaslon za vdelane aplikacije. Tu je kratka razlaga o zatičih in delovanju 16 * 2 LCD zaslona. Znotraj LCD-ja sta dva zelo pomembna registra. So register podatkov in register ukazov. Ukazni register se uporablja za pošiljanje ukazov, kot so jasen prikaz, kurzor doma itd., Podatkovni register pa za pošiljanje podatkov, ki bodo prikazani na 16 * 2 LCD. Spodnja tabela prikazuje pin opis 16 * 2 lcd.
Pin |
Simbol |
V / I |
Opis |
1. |
Vss |
- |
Tla |
2. |
Vdd |
- |
+ 5V napajalnik |
3. |
Vee |
- |
Napajanje za nadzor kontrasta |
4. |
RS |
jaz |
RS = 0 za ukazni register, RS = 1 za podatkovni register |
5. |
RW |
jaz |
R / W = 0 za pisanje, R / W = 1 za branje |
6. |
E |
V / I |
Omogoči |
7. |
D0 |
V / I |
8-bitno podatkovno vodilo (LSB) |
8. |
D1 |
V / I |
8-bitno podatkovno vodilo |
9. |
D2 |
V / I |
8-bitno podatkovno vodilo |
10. |
D3 |
V / I |
8-bitno podatkovno vodilo |
11. |
D4 |
V / I |
8-bitno podatkovno vodilo |
12. |
D5 |
V / I |
8-bitno podatkovno vodilo |
13. |
D6 |
V / I |
8-bitno podatkovno vodilo |
14. |
D7 |
V / I |
8-bitno podatkovno vodilo (MSB) |
15. |
A |
- |
+ 5V za osvetlitev ozadja |
16. |
K |
- |
Tla |
Koncept barvne kode odpornosti:
Za določitev vrednosti upora lahko uporabimo spodnjo formulo.
R = {(AB * 10 c) Ω ± T%}
Kje
A = vrednost barve v prvem pasu.
B = vrednost barve v drugem pasu.
C = vrednost barve v tretjem pasu.
T = vrednost barve v četrtem pasu.
Spodnja tabela prikazuje barvno kodo uporov.
Barva |
Številčna vrednost barve |
Množilni faktor (10 c) |
Vrednost tolerance (T) |
Črna |
0 |
10 0 |
- |
rjav |
1. |
10 1 |
± 1% |
rdeča |
2. |
10 2 |
± 2% |
Oranžna |
3. |
10 3 |
- |
Rumena |
4. |
10 4 |
- |
Zelena |
5. |
10 5 |
- |
Modra |
6. |
10 6 |
- |
Vijolična |
7. |
10 7 |
- |
siva |
8. |
10 8 |
- |
Bela |
9. |
10 9 |
- |
Zlato |
- |
10 -1 |
± 5% |
Srebro |
- |
10 -2 |
± 10% |
Brez pasu |
- |
- |
± 20% |
Če so na primer barvne kode rjava - zelena - rdeča - srebrna, se vrednost upora izračuna kot, Rjava = 1 Zelena = 5 Rdeča = 2 Srebrna = ± 10%
Iz prvih treh pasov je R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Četrti pas označuje toleranco ± 10%
10% od 1500 = 150 Za + 10 odstotkov je vrednost 1500 + 150 = 1650Ω Za - 10 odstotkov je vrednost 1500 -150 = 1350Ω
Zato je dejanska vrednost upora lahko med 1350Ω in 1650Ω.
Da bo tukaj bolj priročno, je kalkulator barvne kode Resistance, kjer morate na upor vnesti samo barvo obročev in dobili boste vrednost upora
Izračun upora z merilnikom Arduino Ohm:
Delovanje tega merilnika upora je zelo preprosto in ga je mogoče razložiti z uporabo preprostega omrežja delilnikov napetosti, prikazano spodaj.
Iz omrežja delilnikov napetosti uporov R1 in R2, Vout = Vin * R2 / (R1 + R2)
Iz zgornje enačbe lahko ugotovimo vrednost R2 kot
R2 = Vout * R1 / (Vin - Vout)
Kjer je R1 = znana odpornost
R2 = neznan upor
Vin = napetost, proizvedena na 5V zatiču Arduino
Vout = napetost na R2 glede na tla.
Opomba: izbrana vrednost znanega upora (R1) je 3,3 KΩ, vendar bi jo morali uporabniki zamenjati z vrednostjo upora upora, ki so ga izbrali.
Torej, če dobimo vrednost napetosti na neznanem uporu (Vout), lahko enostavno izračunamo neznani upor R2. Tukaj smo odčitali vrednost napetosti Vout z analognim zatičem A0 (glej diagram vezja) in te digitalne vrednosti (0 -1023) pretvorili v napetost, kot je razloženo v spodnji kodi.
Če je vrednost znanega upora večja ali manjša od neznanega upora, bo napaka večja. Zato je priporočljivo, da se znana vrednost upora približa neznani odpornosti.
Razlaga kode:
Popolna Arduino programa in Demo Video za ta projekt je navedena na koncu tega projekta. Koda je razdeljena na majhne pomembne koščke in je razložena spodaj.
V tem delu kode bomo določili nožice, na katere je zaslon LCD 16 * 2 povezan z Arduino. RS pin 16 * 2 lcd je povezan z digitalnim pin 2 arduino. Omogoči pin 16 * 2 lcd je povezan z digitalnim pin 3 Arduino. Podatkovni zatiči (D4-D7) 16 * 2 lcd so povezani z digitalnimi zatiči 4,5,6,7 Arduina.
LCD LiquidCrystal (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
V tem delu kode definiramo nekatere spremenljivke, ki se uporabljajo v programu. Vin je napetost, ki jo zagotavlja 5V pin arduino. Vout je napetost na uporu R2 glede na tla.
R1 je vrednost znanega upora. R2 je vrednost neznanega upora.
int Vin = 5; // napetost na 5V zatiču arduino float Vout = 0; // napetost na zatiču A0 arduino float R1 = 3300; // vrednost znanega plovnega upora R2 = 0; // vrednost neznanega upora
V tem delu kode bomo inicializirali 16 * 2 lcd zaslon. Ukazi so podani na 16 * 2 lcd zaslon za različne nastavitve, kot so čisti zaslon, prikaz na utripanju kurzorja itd
lcd.begin (16,2);
V tem delu kode se analogna napetost na uporu R2 (A0 pin) pretvori v digitalno vrednost (0 do 1023) in shrani v spremenljivko.
a2d_data = analogRead (A0);
V tem delu kode se digitalna vrednost (0 do 1023) pretvori v napetost za nadaljnje izračune.
medpomnilnik = a2d_data * Vin; Vout = (medpomnilnik) / 1024,0;
Arduino Uno ADC je 10-bitno resolucijo (tako vrednostmi število od 0 - 2 ^ 10 = 1024 vrednosti). To pomeni, da bo preslikal vhodne napetosti med 0 in 5 voltov v celoštevilčne vrednosti med 0 in 1023. Če torej pomnožimo vhodno vrednost anlogValue na (5/1024), potem dobimo digitalno vrednost vhodne napetosti. Tukaj preberite, kako uporabljati vhod ADC v Arduinu.
V tem delu kode se dejanska vrednost neznane odpornosti izračuna po zgoraj opisanem postopku.
medpomnilnik = Vout / (Vin-Vout); R2 = R1 * medpomnilnik;
V tem delu kode je vrednost neznanega upora odtisnjena na 16 * 2 lcd zaslon.
lcd.setCursor (4,0); lcd.print ("ohm meter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.tis (R2);
To lahko z uporabo Arduina enostavno izračunamo upor neznanega upora. Preverite tudi:
- Merilnik frekvence Arduino
- Merilnik kapacitivnosti Arduino