- Componente necesare:
- Diagrama circuitului:
- Arduino Uno:
- 16x2 LCD:
- Conceptul de culoare a rezistenței:
- Calculul rezistenței folosind Arduino Ohm Meter:
- Explicarea codului:
Ne este greu să citim codurile de culoare de pe rezistoare pentru a-i găsi rezistența. Pentru a depăși dificultatea de a găsi valoarea rezistenței, vom construi un Ohmmetru simplu folosind Arduino. Principiul de bază din spatele acestui proiect este o rețea de divizare a tensiunii. Valoarea rezistenței necunoscute este afișată pe afișajul LCD 16 * 2. Acest proiect servește și ca afișaj LCD de 16 * 2 care se interfață cu Arduino.
Componente necesare:
- Arduino Uno
- Afisaj LCD 16 * 2
- Potențiometru (1 kilo Ohm)
- Rezistențe
- Breadboard
- Sârme de jumper
Diagrama circuitului:
Arduino Uno:
Arduino Uno este o placă de microcontroler open source bazată pe microcontroler ATmega328p. Are 14 pini digitali (dintre care 6 pini pot fi folosiți ca ieșiri PWM), 6 intrări analogice, regulatoare de tensiune la bord etc. Arduino Uno are 32KB de memorie flash, 2KB de SRAM și 1KB de EEPROM. Funcționează la frecvența de ceas de 16 MHz. Arduino Uno acceptă comunicarea Serial, I2C, SPI pentru comunicarea cu alte dispozitive. Tabelul de mai jos prezintă specificațiile tehnice ale Arduino Uno.
Microcontroler | ATmega328p |
Tensiunea de funcționare | 5V |
Tensiune de intrare | 7-12V (recomandat) |
Pinii I / O digitale | 14 |
Pinii analogici | 6 |
Memorie flash | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
Viteza ceasului |
16MHz |
16x2 LCD:
16 * 2 LCD este un ecran utilizat pe scară largă pentru aplicații încorporate. Iată o scurtă explicație despre pini și funcționarea afișajului LCD 16 * 2. Există două registre foarte importante în interiorul ecranului LCD. Sunt registre de date și registre de comenzi. Registrul de comandă este utilizat pentru a trimite comenzi precum afișarea clară, cursorul acasă etc., registrul de date este utilizat pentru a trimite date care urmează să fie afișate pe ecranul LCD 16 * 2. Tabelul de mai jos prezintă descrierea pinului a 16 * 2 lcd.
Pin |
Simbol |
I / O |
Descriere |
1 |
Vss |
- |
Sol |
2 |
Vdd |
- |
Alimentare + 5V |
3 |
Vee |
- |
Alimentare pentru controlul contrastului |
4 |
RS |
Eu |
RS = 0 pentru registrul de comandă, RS = 1 pentru registrul de date |
5 |
RW |
Eu |
R / W = 0 pentru scriere, R / W = 1 pentru citire |
6 |
E |
I / O |
Permite |
7 |
D0 |
I / O |
Magistrală de date pe 8 biți (LSB) |
8 |
D1 |
I / O |
Magistrală de date pe 8 biți |
9 |
D2 |
I / O |
Magistrală de date pe 8 biți |
10 |
D3 |
I / O |
Magistrală de date pe 8 biți |
11 |
D4 |
I / O |
Magistrală de date pe 8 biți |
12 |
D5 |
I / O |
Magistrală de date pe 8 biți |
13 |
D6 |
I / O |
Magistrală de date pe 8 biți |
14 |
D7 |
I / O |
Magistrală de date pe 8 biți (MSB) |
15 |
A |
- |
+ 5V pentru iluminare din spate |
16 |
K |
- |
Sol |
Conceptul de culoare a rezistenței:
Pentru a identifica valoarea rezistenței putem folosi formula de mai jos.
R = {(AB * 10 c) Ω ± T%}
Unde
A = Valoarea culorii din prima bandă.
B = Valoarea culorii din a doua bandă.
C = Valoarea culorii din a treia bandă.
T = Valoarea culorii din a patra bandă.
Tabelul de mai jos prezintă codul de culoare al rezistențelor.
Culoare |
Valoarea numerică a culorii |
Factor de multiplicare (10 c) |
Valoarea toleranței (T) |
Negru |
0 |
10 0 |
- |
Maro |
1 |
10 1 |
± 1% |
roșu |
2 |
10 2 |
± 2% |
portocale |
3 |
10 3 |
- |
Galben |
4 |
10 4 |
- |
Verde |
5 |
10 5 |
- |
Albastru |
6 |
10 6 |
- |
violet |
7 |
10 7 |
- |
gri |
8 |
10 8 |
- |
alb |
9 |
10 9 |
- |
Aur |
- |
10 -1 |
± 5% |
Argint |
- |
10 -2 |
± 10% |
Nici o trupă |
- |
- |
± 20% |
De exemplu, dacă codurile de culoare sunt maro - verde - roșu - argintiu, valoarea rezistenței este calculată ca, Maro = 1 Verde = 5 Roșu = 2 Argintiu = ± 10%
Din primele trei benzi, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
A patra bandă indică o toleranță de ± 10%
10% din 1500 = 150 Pentru + 10 procente, valoarea este 1500 + 150 = 1650Ω Pentru - 10 procente, valoarea este 1500 -150 = 1350Ω
Prin urmare, valoarea rezistenței reale poate fi între 1350Ω și 1650Ω.
Pentru a-l face mai convenabil, iată Calculatorul de culoare a rezistenței, unde trebuie doar să introduceți culoarea inelelor pe rezistor și veți obține valoarea rezistenței.
Calculul rezistenței folosind Arduino Ohm Meter:
Funcționarea acestui contor de rezistență este foarte simplă și poate fi explicată folosind o rețea simplă de divizare a tensiunii prezentată mai jos.
Din rețeaua separatoare de tensiune a rezistențelor R1 și R2, Vout = Vin * R2 / (R1 + R2)
Din ecuația de mai sus, putem deduce valoarea lui R2 ca
R2 = Vout * R1 / (Vin - Vout)
Unde R1 = rezistență cunoscută
R2 = Rezistență necunoscută
Vin = tensiune produsă la pinul de 5V al Arduino
Vout = tensiune la R2 față de sol.
Notă: valoarea rezistenței cunoscute (R1) aleasă este de 3,3 KΩ, dar utilizatorii ar trebui să o înlocuiască cu valoarea rezistenței rezistenței pe care au ales-o.
Deci, dacă obținem valoarea tensiunii peste rezistența necunoscută (Vout), putem calcula cu ușurință rezistența necunoscută R2. Aici am citit valoarea tensiunii Vout folosind pinul analogic A0 (a se vedea schema circuitului) și am convertit acele valori digitale (0 -1023) în tensiune, așa cum se explică în Codul de mai jos.
Dacă valoarea rezistenței cunoscute este mult mai mare sau mai mică decât rezistența necunoscută, eroarea va fi mai mare. Deci, este recomandat să mențineți valoarea de rezistență cunoscută mai aproape de rezistența necunoscută.
Explicarea codului:
Programul complet Arduino și Demo Video pentru acest proiect sunt date la sfârșitul acestui proiect. Codul este împărțit în mici bucăți semnificative și explicat mai jos.
În această parte a codului, vom defini pinii pe care ecranul LCD 16 * 2 este conectat la Arduino. Pinul RS de 16 * 2 lcd este conectat la pinul digital 2 al arduino. Activare pin de 16 * 2 lcd este conectat la pinul digital 3 al Arduino. Pinii de date (D4-D7) de 16 * 2 lcd sunt conectați la pinii digitali 4,5,6,7 din Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
În această parte a codului, definim câteva variabile care sunt utilizate în program. Vin este tensiunea furnizată de pinul 5V de arduino. Vout este tensiunea la rezistorul R2 față de sol.
R1 este valoarea rezistenței cunoscute. R2 este valoarea rezistenței necunoscute.
int Vin = 5; // tensiune la pinul de 5V al plutitorului arduino Vout = 0; // tensiunea la pinul A0 al plutitorului arduino R1 = 3300; // valoarea plutitorului de rezistență cunoscut R2 = 0; // valoarea rezistenței necunoscute
În această parte a codului, vom inițializa afișajul LCD de 16 * 2. Comenzile sunt date afișajului LCD 16 * 2 pentru diferite setări, cum ar fi ecranul clar, afișarea pe cursor intermitent etc.
lcd.inceput (16,2);
În această parte a codului, tensiunea analogică la rezistorul R2 (pinul A0) este convertită în valoare digitală (0-1023) și stocată într-o variabilă.
a2d_data = analogRead (A0);
În această parte a codului, valoarea digitală (0-1023) este convertită în tensiune pentru calcule ulterioare.
buffer = a2d_data * Vin; Vout = (tampon) /1024.0;
Arduino Uno ADC este de rezoluție de 10 biți (deci valorile întregi de la 0 - 2 ^ 10 = 1024 valori). Aceasta înseamnă că va mapa tensiunile de intrare între 0 și 5 volți în valori între 0 și 1023. Deci, dacă înmulțim anlogValue de intrare la (5/1024), atunci obținem valoarea digitală a tensiunii de intrare. Aflați aici cum să utilizați intrarea ADC în Arduino.
În această parte a codului, valoarea reală a rezistenței necunoscute este calculată folosind procedura așa cum s-a explicat mai sus.
tampon = Vout / (Vin-Vout); R2 = R1 * tampon;
În această parte a codului, valoarea rezistenței necunoscute este tipărită pe un ecran LCD de 16 * 2.
lcd.setCursor (4,0); lcd.print ("ohmmetru"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); imprimare lcd (R2);
Aceasta este că putem calcula cu ușurință rezistența unui rezistor necunoscut folosind Arduino. De asemenea, verificați:
- Contor de frecvență Arduino
- Contor de capacitate Arduino