- Požadované komponenty:
- Kruhový diagram:
- Arduino Uno:
- 16x2 LCD:
- Koncept barevného kódu odporu:
- Výpočet odporu pomocí měřiče Arduino Ohm:
- Vysvětlení kódu:
Zjistíme, že je obtížné číst barevné kódy na rezistorech, abychom našli jeho odolnost. Abychom překonali obtížnost nalezení hodnoty odporu, postavíme jednoduchý Ohm metr pomocí Arduina. Základním principem tohoto projektu je síť děliče napětí. Hodnota neznámého odporu se zobrazuje na 16 * 2 LCD displeji. Tento projekt slouží také jako 16 * 2 LCD displej propojený s Arduino.
Požadované komponenty:
- Arduino Uno
- 16 * 2 LCD displej
- Potenciometr (1 kiloohm)
- Rezistory
- Nepájivá deska
- Propojovací vodiče
Kruhový diagram:
Arduino Uno:
Arduino Uno je open source deska mikrokontroléru založená na mikrokontroléru ATmega328p. Má 14 digitálních pinů (z toho 6 pinů lze použít jako PWM výstupy), 6 analogových vstupů, palubní regulátory napětí atd. Arduino Uno má 32 kB flash paměti, 2 kB SRAM a 1 kB EEPROM. Pracuje na hodinové frekvenci 16MHz. Arduino Uno podporuje komunikaci Serial, I2C, SPI pro komunikaci s dalšími zařízeními. V následující tabulce je uvedena technická specifikace Arduino Uno.
Mikrokontrolér | ATmega328p |
Provozní napětí | 5V |
Vstupní napětí | 7-12 V (doporučeno) |
Digitální I / O piny | 14 |
Analogové piny | 6 |
Flash paměť | 32 kB |
SRAM | 2 kB |
EEPROM | 1 kB |
Rychlost hodin |
16 MHz |
16x2 LCD:
16 * 2 LCD je široce používaný displej pro vestavěné aplikace. Zde je stručné vysvětlení pinů a fungování 16 * 2 LCD displeje. Uvnitř LCD jsou dva velmi důležité registry. Jedná se o datový registr a příkazový registr. Registr příkazů se používá k odesílání příkazů, jako je jasný displej, kurzor doma atd., Datový registr se používá k odesílání dat, která se mají zobrazit na 16 * 2 LCD. Níže uvedená tabulka zobrazuje popis kolíku 16 * 2 LCD.
Kolík |
Symbol |
I / O |
Popis |
1 |
Vss |
- |
Přízemní |
2 |
Vdd |
- |
+ 5V napájení |
3 |
Vee |
- |
Napájení pro ovládání kontrastu |
4 |
RS |
Já |
RS = 0 pro příkazový registr, RS = 1 pro datový registr |
5 |
RW |
Já |
R / W = 0 pro zápis, R / W = 1 pro čtení |
6 |
E |
I / O |
Umožnit |
7 |
D0 |
I / O |
8bitová datová sběrnice (LSB) |
8 |
D1 |
I / O |
8bitová datová sběrnice |
9 |
D2 |
I / O |
8bitová datová sběrnice |
10 |
D3 |
I / O |
8bitová datová sběrnice |
11 |
D4 |
I / O |
8bitová datová sběrnice |
12 |
D5 |
I / O |
8bitová datová sběrnice |
13 |
D6 |
I / O |
8bitová datová sběrnice |
14 |
D7 |
I / O |
8bitová datová sběrnice (MSB) |
15 |
A |
- |
+ 5 V pro podsvícení |
16 |
K. |
- |
Přízemní |
Koncept barevného kódu odporu:
K identifikaci hodnoty odporu můžeme použít následující vzorec.
R = {(AB * 10 c) Ω ± T%}
Kde
A = Hodnota barvy v prvním pásmu.
B = hodnota barvy ve druhém pásmu.
C = Hodnota barvy ve třetím pásmu.
T = hodnota barvy ve čtvrtém pásmu.
Tabulka níže ukazuje barevný kód rezistorů.
Barva |
Číselná hodnota barvy |
Multiplikační faktor (10 c) |
Hodnota tolerance (T) |
Černá |
0 |
10 0 |
- |
Hnědý |
1 |
10 1 |
± 1% |
Červené |
2 |
10 2 |
± 2% |
oranžový |
3 |
10 3 |
- |
Žlutá |
4 |
10 4 |
- |
Zelená |
5 |
10 5 |
- |
Modrý |
6 |
10 6 |
- |
fialový |
7 |
10 7 |
- |
Šedá |
8 |
10 8 |
- |
Bílý |
9 |
10 9 |
- |
Zlato |
- |
10 -1 |
± 5% |
stříbrný |
- |
10 -2 |
± 10% |
Žádná kapela |
- |
- |
± 20% |
Pokud jsou například barevné kódy hnědá - zelená - červená - stříbrná, hodnota odporu se vypočítá jako, Hnědá = 1 Zelená = 5 Červená = 2 Stříbrná = ± 10%
Z prvních tří pásem R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Čtvrté pásmo označuje toleranci ± 10%
10% z 1500 = 150 Pro + 10 procent je hodnota 1500 + 150 = 1650Ω Pro - 10 procent je hodnota 1500-150 = 1350Ω
Skutečná hodnota odporu proto může být kdekoli mezi 1350Ω a 1650Ω.
Aby to bylo pohodlnější, je zde Kalkulačka barevného kódu odporu, kde stačí zadat barvu prstenců na rezistoru a získáte hodnotu odporu.
Výpočet odporu pomocí měřiče Arduino Ohm:
Práce tohoto měřiče odporu je velmi jednoduchá a lze ji vysvětlit pomocí jednoduché sítě děliče napětí zobrazené níže.
Ze sítě děliče napětí rezistorů R1 a R2, Vout = Vin * R2 / (R1 + R2)
Z výše uvedené rovnice můžeme odvodit hodnotu R2 jako
R2 = Vout * R1 / (Vin - Vout)
Kde R1 = známý odpor
R2 = Neznámý odpor
Vin = napětí produkované na 5V pinu Arduina
Vout = napětí na R2 vzhledem k zemi.
Poznámka: zvolená hodnota známého odporu (R1) je 3,3 KΩ, ale uživatelé by ji měli nahradit hodnotou odporu zvoleného rezistoru.
Pokud tedy dostaneme hodnotu napětí na neznámém odporu (Vout), můžeme snadno vypočítat neznámý odpor R2. Zde jsme načetli hodnotu napětí Vout pomocí analogového pinu A0 (viz schéma zapojení) a převedli jsme tyto digitální hodnoty (0-1023) na napětí, jak je vysvětleno v kódu níže.
Pokud je hodnota známého odporu mnohem větší nebo menší než neznámý odpor, bude chyba větší. Doporučuje se proto udržovat známou hodnotu odporu blíže neznámému odporu.
Vysvětlení kódu:
Kompletní Arduino programem a Demo Video pro tento projekt je uveden na konci tohoto projektu. Kód je rozdělen na malé smysluplné bloky a je vysvětleno níže.
V této části kódu budeme definovat piny, na kterých je 16 * 2 LCD displej připojen k Arduinu. Pin RS 16 * 2 LCD je připojen k digitálnímu pinu 2 Arduina. Enable pin of 16 * 2 lcd is connected to digital pin 3 of Arduino. Datové piny (D4-D7) 16 * 2 LCD jsou připojeny k digitálním pinům 4,5,6,7 Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
V této části kódu definujeme některé proměnné, které se v programu používají. Vin je napětí poskytované 5V pinem arduina. Vout je napětí na rezistoru R2 vzhledem k zemi.
R1 je hodnota známého odporu. R2 je hodnota neznámého odporu.
int Vin = 5; // napětí na 5V pinu arduino float Vout = 0; // napětí na pinu A0 plováku arduino R1 = 3300; // hodnota známého odporu float R2 = 0; // hodnota neznámého odporu
V této části kódu inicializujeme 16 * 2 LCD displej. Příkazy se zadávají na 16 * 2 lcd displeji pro různá nastavení, jako je jasná obrazovka, blikající kurzor atd.
lcd.begin (16,2);
V této části kódu je analogové napětí na rezistoru R2 (pin A0) převedeno na digitální hodnotu (0 až 1023) a uloženo do proměnné.
a2d_data = analogRead (A0);
V této části kódu je digitální hodnota (0 až 1023) převedena na napětí pro další výpočty.
buffer = a2d_data * Vin; Vout = (vyrovnávací paměť) / 1024,0;
Arduino Uno ADC je 10-bitové rozlišení (takže hodnoty celé číslo od 0 - 2 ^ 10 = 1024 hodnot). To znamená, že bude mapovat vstupní napětí mezi 0 a 5 volty na celočíselné hodnoty mezi 0 a 1023. Pokud tedy vynásobíme vstupní anlogValue na (5/1024), získáme digitální hodnotu vstupního napětí. Naučte se zde, jak používat vstup ADC v Arduinu.
V této části kódu se skutečná hodnota neznámého odporu vypočítá postupem popsaným výše.
buffer = Vout / (Vin-Vout); R2 = R1 * pufr;
V této části kódu je hodnota neznámého odporu vytištěna na 16 * 2 lcd displeji.
lcd.setCursor (4,0); lcd.print ("ohm metr"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
To je, že můžeme snadno vypočítat odpor neznámého rezistoru pomocí Arduina. Zkontrolujte také:
- Měřič frekvence Arduino
- Měřič kapacity Arduino