- Požadované komponenty:
- Schéma zapojenia:
- Arduino Uno:
- 16 x 2 LCD:
- Koncept farebného kódu odolnosti:
- Výpočet odporu pomocou merača Arduino Ohm:
- Vysvetlenie kódu:
Je pre nás ťažké prečítať farebné kódy na rezistoroch, aby sme zistili jeho odolnosť. Aby sme prekonali ťažkosti s hľadaním hodnoty odporu, zostrojíme jednoduchý Ohm meter pomocou Arduina. Základným princípom tohto projektu je Voltage Divider Network. Hodnota neznámeho odporu sa zobrazuje na 16 * 2 LCD displeji. Tento projekt slúži aj ako 16 * 2 LCD displej prepojený s Arduino.
Požadované komponenty:
- Arduino Uno
- 16 * 2 LCD displej
- Potenciometer (1 kilo Ohm)
- Rezistory
- Nepál
- Prepojovacie vodiče
Schéma zapojenia:
Arduino Uno:
Arduino Uno je doska mikrokontroléra s otvoreným zdrojom založená na mikrokontroléri ATmega328p. Má 14 digitálnych pinov (z toho 6 pinov je možné použiť ako PWM výstup), 6 analógových vstupov, integrované regulátory napätia atď. Arduino Uno má 32 kB flash pamäte, 2 kB SRAM a 1 kB EEPROM. Pracuje na taktovacej frekvencii 16MHz. Arduino Uno podporuje komunikáciu Serial, I2C, SPI pre komunikáciu s inými zariadeniami. Nasledujúca tabuľka zobrazuje technickú špecifikáciu Arduino Uno.
Mikrokontrolér | ATmega328p |
Prevádzkové napätie | 5V |
Vstupné napätie | 7-12 V (odporúčané) |
Digitálne I / O piny | 14 |
Analógové kolíky | 6 |
Flash pamäť | 32 kB |
SRAM | 2 kB |
EEPROM | 1 kB |
Rýchlosť hodín |
16 MHz |
16 x 2 LCD:
16 * 2 LCD je široko používaný displej pre zabudované aplikácie. Tu je krátke vysvetlenie pinov a práce s 16 * 2 LCD displejom. Vo vnútri LCD sa nachádzajú dva veľmi dôležité registre. Sú to dátový register a príkazový register. Register príkazov sa používa na odosielanie príkazov, ako je jasný displej, kurzor doma atď., Register údajov sa používa na odosielanie údajov, ktoré sa majú zobrazovať na displeji LCD 16 * 2. V nasledujúcej tabuľke je uvedený popis kolíka 16 * 2 LCD.
Pripnúť |
Symbol |
I / O |
Popis |
1 |
Vss |
- |
Uzemnenie |
2 |
Vdd |
- |
+ 5V napájanie |
3 |
Vee |
- |
Napájanie na kontrolu kontrastu |
4 |
RS |
Ja |
RS = 0 pre príkazový register, RS = 1 pre dátový register |
5 |
RW |
Ja |
R / W = 0 pre zápis, R / W = 1 pre čítanie |
6 |
E |
I / O |
Povoliť |
7 |
D0 |
I / O |
8-bitová dátová zbernica (LSB) |
8 |
D1 |
I / O |
8-bitová dátová zbernica |
9 |
D2 |
I / O |
8-bitová dátová zbernica |
10 |
D3 |
I / O |
8-bitová dátová zbernica |
11 |
D4 |
I / O |
8-bitová dátová zbernica |
12 |
D5 |
I / O |
8-bitová dátová zbernica |
13 |
D6 |
I / O |
8-bitová dátová zbernica |
14 |
D7 |
I / O |
8-bitová dátová zbernica (MSB) |
15 |
A |
- |
+ 5 V pre podsvietenie |
16 |
K |
- |
Uzemnenie |
Koncept farebného kódu odolnosti:
Na identifikáciu hodnoty odporu môžeme použiť nasledujúci vzorec.
R = {(AB * 10 c) Ω ± T%}
Kde
A = Hodnota farby v prvom pásme.
B = hodnota farby v druhom pásme.
C = Hodnota farby v treťom pásme.
T = hodnota farby vo štvrtom pásme.
Nasledujúca tabuľka zobrazuje farebné označenie rezistorov.
Farba |
Číselná hodnota farby |
Multiplikačný faktor (10 c) |
Hodnota tolerancie (T) |
čierna |
0 |
10 0 |
- |
Hnedá |
1 |
10 1 |
± 1% |
Červená |
2 |
10 2 |
± 2% |
Oranžová |
3 |
10 3 |
- |
žltá |
4 |
10 4 |
- |
zelená |
5 |
10 5 |
- |
Modrá |
6 |
10 6 |
- |
fialový |
7 |
10 7 |
- |
Šedá |
8 |
10 8 |
- |
biely |
9 |
10 9 |
- |
Zlato |
- |
10 -1 |
± 5% |
Striebro |
- |
10 -2 |
± 10% |
Žiadna kapela |
- |
- |
± 20% |
Napríklad ak sú farebné kódy hnedá - zelená - červená - strieborná, hodnota odporu sa počíta ako, Hnedá = 1 zelená = 5 červená = 2 strieborná = ± 10%
Z prvých troch pásiem R = AB * 10 c
R = 15 * 10 +2 R = 1 500 Ω
Štvrté pásmo označuje toleranciu ± 10%
10% z 1500 = 150 Pre + 10 percent je hodnota 1500 + 150 = 1650Ω Pre - 10 percent je hodnota 1500 - 150 = 1350Ω
Skutočná hodnota odporu preto môže byť kdekoľvek medzi 1350Ω a 1650Ω.
Aby to bolo pohodlnejšie, je tu Kalkulačka farebného kódu odporu, kde stačí zadať farbu krúžkov na rezistore a dostanete hodnotu odporu.
Výpočet odporu pomocou merača Arduino Ohm:
Fungovanie tohto merača odporu je veľmi jednoduché a dá sa vysvetliť pomocou jednoduchej siete deliča napätia zobrazenej nižšie.
Zo siete deličov napätia odporov R1 a R2, Vout = Vin * R2 / (R1 + R2)
Z vyššie uvedenej rovnice môžeme odvodiť hodnotu R2 ako
R2 = Vout * R1 / (Vin - Vout)
Kde R1 = známy odpor
R2 = Neznámy odpor
Vin = napätie produkované na 5V kolíku Arduina
Vout = napätie na R2 vzhľadom na zem.
Poznámka: zvolená hodnota známeho odporu (R1) je 3,3 KΩ, ale používatelia by ju mali nahradiť hodnotou odporu zvoleného rezistora.
Takže ak dostaneme hodnotu napätia na neznámom odpore (Vout), môžeme ľahko vypočítať neznámy odpor R2. Tu sme pomocou analógového kolíka A0 (pozri schému zapojenia) načítali hodnotu napätia Vout a prevádzali sme tieto digitálne hodnoty (0 - 1023) na napätie, ako je vysvetlené v nižšie uvedenom kóde.
Ak je hodnota známeho odporu oveľa väčšia alebo menšia ako neznámy odpor, bude chyba väčšia. Preto sa odporúča udržiavať známu hodnotu odporu bližšie k neznámej hodnote odporu.
Vysvetlenie kódu:
Kompletné Arduino programom a Demo Video pre tento projekt je uvedený na konci tohto projektu. Kód je rozdelený na malé zmysluplné bloky a je vysvetlený nižšie.
V tejto časti kódu ideme definovať piny, na ktorých je 16 * 2 LCD displej pripojený k Arduinu. Pin RS 16 * 2 LCD je pripojený k digitálnemu pinu 2 Arduino. Enable pin 16 * 2 lcd je pripojený k digitálnemu pin 3 na Arduino. Dátové piny (D4-D7) 16 * 2 LCD sú pripojené k digitálnym pinom 4,5,6,7 Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
V tejto časti kódu definujeme niektoré premenné, ktoré sa používajú v programe. Vin je napätie poskytované 5V pinom arduina. Vout je napätie na rezistore R2 vzhľadom na zem.
R1 je hodnota známeho odporu. R2 je hodnota neznámeho odporu.
int Vin = 5; // napätie na 5V kolíku arduino float Vout = 0; // napatie na pinu A0 pinu arduino float R1 = 3300; // hodnota známeho odporu float R2 = 0; // hodnota neznámeho odporu
V tejto časti kódu ideme inicializovať 16 * 2 LCD displej. Príkazy sa zadávajú na 16 * 2 LCD displeji pre rôzne nastavenia, ako napríklad čistá obrazovka, blikanie kurzora atď.
lcd.začiatok (16,2);
V tejto časti kódu sa analógové napätie na rezistore R2 (pin A0) prevedie na digitálnu hodnotu (0 až 1023) a uloží sa do premennej.
a2d_data = analogRead (A0);
V tejto časti kódu sa digitálna hodnota (0 až 1023) prevedie na napätie pre ďalšie výpočty.
buffer = a2d_data * Vin; Vout = (vyrovnávacia pamäť) / 1024,0;
Arduino Uno ADC je 10-bitové rozlíšenie (takže hodnoty celé číslo od 0 - 2 ^ 10 = 1024 hodnôt). To znamená, že bude mapovať vstupné napätie medzi 0 a 5 voltami na celočíselné hodnoty medzi 0 a 1023. Takže ak vynásobíme vstupnú hodnotu anlogValue na (5/1024), dostaneme digitálnu hodnotu vstupného napätia. Naučte sa tu, ako používať vstup ADC v Arduine.
V tejto časti kódu sa skutočná hodnota neznámeho odporu vypočíta pomocou postupu, ktorý je vysvetlený vyššie.
vyrovnávacia pamäť = Vout / (Vin-Vout); R2 = R1 * pufor;
V tejto časti kódu je hodnota neznámeho odporu vytlačená na 16 * 2 lcd displeji.
lcd.setCursor (4,0); lcd.print ("ohm meter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.tlač (R2);
To je, že môžeme ľahko vypočítať odpor neznámeho rezistora pomocou Arduina. Skontrolujte tiež:
- Arduino merač frekvencie
- Arduino kapacitný merač