- Nepieciešamās sastāvdaļas:
- Ķēdes shēma:
- Arduino Uno:
- 16x2 LCD:
- Pretestības krāsu koda jēdziens:
- Pretestības aprēķināšana, izmantojot Arduino Ohm mērītāju:
- Koda skaidrojums:
Mums ir grūti nolasīt rezistoru krāsu kodus, lai atrastu tā pretestību. Lai pārvarētu grūtības atrast pretestības vērtību, mēs izveidosim vienkāršu omu skaitītāju, izmantojot Arduino. Šī projekta pamatprincips ir sprieguma dalītāja tīkls. Nezināmās pretestības vērtība tiek parādīta 16 * 2 LCD displejā. Šis projekts kalpo arī kā 16 * 2 LCD displejs, kas mijiedarbojas ar Arduino.
Nepieciešamās sastāvdaļas:
- Arduino Uno
- 16 * 2 LCD displejs
- Potenciometrs (1 kilo omi)
- Rezistori
- Maizes dēlis
- Džemperu vadi
Ķēdes shēma:
Arduino Uno:
Arduino Uno ir atvērtā koda mikrokontrolleru plate, kuras pamatā ir mikrokontrolleris ATmega328p. Tam ir 14 digitālās tapas (no kurām 6 tapas var izmantot kā PWM izejas), 6 analogās ieejas, borta sprieguma regulatori utt. Arduino Uno ir 32 KB zibatmiņa, 2 KB SRAM un 1 KB EEPROM. Tas darbojas ar pulksteņa frekvenci 16MHz. Arduino Uno atbalsta Serial, I2C, SPI komunikāciju saziņai ar citām ierīcēm. Zemāk esošajā tabulā parādīta Arduino Uno tehniskā specifikācija.
Mikrokontrolleris | ATmega328p |
Darba spriegums | 5V |
Ieejas spriegums | 7–12 V (ieteicams) |
Digitālās I / O tapas | 14 |
Analogās tapas | 6 |
Zibatmiņa | 32 KB |
SRAM | 2 KB |
EEPROM | 1 KB |
Pulksteņa ātrums |
16MHz |
16x2 LCD:
16 * 2 LCD ir plaši izmantots displejs iegultām lietojumprogrammām. Šeit ir īss paskaidrojums par 16 * 2 LCD displeja tapām un darbību. LCD iekšpusē ir divi ļoti svarīgi reģistri. Tie ir datu reģistrs un komandu reģistrs. Komandu reģistrs tiek izmantots, lai nosūtītu komandas, piemēram, dzidrs displejs, kursors mājās utt., Datu reģistrs tiek izmantots, lai nosūtītu datus, kas jāparāda uz 16 * 2 LCD. Zemāk esošajā tabulā parādīts tapas apraksts 16 * 2 LCD.
Piespraust |
Simbols |
I / O |
Apraksts |
1 |
Vss |
- |
Zeme |
2 |
Vdd |
- |
+ 5V barošanas avots |
3 |
Vee |
- |
Barošanas avots kontrasta kontrolei |
4 |
RS |
Es |
RS = 0 komandu reģistram, RS = 1 datu reģistram |
5 |
RW |
Es |
R / W = 0 rakstīšanai, R / W = 1 lasīšanai |
6 |
E |
I / O |
Iespējot |
7 |
D0 |
I / O |
8 bitu datu kopne (LSB) |
8 |
D1 |
I / O |
8 bitu datu kopne |
9 |
D2 |
I / O |
8 bitu datu kopne |
10 |
D3 |
I / O |
8 bitu datu kopne |
11 |
D4 |
I / O |
8 bitu datu kopne |
12 |
D5 |
I / O |
8 bitu datu kopne |
13 |
D6 |
I / O |
8 bitu datu kopne |
14 |
D7 |
I / O |
8 bitu datu kopne (MSB) |
15 |
A |
- |
+ 5V apgaismojumam |
16 |
K |
- |
Zeme |
Pretestības krāsu koda jēdziens:
Lai noteiktu pretestības vērtību, mēs varam izmantot šādu formulu.
R = {(AB * 10 c) Ω ± T%}
Kur
A = krāsas vērtība pirmajā joslā.
B = krāsas vērtība otrajā joslā.
C = krāsas vērtība trešajā joslā.
T = krāsas vērtība ceturtajā joslā.
Zemāk esošajā tabulā parādīts rezistoru krāsu kods.
Krāsa |
Krāsas skaitliskā vērtība |
Reizināšanas koeficients (10 c) |
Pielaides vērtība (T) |
Melns |
0 |
10 0 |
- |
Brūns |
1 |
10 1 |
± 1% |
sarkans |
2 |
10 2 |
± 2% |
apelsīns |
3 |
10 3 |
- |
Dzeltens |
4 |
10 4 |
- |
Zaļš |
5 |
10 5 |
- |
Zils |
6 |
10 6 |
- |
violets |
7 |
10 7 |
- |
Pelēks |
8 |
10 8 |
- |
Balta |
9 |
10 9 |
- |
Zelts |
- |
10 -1 |
± 5% |
Sudrabs |
- |
10 -2 |
± 10% |
Nav grupas |
- |
- |
± 20% |
Piemēram, ja krāsu kodi ir Brūns - Zaļš - Sarkans - Sudrabs, pretestības vērtību aprēķina kā
Brūns = 1 zaļš = 5 sarkans = 2 sudrabs = ± 10%
No pirmajām trim joslām R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Ceturtā josla norāda pielaidi ± 10%
10% no 1500 = 150 Par + 10 procentiem vērtība ir 1500 + 150 = 1650Ω Par - 10 procentiem vērtība ir 1500 -150 = 1350Ω
Tāpēc faktiskā pretestības vērtība var būt no 1350Ω līdz 1650Ω.
Lai padarītu to ērtāku, šeit ir rezistences krāsu koda kalkulators, kurā jums jāievada tikai rezistora gredzenu krāsa, un jūs saņemsiet pretestības vērtību.
Pretestības aprēķināšana, izmantojot Arduino Ohm mērītāju:
Šī pretestības mērītāja darbība ir ļoti vienkārša, un to var izskaidrot, izmantojot vienkāršu sprieguma dalītāja tīklu, kas parādīts zemāk.
No rezistoru R1 un R2 sprieguma dalītāja tīkla
Vout = Vin * R2 / (R1 + R2)
No iepriekš minētā vienādojuma mēs varam secināt R2 vērtību kā
R2 = Vout * R1 / (Vin - Vout)
Kur R1 = zināmā pretestība
R2 = nezināma pretestība
Vin = spriegums, kas rodas pie Arduino 5 V tapas
Vout = spriegums pie R2 attiecībā pret zemi.
Piezīme: izvēlētās zināmās pretestības (R1) vērtība ir 3,3 KΩ, bet lietotājiem tā jāaizstāj ar izvēlētā rezistora pretestības vērtību.
Tātad, ja mēs iegūstam sprieguma vērtību nezināmā pretestībā (Vout), mēs varam viegli aprēķināt nezināmo pretestību R2. Šeit mēs esam nolasījuši sprieguma vērtību Vout, izmantojot analogo tapu A0 (sk. Shēmas shēmu), un pārveidojām šīs digitālās vērtības (0 -1023) spriegumā, kā paskaidrots zemāk esošajā kodā.
Ja zināmās pretestības vērtība ir daudz lielāka vai mazāka par nezināmo pretestību, kļūda būs lielāka. Tāpēc ieteicams saglabāt zināmo pretestības vērtību tuvāk nezināmajai pretestībai.
Koda skaidrojums:
Pilnīga Arduino programma un Demo video šim projektam tiek dota beigās šo projektu. Kods ir sadalīts mazos nozīmīgos gabalos un paskaidrots tālāk.
Šajā koda daļā mēs definēsim tapas, uz kurām 16 * 2 LCD displejs ir savienots ar Arduino. RS tapa 16 * 2 LCD ir pievienota arduino digitālajai tapai 2. Iespējot tapu 16 * 2 lcd ir savienots ar Arduino digitālo tapu 3. Datu tapas (D4-D7) 16 * 2 LCD ir savienotas ar Arduino 4,5,6,7 digitālajām tapām.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Šajā koda daļā mēs definējam dažus mainīgos, kas tiek izmantoti programmā. Vin ir spriegums, ko nodrošina 5 V arduino tapa. Vout ir rezistora R2 spriegums attiecībā pret zemi.
R1 ir zināmās pretestības vērtība. R2 ir nezināmas pretestības vērtība.
int Vin = 5; // spriegums pie 5 V arduino pludiņa tapas Vout = 0; // spriegums arduino pludiņa A0 tapā R1 = 3300; // zināmās pretestības pludiņa vērtība R2 = 0; // nezināmas pretestības vērtība
Šajā koda daļā mēs inicializēsim 16 * 2 LCD displeju. Komandas tiek piešķirtas 16 * 2 LCD displejam dažādiem iestatījumiem, piemēram, notīrīt ekrānu, mirgojoša kursora rādīšana utt.
lcd.begin (16,2);
Šajā koda daļā analogais spriegums pie rezistora R2 (A0 tapa) tiek pārveidots par digitālo vērtību (no 0 līdz 1023) un tiek saglabāts mainīgajā.
a2d_data = analogRead (A0);
Šajā koda daļā digitālā vērtība (no 0 līdz 1023) tiek pārvērsta spriegumā turpmākiem aprēķiniem.
buferis = a2d_data * Vin; Vout = (buferis) / 1024,0;
Arduino Uno ADC ir no 10-bit izšķirtspēju (tik vesels skaitlis vērtībām no 0 - 2 ^ 10 = 1024 vērtības). Tas nozīmē, ka tas ieejas spriegumus no 0 līdz 5 voltiem kartēs veselu skaitļu vērtībās no 0 līdz 1023. Tātad, ja mēs reizinām ieejas anlogValue ar vērtību (5/1024), tad mēs iegūstam ieejas sprieguma digitālo vērtību. Uzziniet šeit, kā izmantot ADC ievadi Arduino.
Šajā koda daļā nezināmās pretestības faktiskā vērtība tiek aprēķināta, izmantojot iepriekš aprakstīto procedūru.
buferis = Vout / (Vin-Vout); R2 = R1 * buferis;
Šajā koda daļā nezināmās pretestības vērtība tiek uzdrukāta uz 16 * 2 LCD displeja.
lcd.setCursor (4,0); lcd.print ("om metrs"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Tas ir tas, ka mēs viegli varam aprēķināt nezināma rezistora pretestību, izmantojot Arduino. Pārbaudiet arī:
- Arduino frekvences mērītājs
- Arduino kapacitātes mērītājs