- Wymagane składniki:
- Schemat obwodu:
- Arduino Uno:
- Wyświetlacz LCD 16x2:
- Pojęcie koloru odporności:
- Obliczanie rezystancji za pomocą omomierza Arduino:
- Objaśnienie kodu:
Trudno jest odczytać kody kolorów na rezystorach, aby znaleźć opór. Aby przezwyciężyć trudność znalezienia wartości rezystancji, zbudujemy prosty miernik Ohm za pomocą Arduino. Podstawową zasadą tego projektu jest sieć dzielników napięcia. Wartość nieznanej rezystancji jest wyświetlana na wyświetlaczu LCD 16 * 2. Ten projekt służy również jako wyświetlacz LCD 16 * 2 współpracujący z Arduino.
Wymagane składniki:
- Arduino Uno
- Wyświetlacz LCD 16 * 2
- Potencjometr (1 kilo Ohm)
- Rezystory
- Płytka prototypowa
- Przewody połączeniowe
Schemat obwodu:
Arduino Uno:
Arduino Uno to płytka mikrokontrolera typu open source oparta na mikrokontrolerze ATmega328p. Posiada 14 pinów cyfrowych (z czego 6 pinów można wykorzystać jako wyjścia PWM), 6 wejść analogowych, wbudowane regulatory napięcia itp. Arduino Uno posiada 32KB pamięci flash, 2KB SRAM i 1KB EEPROM. Działa z częstotliwością taktowania 16 MHz. Arduino Uno obsługuje komunikację Serial, I2C, SPI do komunikacji z innymi urządzeniami. Poniższa tabela przedstawia specyfikację techniczną Arduino Uno.
Mikrokontroler | ATmega328p |
Napięcie robocze | 5V |
Napięcie wejściowe | 7-12 V (zalecane) |
Cyfrowe piny I / O | 14 |
Piny analogowe | 6 |
Pamięć flash | 32 KB |
SRAM | 2 KB |
EEPROM | 1 KB |
Szybkośc zegara |
16 MHz |
Wyświetlacz LCD 16x2:
16 * 2 LCD to wyświetlacz szeroko stosowany w aplikacjach wbudowanych. Oto krótkie wyjaśnienie dotyczące pinów i działania wyświetlacza LCD 16 * 2. Wewnątrz LCD znajdują się dwa bardzo ważne rejestry. Są to rejestr danych i rejestr poleceń. Rejestr poleceń służy do wysyłania poleceń, takich jak czytelny wyświetlacz, kursor w domu itp., Rejestr danych służy do wysyłania danych, które mają być wyświetlane na wyświetlaczu LCD 16 * 2. Poniższa tabela przedstawia opis pinów 16 * 2 lcd.
Kołek |
Symbol |
I / O |
Opis |
1 |
Vss |
- |
Ziemia |
2 |
Vdd |
- |
Zasilanie + 5V |
3 |
Vee |
- |
Zasilacz do kontroli kontrastu |
4 |
RS |
ja |
RS = 0 dla rejestru poleceń, RS = 1 dla rejestru danych |
5 |
RW |
ja |
R / W = 0 do zapisu, R / W = 1 do odczytu |
6 |
mi |
I / O |
Włączyć |
7 |
D0 |
I / O |
8-bitowa magistrala danych (LSB) |
8 |
D1 |
I / O |
8-bitowa magistrala danych |
9 |
D2 |
I / O |
8-bitowa magistrala danych |
10 |
D3 |
I / O |
8-bitowa magistrala danych |
11 |
D4 |
I / O |
8-bitowa magistrala danych |
12 |
D5 |
I / O |
8-bitowa magistrala danych |
13 |
D6 |
I / O |
8-bitowa magistrala danych |
14 |
D7 |
I / O |
8-bitowa magistrala danych (MSB) |
15 |
ZA |
- |
+ 5V dla podświetlenia |
16 |
K. |
- |
Ziemia |
Pojęcie koloru odporności:
Aby określić wartość oporu, możemy skorzystać z poniższego wzoru.
R = {(AB * 10 c) Ω ± T%}
Gdzie
A = wartość koloru w pierwszym paśmie.
B = wartość koloru w drugim paśmie.
C = wartość koloru w trzecim paśmie.
T = wartość koloru w czwartym paśmie.
Poniższa tabela przedstawia kody kolorów rezystorów.
Kolor |
Numeryczna wartość koloru |
Mnożnik (10 c) |
Wartość tolerancji (T) |
czarny |
0 |
10 0 |
- |
brązowy |
1 |
10 1 |
± 1% |
Czerwony |
2 |
10 2 |
± 2% |
Pomarańczowy |
3 |
10 3 |
- |
Żółty |
4 |
10 4 |
- |
Zielony |
5 |
10 5 |
- |
niebieski |
6 |
10 6 |
- |
Fioletowy |
7 |
10 7 |
- |
Szary |
8 |
10 8 |
- |
Biały |
9 |
10 9 |
- |
Złoto |
- |
10 -1 |
± 5% |
Srebro |
- |
10 -2 |
± 10% |
Żadnego zespołu |
- |
- |
± 20% |
Na przykład, jeśli kody kolorów to brązowy - zielony - czerwony - srebrny, wartość rezystancji jest obliczana jako, Brązowy = 1 zielony = 5 czerwony = 2 srebrny = ± 10%
Z pierwszych trzech pasm R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Czwarte pasmo wskazuje tolerancję ± 10%
10% z 1500 = 150 Dla + 10 procent wartość to 1500 + 150 = 1650Ω Dla - 10 procent wartość to 1500-150 = 1350Ω
Dlatego rzeczywista wartość rezystancji może wynosić od 1350Ω do 1650Ω.
Aby było wygodniej, jest tutaj Kalkulator Kodu Koloru Oporu, w którym wystarczy wpisać kolor pierścieni na rezystorze, a otrzymasz wartość rezystancji.
Obliczanie rezystancji za pomocą omomierza Arduino:
Działanie tego miernika rezystancji jest bardzo proste i można je wyjaśnić za pomocą prostej sieci dzielnika napięcia pokazanej poniżej.
Z sieci dzielnika napięcia rezystorów R1 i R2, Vout = Vin * R2 / (R1 + R2)
Z powyższego równania możemy wywnioskować wartość R2 jako
R2 = Vout * R1 / (Vin - Vout)
Gdzie R1 = znany opór
R2 = nieznany opór
Vin = napięcie wytwarzane na pinie 5 V Arduino
Vout = napięcie na R2 względem ziemi.
Uwaga: wybrana wartość znanej rezystancji (R1) wynosi 3,3 KΩ, ale należy ją zastąpić wartością rezystancji wybranego przez siebie rezystora.
Więc jeśli otrzymamy wartość napięcia na nieznanej rezystancji (Vout), możemy łatwo obliczyć nieznaną rezystancję R2. Tutaj odczytaliśmy wartość napięcia Vout za pomocą analogowego pinu A0 (patrz schemat obwodu) i przekonwertowaliśmy te wartości cyfrowe (0-1023) na napięcie, jak wyjaśniono w kodzie poniżej.
Jeśli wartość znanej rezystancji jest znacznie większa lub mniejsza niż nieznana rezystancja, błąd będzie większy. Dlatego zaleca się utrzymywanie znanej wartości oporu bliżej nieznanej wartości oporu.
Objaśnienie kodu:
Kompletny Arduino Demo programu i wideo dla tego projektu jest podany na końcu tego projektu. Kod jest podzielony na małe znaczące fragmenty i wyjaśniony poniżej.
W tej części kodu zdefiniujemy piny, do których podłączony jest wyświetlacz LCD 16 * 2 do Arduino. Pin RS 16 * 2 lcd jest podłączony do cyfrowego pinu 2 arduino. Włącz pin 16 * 2 lcd jest podłączony do cyfrowego pinu 3 Arduino. Piny danych (D4-D7) 16 * 2 lcd są połączone z pinami cyfrowymi 4,5,6,7 Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
W tej części kodu definiujemy niektóre zmienne, które są używane w programie. Vin to napięcie dostarczane przez pin 5V arduino. Vout to napięcie na rezystorze R2 względem masy.
R1 to wartość znanej rezystancji. R2 jest wartością nieznanego oporu.
int Vin = 5; // napięcie na pinie 5V pływaka arduino Vout = 0; // napięcie na pinie A0 pływaka arduino R1 = 3300; // wartość znanego oporu float R2 = 0; // wartość nieznanego oporu
W tej części kodu zainicjujemy wyświetlacz LCD 16 * 2. Polecenia są przekazywane do wyświetlacza LCD 16 * 2 dla różnych ustawień, takich jak czysty ekran, miganie kursora itp.
lcd.begin (16,2);
W tej części kodu napięcie analogowe na rezystorze R2 (pin A0) jest konwertowane na wartość cyfrową (od 0 do 1023) i zapisywane w zmiennej.
a2d_data = analogRead (A0);
W tej części kodu wartość cyfrowa (od 0 do 1023) jest zamieniana na napięcie do dalszych obliczeń.
bufor = a2d_data * Vin; Vout = (bufor) / 1024,0;
Ciężki Uno ADC ma rozmiar 10 bitów (czyli wartości całkowite od 0 - 2 ^ 10 = 1024 wartości). Oznacza to, że odwzoruje napięcia wejściowe z zakresu od 0 do 5 woltów na wartości całkowite z przedziału od 0 do 1023. Jeśli więc pomnożymy wartość wejściową anlogValue do (5/1024), otrzymamy cyfrową wartość napięcia wejściowego. Dowiedz się, jak korzystać z wejścia ADC w Arduino.
W tej części kodu rzeczywistą wartość nieznanej rezystancji oblicza się zgodnie z procedurą opisaną powyżej.
bufor = Vout / (Vin-Vout); R2 = R1 * bufor;
W tej części kodu wartość nieznanej rezystancji jest drukowana na wyświetlaczu LCD 16 * 2.
lcd.setCursor (4,0); lcd.print ("omomierz"); lcd.setCursor (0,1); lcd.print ("R (om) ="); lcd.print (R2);
Dzięki temu możemy łatwo obliczyć rezystancję nieznanego rezystora za pomocą Arduino. Sprawdź również:
- Miernik częstotliwości Arduino
- Miernik pojemności Arduino