- Gerekli Bileşenler:
- Devre şeması:
- Arduino Uno:
- 16x2 LCD:
- Direnç Renk Kodu Kavramı:
- Arduino Ohm Ölçer Kullanarak Direnci Hesaplama:
- Kod açıklaması:
Dirençlerini bulmak için dirençlerdeki renk kodlarını okumayı zor buluyoruz. Direnç değerini bulmanın zorluğunun üstesinden gelmek için Arduino kullanarak basit bir Ohm Metre inşa edeceğiz. Bu projenin arkasındaki temel ilke Gerilim Bölücü Ağdır. Bilinmeyen direncin değeri 16 * 2 LCD ekranda görüntülenir. Bu proje aynı zamanda Arduino ile arayüz oluşturan 16 * 2 LCD ekran olarak da hizmet vermektedir.
Gerekli Bileşenler:
- Arduino Uno
- 16 * 2 LCD ekran
- Potansiyometre (1 kilo Ohm)
- Dirençler
- Breadboard
- Atlama telleri
Devre şeması:
Arduino Uno:
Arduino Uno, ATmega328p mikrodenetleyiciye dayanan açık kaynaklı bir mikrodenetleyici kartıdır. 14 dijital pin (6 pin PWM çıkışı olarak kullanılabilir), 6 analog giriş, yerleşik voltaj regülatörleri vb. Bulunmaktadır. Arduino Uno 32KB flash bellek, 2KB SRAM ve 1KB EEPROM'a sahiptir. 16MHz saat frekansında çalışır. Arduino Uno, diğer cihazlarla iletişim kurmak için Seri, I2C, SPI iletişimini destekler. Aşağıdaki tablo Arduino Uno'nun teknik özelliklerini göstermektedir.
Mikrodenetleyici | ATmega328p |
Çalışma gerilimi | 5V |
Giriş gerilimi | 7-12V (önerilir) |
Dijital I / O pimleri | 14 |
Analog pimler | 6 |
Flash bellek | 32 KB |
SRAM | 2 KB |
EEPROM | 1 KB |
Saat hızı |
16 MHz |
16x2 LCD:
16 * 2 LCD, gömülü uygulamalar için yaygın olarak kullanılan bir ekrandır. İşte 16 * 2 LCD ekranın pimleri ve çalışması hakkında kısa açıklama. LCD'nin içinde çok önemli iki kayıt vardır. Veri kaydı ve komut kaydıdır. Komut kaydı temiz ekran, evde imleç vb. Komutları göndermek için kullanılır, veri kaydı 16 * 2 LCD'de görüntülenecek verileri göndermek için kullanılır. Aşağıdaki tablo 16 * 2 lcd'nin pin açıklamasını göstermektedir.
Toplu iğne |
Sembol |
G / Ç |
Açıklama |
1 |
Vss |
- |
Zemin |
2 |
Vdd |
- |
+ 5V güç kaynağı |
3 |
Vee |
- |
Kontrastı kontrol etmek için güç kaynağı |
4 |
RS |
ben |
Komut kaydı için RS = 0, Veri kaydı için RS = 1 |
5 |
RW |
ben |
Yazma için R / W = 0, okumak için R / W = 1 |
6 |
E |
G / Ç |
etkinleştirme |
7 |
D0 |
G / Ç |
8 bit veri yolu (LSB) |
8 |
D1 |
G / Ç |
8 bit veri yolu |
9 |
D2 |
G / Ç |
8 bit veri yolu |
10 |
D3 |
G / Ç |
8 bit veri yolu |
11 |
D4 |
G / Ç |
8 bit veri yolu |
12 |
D5 |
G / Ç |
8 bit veri yolu |
13 |
D6 |
G / Ç |
8 bit veri yolu |
14 |
D7 |
G / Ç |
8 bit veri yolu (MSB) |
15 |
Bir |
- |
Arka ışık için + 5V |
16 |
K |
- |
Zemin |
Direnç Renk Kodu Kavramı:
Direncin değerini belirlemek için aşağıdaki formülü kullanabiliriz.
R = {(AB * 10 c) Ω ± T%}
Nerede
A = Birinci banttaki rengin değeri.
B = İkinci banttaki rengin değeri.
C = Üçüncü banttaki rengin değeri.
T = Dördüncü banttaki rengin değeri.
Aşağıdaki tablo dirençlerin renk kodunu göstermektedir.
Renk |
Rengin sayısal değeri |
Çarpma faktörü (10 c) |
Tolerans değeri (T) |
Siyah |
0 |
10 0 |
- |
Kahverengi |
1 |
10 1 |
±% 1 |
Kırmızı |
2 |
10 2 |
±% 2 |
Portakal |
3 |
10 3 |
- |
Sarı |
4 |
10 4 |
- |
Yeşil |
5 |
10 5 |
- |
Mavi |
6 |
10 6 |
- |
Menekşe |
7 |
10 7 |
- |
Gri |
8 |
10 8 |
- |
Beyaz |
9 |
10 9 |
- |
Altın |
- |
10 -1 |
±% 5 |
Gümüş |
- |
10 -2 |
±% 10 |
Grup yok |
- |
- |
±% 20 |
Örneğin renk kodları Kahverengi - Yeşil - Kırmızı - Gümüş ise direnç değeri şu şekilde hesaplanır:
Kahverengi = 1 Yeşil = 5 Kırmızı = 2 Gümüş = ±% 10
İlk üç banttan, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Dördüncü bant ±% 10 toleransı gösterir
1500'ün% 10'u = 150 Yüzde + 10 için değer 1500 + 150 = 1650Ω - Yüzde - 10 için değer 1500-150 = 1350Ω
Bu nedenle, gerçek direnç değeri 1350Ω ile 1650Ω arasında herhangi bir yerde olabilir.
Burada daha kolay hale getirmek için Direnç Renk Kodu Hesaplayıcısı, sadece direnç üzerindeki halkaların rengini girmeniz gereken ve direnç değerini alacağınız yerdir.
Arduino Ohm Ölçer Kullanarak Direnci Hesaplama:
Bu Direnç Ölçerin çalışması çok basittir ve aşağıda gösterilen basit bir voltaj bölücü ağ kullanılarak açıklanabilir.
R1 ve R2 dirençlerinin voltaj bölücü ağından, Vout = Vin * R2 / (R1 + R2)
Yukarıdaki denklemden R2'nin değerini şu şekilde çıkarabiliriz:
R2 = Vout * R1 / (Vin - Vout)
R1 = bilinen direnç
R2 = Bilinmeyen direnç
Vin = Arduino'nun 5V pininde üretilen voltaj
Vout = toprağa göre R2'deki voltaj.
Not: Seçilen bilinen direncin (R1) değeri 3,3KΩ'dur, ancak kullanıcılar bunu seçtikleri direncin direnç değeriyle değiştirmelidir.
Dolayısıyla, bilinmeyen dirençteki (Vout) voltaj değerini alırsak, bilinmeyen direnç R2'yi kolayca hesaplayabiliriz. Burada, analog pin A0'ı kullanarak Vout voltaj değerini okuduk (devre şemasına bakın) ve bu dijital değerleri (0-1023) aşağıdaki Kodda açıklandığı gibi voltaja dönüştürdük.
Bilinen Direncin değeri bilinmeyen dirençten çok daha büyük veya daha küçükse, hata daha fazla olacaktır. Bu nedenle, bilinen direnç değerinin bilinmeyen dirence daha yakın tutulması tavsiye edilir.
Kod açıklaması:
Tam Arduino programı ve Demo Video bu proje için bu projenin sonunda verilir. Kod küçük anlamlı parçalara bölünmüş ve aşağıda açıklanmıştır.
Kodun bu bölümünde Arduino'ya 16 * 2 LCD ekranın bağlı olduğu pinleri tanımlayacağız. 16 * 2 lcd'nin RS pini arduino'nun 2. dijital pinine bağlanır. 16 * 2 lcd'nin etkinleştirme pini, Arduino'nun dijital pin 3'üne bağlanır. 16 * 2 lcd'nin veri pinleri (D4-D7) Arduino'nun 4,5,6,7 dijital pinlerine bağlanır.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Kodun bu bölümünde, programda kullanılan bazı değişkenleri tanımlıyoruz. Vin, arduino'nun 5V pininin sağladığı voltajdır. Vout, toprağa göre R2 direncindeki voltajdır.
R1, bilinen direncin değeridir. R2, bilinmeyen direncin değeridir.
int Vin = 5; // arduino float'ın 5V pinindeki voltaj Vout = 0; // arduino'nun A0 pinindeki voltaj float R1 = 3300; // bilinen direnç değeri float R2 = 0; // bilinmeyen direncin değeri
Kodun bu bölümünde, 16 * 2 lcd ekranı başlatacağız. Komutlar, net ekran, imleç yanıp sönen görüntü gibi farklı ayarlar için 16 * 2 lcd ekrana verilir.
lcd.begin (16,2);
Kodun bu bölümünde R2 direncindeki (A0 pini) analog gerilim dijital değere (0'dan 1023'e) dönüştürülerek bir değişkene kaydedilir.
a2d_data = analogRead (A0);
Kodun bu bölümünde, dijital değer (0 - 1023) daha sonraki hesaplamalar için voltaja dönüştürülür.
arabellek = a2d_data * Vin; Vout = (arabellek) / 1024.0;
Arduino Uno ADC 10 bit çözünürlükte ait (- 2 ^ 10 = 1024 değerler, 0 arasında bir tam sayı değerleri, böylece). Bu, 0 ile 5 volt arasındaki giriş voltajlarını 0 ile 1023 arasındaki tam sayı değerlerine eşleyeceği anlamına gelir. Dolayısıyla, anlogValue girişini (5/1024) ile çarparsak, giriş voltajının dijital değerini elde ederiz. Arduino'da ADC girişini nasıl kullanacağınızı buradan öğrenin.
Kodun bu bölümünde, bilinmeyen direncin gerçek değeri yukarıda açıklanan prosedür kullanılarak hesaplanır.
tampon = Vout / (Vin-Vout); R2 = R1 * arabellek;
Kodun bu bölümünde 16 * 2 lcd ekranda bilinmeyen direncin değeri yazdırılır.
lcd.setCursor (4,0); lcd.print ("ohm metre"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Bu, bilinmeyen bir direncin direncini Arduino kullanarak kolayca hesaplayabiliriz. Ayrıca şunları da kontrol edin:
- Arduino Frekans Ölçer
- Arduino Kapasite Ölçer