- Komponen yang Diperlukan:
- Rajah Litar:
- Arduino Uno:
- LCD 16x2:
- Konsep Kod Warna Rintangan:
- Mengira Rintangan menggunakan Arduino Ohm Meter:
- Penjelasan kod:
Kami sukar membaca kod warna pada perintang untuk mencari ketahanannya. Untuk mengatasi kesukaran mencari nilai rintangan, kita akan membina Ohm Meter sederhana menggunakan Arduino. Prinsip asas di sebalik projek ini ialah Voltage Divider Network. Nilai rintangan yang tidak diketahui dipaparkan pada paparan LCD 16 * 2. Projek ini juga berfungsi sebagai paparan paparan LCD 16 * 2 dengan Arduino.
Komponen yang Diperlukan:
- Arduino Uno
- Paparan LCD 16 * 2
- Potensiometer (1 kilo Ohm)
- Perintang
- Papan roti
- Wayar pelompat
Rajah Litar:
Arduino Uno:
Arduino Uno adalah papan mikrokontroler sumber terbuka berdasarkan mikrokontroler ATmega328p. Ia mempunyai 14 pin digital (dari mana 6 pin dapat digunakan sebagai output PWM), 6 input analog, pengatur voltan papan dan lain-lain. Arduino Uno mempunyai memori kilat 32KB, SRK 2KB dan EEPROM 1KB. Ia beroperasi pada frekuensi jam 16MHz. Arduino Uno menyokong komunikasi Serial, I2C, SPI untuk berkomunikasi dengan peranti lain. Jadual di bawah menunjukkan spesifikasi teknikal Arduino Uno.
Pengawal mikro | ATmega328p |
Voltan operasi | 5V |
Voltan Input | 7-12V (disyorkan) |
Pin I / O digital | 14 |
Pin analog | 6 |
Memori kilat | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
Kelajuan jam |
16MHz |
LCD 16x2:
LCD 16 * 2 adalah paparan yang banyak digunakan untuk aplikasi terbenam. Berikut adalah penjelasan ringkas mengenai pin dan cara kerja paparan LCD 16 * 2. Terdapat dua daftar yang sangat penting di dalam LCD. Mereka adalah daftar data dan daftar perintah. Daftar perintah digunakan untuk mengirim perintah seperti tampilan yang jelas, kursor di rumah dll., Daftar data digunakan untuk mengirim data yang akan ditampilkan pada LCD 16 * 2. Jadual di bawah menunjukkan penerangan pin 16 * 2 lcd.
Sematkan |
Simbol |
Saya / O |
Penerangan |
1 |
Vss |
- |
Tanah |
2 |
Vdd |
- |
+ 5V bekalan kuasa |
3 |
Vee |
- |
Bekalan kuasa untuk mengawal kontras |
4 |
RS |
Saya |
RS = 0 untuk daftar arahan, RS = 1 untuk daftar data |
5 |
RW |
Saya |
R / W = 0 untuk menulis, R / W = 1 untuk membaca |
6 |
E |
Saya / O |
Aktifkan |
7 |
D0 |
Saya / O |
Bas data 8-bit (LSB) |
8 |
D1 |
Saya / O |
Bas data 8-bit |
9 |
D2 |
Saya / O |
Bas data 8-bit |
10 |
D3 |
Saya / O |
Bas data 8-bit |
11 |
D4 |
Saya / O |
Bas data 8-bit |
12 |
D5 |
Saya / O |
Bas data 8-bit |
13 |
D6 |
Saya / O |
Bas data 8-bit |
14 |
D7 |
Saya / O |
Bas data 8-bit (MSB) |
15 |
A |
- |
+ 5V untuk lampu latar |
16 |
K |
- |
Tanah |
Konsep Kod Warna Rintangan:
Untuk mengenal pasti nilai rintangan kita boleh menggunakan formula di bawah.
R = {(AB * 10 c) Ω ± T%}
Di mana
A = Nilai warna pada band pertama.
B = Nilai warna pada jalur kedua.
C = Nilai warna pada jalur ketiga.
T = Nilai warna pada jalur keempat.
Jadual di bawah menunjukkan kod warna perintang.
Warna |
Nilai berangka warna |
Faktor pendaraban (10 c) |
Nilai toleransi (T) |
Hitam |
0 |
10 0 |
- |
Coklat |
1 |
10 1 |
± 1% |
Merah |
2 |
10 2 |
± 2% |
Jingga |
3 |
10 3 |
- |
Kuning |
4 |
10 4 |
- |
Hijau |
5 |
10 5 |
- |
Biru |
6 |
10 6 |
- |
Violet |
7 |
10 7 |
- |
Kelabu |
8 |
10 8 |
- |
Putih |
9 |
10 9 |
- |
Emas |
- |
10 -1 |
± 5% |
Perak |
- |
10 -2 |
± 10% |
Tiada kumpulan |
- |
- |
± 20% |
Sebagai contoh, jika kod warna berwarna Coklat - Hijau - Merah - Perak, nilai rintangan dikira sebagai, Coklat = 1 Hijau = 5 Merah = 2 Perak = ± 10%
Dari tiga jalur pertama, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Jalur keempat menunjukkan toleransi ± 10%
10% dari 1500 = 150 Untuk + 10 peratus, nilainya adalah 1500 + 150 = 1650Ω Untuk - 10 peratus, nilainya adalah 1500 -150 = 1350Ω
Oleh itu, nilai rintangan sebenar boleh berada di antara 1350Ω hingga 1650Ω.
Untuk menjadikannya lebih senang di sini adalah Kalkulator Kod Warna Rintangan di mana anda hanya perlu memasukkan warna cincin pada perintang dan anda akan mendapat nilai rintangan.
Mengira Rintangan menggunakan Arduino Ohm Meter:
Cara kerja Resistance Meter ini sangat mudah dan dapat dijelaskan dengan menggunakan rangkaian pembahagi voltan sederhana seperti di bawah.
Dari rangkaian pembahagi voltan perintang R1 dan R2, Vout = Vin * R2 / (R1 + R2)
Dari persamaan di atas, kita dapat menyimpulkan nilai R2 sebagai
R2 = Vout * R1 / (Vin - Vout)
Di mana R1 = rintangan yang diketahui
R2 = Rintangan yang tidak diketahui
Vin = voltan yang dihasilkan pada pin Arduino 5V
Vout = voltan pada R2 berkenaan dengan tanah.
Catatan: nilai rintangan yang diketahui (R1) yang dipilih adalah 3.3KΩ, tetapi pengguna harus menggantinya dengan nilai rintangan perintang yang telah mereka pilih.
Oleh itu, jika kita mendapat nilai voltan di rintangan yang tidak diketahui (Vout), kita dapat mengira rintangan R2 yang tidak diketahui dengan mudah. Di sini kita telah membaca nilai voltan Vout menggunakan pin analog A0 (lihat gambarajah litar) dan menukar nilai digital tersebut (0 -1023) menjadi voltan seperti yang dijelaskan dalam Kod di bawah.
Sekiranya nilai Rintangan yang diketahui jauh lebih besar atau lebih kecil daripada rintangan yang tidak diketahui maka ralat akan lebih banyak. Oleh itu, disarankan untuk menjaga nilai rintangan yang diketahui lebih dekat dengan rintangan yang tidak diketahui.
Penjelasan kod:
The program Arduino lengkap dan Demo Video untuk projek ini diberikan pada akhir projek ini. Kod ini dibahagikan kepada potongan kecil yang bermakna dan dijelaskan di bawah.
Di bahagian kod ini, kita akan menentukan pin di mana paparan LCD 16 * 2 disambungkan ke Arduino. Pin RS 16 * 2 lcd disambungkan ke pin digital 2 arduino. Aktifkan pin 16 * 2 lcd disambungkan ke pin digital 3 Arduino. Pin data (D4-D7) 16 * 2 lcd disambungkan ke pin digital 4,5,6,7 dari Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Dalam bahagian kod ini, kami menentukan beberapa pemboleh ubah yang digunakan dalam program. Vin adalah voltan yang disediakan oleh pin arduino 5V. Vout adalah voltan pada perintang R2 sehubungan dengan tanah.
R1 adalah nilai rintangan yang diketahui. R2 adalah nilai rintangan yang tidak diketahui.
int Vin = 5; // voltan pada pin 5V arduino float Vout = 0; // voltan pada pin A0 arduino apungan R1 = 3300; // nilai float rintangan yang diketahui R2 = 0; // nilai rintangan yang tidak diketahui
Di bahagian kod ini, kita akan memulakan paparan 16 * 2 lcd. Perintah diberikan kepada paparan lcd 16 * 2 untuk tetapan yang berbeza seperti layar jernih, paparan pada kursor berkedip dll.
lcd.begin (16,2);
Dalam bahagian kod ini, voltan analog pada perintang R2 (pin A0) ditukar menjadi nilai digital (0 hingga 1023) dan disimpan dalam pemboleh ubah.
a2d_data = analogRead (A0);
Dalam bahagian kod ini, nilai digital (0 hingga 1023) ditukar menjadi voltan untuk pengiraan selanjutnya.
penyangga = a2d_data * Vin; Vout = (penyangga) / 1024.0;
The Arduino Uno ADC adalah resolusi 10-bit (supaya nilai integer 0-2 ^ 10 = 1024 nilai). Ini bermaksud bahawa ia akan memetakan voltan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1023. Oleh itu, jika kita mengalikan input anlogValue ke (5/1024), maka kita akan mendapat nilai digital voltan input. Ketahui di sini cara menggunakan input ADC di Arduino.
Dalam bahagian kod ini, nilai sebenar rintangan yang tidak diketahui dikira menggunakan prosedur seperti yang dijelaskan di atas.
penyangga = Vout / (Vin-Vout); R2 = penampan R1 *;
Di bahagian kod ini, nilai rintangan yang tidak diketahui dicetak pada paparan 16 * 2 lcd.
lcd.setCursor (4,0); lcd.print ("ohm meter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Ini adalah dengan mudah kita dapat mengira rintangan perintang yang tidak diketahui menggunakan Arduino. Periksa juga:
- Meter Kekerapan Arduino
- Meter Kapasitansi Arduino