- Szükséges alkatrészek:
- Kördiagramm:
- Arduino Uno:
- 16x2 LCD:
- Az ellenállás fogalma színkód:
- Az ellenállás kiszámítása Arduino Ohm mérővel:
- Kód magyarázata:
Nehezen olvashatjuk el az ellenállások színkódjait, hogy megtaláljuk az ellenállását. Az ellenállási érték megtalálásának nehézségeinek leküzdése érdekében egy egyszerű Ohm mérőt fogunk építeni az Arduino segítségével. A projekt alapelve a Feszültségosztó hálózat. Az ismeretlen ellenállás értéke a 16 * 2 LCD kijelzőn jelenik meg. Ez a projekt 16 * 2-es LCD-kijelzőként is szolgál az Arduino-val.
Szükséges alkatrészek:
- Arduino Uno
- 16 * 2 LCD kijelző
- Potenciométer (1 kg Ohm)
- Ellenállások
- Kenyérlemez
- Jumper huzalok
Kördiagramm:
Arduino Uno:
Az Arduino Uno egy nyílt forráskódú mikrokontroller tábla, amely az ATmega328p mikrokontrolleren alapul. 14 digitális érintkezõvel rendelkezik (ebből 6 érintkezõ használható PWM kimenetként), 6 analóg bemenettel, fedélzeti feszültségszabályozókkal stb. 16MHz órajelen működik. Az Arduino Uno támogatja a Serial, I2C, SPI kommunikációt más eszközökkel való kommunikációhoz. Az alábbi táblázat az Arduino Uno műszaki leírását mutatja.
Mikrovezérlő | ATmega328p |
Üzemi feszültség | 5V |
Bemeneti feszültség | 7-12 V (ajánlott) |
Digitális I / O csapok | 14 |
Analóg csapok | 6. |
Flashmemória | 32 KB |
SRAM | 2KB |
EEPROM | 1 KB |
Óra sebessége |
16MHz |
16x2 LCD:
A 16 * 2 LCD széles körben használt kijelző beágyazott alkalmazásokhoz. Ez a rövid magyarázat a csapokról és a 16 * 2 LCD kijelző működéséről. Az LCD-n belül két nagyon fontos regiszter található. Ezek adatregiszter és parancsregiszter. A parancsregiszter olyan parancsok küldésére szolgál, mint például a tiszta kijelzés, a kurzor otthon stb., Az adatregiszter segítségével adatokat küldhetünk, amelyeket a 16 * 2 LCD-n kell megjeleníteni. Az alábbi táblázat a 16 * 2 lbd tű leírását mutatja.
Pin |
Szimbólum |
I / O |
Leírás |
1 |
Vss |
- |
Talaj |
2 |
Vdd |
- |
+ 5V tápegység |
3 |
Vee |
- |
Tápegység a kontraszt szabályozásához |
4 |
RS |
én |
RS = 0 a parancsregiszterhez, RS = 1 az adatregiszterhez |
5. |
RW |
én |
R / W = 0 írás, R / W = 1 olvasás esetén |
6. |
E |
I / O |
Engedélyezze |
7 |
D0 |
I / O |
8 bites adat busz (LSB) |
8. |
D1 |
I / O |
8 bites adat busz |
9. |
D2 |
I / O |
8 bites adat busz |
10. |
D3 |
I / O |
8 bites adat busz |
11. |
D4 |
I / O |
8 bites adat busz |
12. |
D5 |
I / O |
8 bites adat busz |
13. |
D6 |
I / O |
8 bites adat busz |
14 |
D7 |
I / O |
8 bites adat busz (MSB) |
15 |
A |
- |
+ 5V a háttérvilágításhoz |
16. |
K |
- |
Talaj |
Az ellenállás fogalma színkód:
Az ellenállás értékének meghatározásához az alábbi képletet használhatjuk.
R = {(AB * 10 c) Ω ± T%}
Hol
A = Az első sáv színének értéke.
B = A szín értéke a második sávban.
C = A szín értéke a harmadik sávban.
T = a negyedik sáv színének értéke.
Az alábbi táblázat az ellenállások színkódját mutatja.
Szín |
A szín numerikus értéke |
Szorzótényező (10 c) |
Toleranciaérték (T) |
Fekete |
0 |
10 0 |
- |
Barna |
1 |
10 1 |
± 1% |
Piros |
2 |
10 2 |
± 2% |
narancssárga |
3 |
10 3 |
- |
Sárga |
4 |
10 4 |
- |
Zöld |
5. |
10 5 |
- |
Kék |
6. |
10 6 |
- |
Ibolya |
7 |
10 7 |
- |
szürke |
8. |
10 8 |
- |
fehér |
9. |
10 9 |
- |
Arany |
- |
10 -1 |
± 5% |
Ezüst |
- |
10 -2 |
± 10% |
Nincsenek bandák |
- |
- |
± 20% |
Például, ha a színkódok Barna - Zöld - Piros - Ezüst, az ellenállás értékét a következőképpen kell kiszámítani:
Barna = 1 Zöld = 5 Piros = 2 Ezüst = ± 10%
Az első három sávból R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
A negyedik sáv ± 10% -os tűrést jelez
Az 1500 10% -a = 150 + 10 százalék esetén az érték 1500 + 150 = 1650Ω For - 10 százalék esetén az érték 1500 -150 = 1350Ω
Ezért a tényleges ellenállás értéke 1350Ω és 1650Ω között lehet.
Kényelmesebbé tétele érdekében itt van az Ellenállás színkód kalkulátor, ahol csak az ellenálláson kell megadni a gyűrűk színét, és megkapja az ellenállás értékét.
Az ellenállás kiszámítása Arduino Ohm mérővel:
Ennek az ellenállásmérőnek a működése nagyon egyszerű, és az alább látható egyszerű feszültségosztó hálózattal magyarázható.
Az R1 és R2 ellenállások feszültségosztó hálózatából, Vout = Vin * R2 / (R1 + R2)
A fenti egyenletből arra következtethetünk, hogy R2 értéke as
R2 = Vout * R1 / (Vin - Vout)
Ahol R1 = ismert ellenállás
R2 = ismeretlen ellenállás
Vin = az Arduino 5 V-os tűjén termelt feszültség
Vout = feszültség R2-nél a testhez viszonyítva.
Megjegyzés: a választott ismert ellenállás (R1) értéke 3,3KΩ, de a felhasználóknak ki kell cserélniük az általuk választott ellenállás ellenállási értékére.
Tehát, ha ismeretlen ellenálláson (Vout) kapjuk meg a feszültség értékét, könnyen kiszámíthatjuk az ismeretlen R2 ellenállást. Itt leolvastuk a Vout feszültségértéket az A0 analóg csap segítségével (lásd az áramköri ábrát), és ezeket a digitális értékeket (0-1023) feszültséggé alakítottuk, az alábbiakban leírtak szerint.
Ha az ismert ellenállás értéke jóval nagyobb vagy kisebb, mint az ismeretlen ellenállás, akkor a hiba nagyobb lesz. Ezért ajánlott az ismert ellenállási értéket közelebb tartani az ismeretlen ellenálláshoz.
Kód magyarázata:
A teljes Arduino program és a bemutató videó a projekt végén található. A kódot apró, értelmes darabokra osztják, és az alábbiakban elmagyarázzák.
A kód ezen részében meghatározzuk azokat a csapokat, amelyeken 16 * 2 LCD-kijelző csatlakozik az Arduino-hoz. 16 * 2 lcd-s RS- tű csatlakozik az arduino 2. digitális tűjéhez. A 16 * 2 lb-os pin engedélyezése csatlakozik az Arduino 3. digitális csatlakozójához. A 16 * 2 lcd adatcsapok (D4-D7) az Arduino 4,5,6,7 digitális érintkezõihez vannak csatlakoztatva.
LiquidCrystal lcd (2,3,4,5,6,7); rs, e, d4, d5, d6, d7
A kód ezen részében meghatározunk néhány változót, amelyet a programban használunk. A Vin az 5 V-os arduino által biztosított feszültség. A Vout az R2 ellenállás feszültsége a testhez viszonyítva.
R1 az ismert ellenállás értéke. R2 az ismeretlen ellenállás értéke.
int Vin = 5; // feszültség az Arduino úszó 5 V-os tűjén Vout = 0; // feszültség az arduino úszó A0 tűjén R1 = 3300; // az ismert ellenállás úszó értéke R2 = 0; // ismeretlen ellenállás értéke
A kód ezen részében inicializálni fogjuk a 16 * 2 lcd kijelzőt. A parancsokat 16 * 2 lcd kijelzőre kapjuk, különféle beállításokhoz, például a képernyő törléséhez, a kurzoron villogó kijelzéshez stb.
lcdbegin (16,2);
A kód ezen részében az R2 ellenállás analóg feszültségét (A0 érintkező) digitális értékre (0-1023) alakítják át, és egy változóban tárolják.
a2d_data = analogRead (A0);
A kód ezen részében a digitális értéket (0-1023) feszültséggé alakítják a további számításokhoz.
puffer = a2d_adatok * Vin; Vout = (puffer) / 1024,0;
Az Arduino Uno ADC 10 bites felbontású (tehát az egész értékek 0 - 2 ^ 10 = 1024 értékek). Ez azt jelenti, hogy a 0 és 5 volt közötti bemeneti feszültségeket 0 és 1023 közötti egész értékekre fogja feltérképezni. Tehát, ha az input anlogValue értéket (5/1024) -re szorozzuk, akkor megkapjuk a bemeneti feszültség digitális értékét. Itt megtudhatja, hogyan használhatja az ADC bevitelt Arduino-ban.
A kód ezen részében az ismeretlen ellenállás tényleges értékét a fent ismertetett eljárással számítják ki.
puffer = Vout / (Vin-Vout); R2 = R1 * puffer;
A kód ezen részében az ismeretlen ellenállás értéke 16 * 2 lcd kijelzőre van nyomtatva.
lcd.setCursor (4,0); lcd.print ("ohm méter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Ez az Arduino segítségével könnyen kiszámolható egy ismeretlen ellenállás ellenállása. Ellenőrizze még:
- Arduino frekvenciamérő
- Arduino kapacitásmérő