Bu projede ATMEGA8 mikrodenetleyiciyi kullanarak düşük menzilli bir ampermetre yapacağız. ATMEGA8'de bunu yapmak için 10bit ADC (Analogdan Dijitale Dönüştürme) özelliğini kullanacağız. Bir devreden akım parametresini almanın birkaç başka yolu olmasına rağmen, dirençli bırakma yöntemini kullanacağız, çünkü bu akım parametresini almanın en kolay ve en basit yolu.
Bu yöntemde ölçülmesi gereken akımı küçük bir dirence geçireceğiz, bu sayede içinden geçen akımla ilgili olan bu direnç boyunca bir düşüş elde edeceğiz. Direnç boyunca bu voltaj ADC dönüşümü için ATMEGA8'e beslenir. Bununla birlikte, 16x2 LCD'de görüntülenecek olan dijital değerdeki akıma sahip olacağız.
Bunun için bir voltaj bölücü devre kullanacağız. Akımı tam direnç kolundan besleyeceğiz. Dalın orta noktası ölçüme alınır. Akım değiştiğinde, ona doğrusal olan dirençte düşüş değişikliği olacaktır. Yani bununla doğrusallıkla değişen bir voltajımız var.
Şimdi burada dikkat edilmesi gereken önemli nokta, kontrolör tarafından ADC dönüşümü için alınan girişin 50µAmp kadar düşük olmasıdır. Direnç bazlı voltaj bölücünün bu yükleme etkisi önemlidir, çünkü voltaj bölücünün Vout'undan çekilen akım, hata yüzdesi artışlarını arttırır, çünkü artık yükleme etkisi konusunda endişelenmemize gerek yoktur.
Gerekli Bileşenler
Donanım: ATMEGA8, güç kaynağı (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kapasitör, 100nF kapasitör (4 parça), 100Ω direnç (7 parça) veya 2,5Ω (2 parça), 100KΩ direnç.
Yazılım: Atmel studio 6.1, progisp veya flash magic.
Devre Şeması ve Çalışma Açıklaması
R2 ve R4 arasındaki voltaj tamamen doğrusal değildir; gürültülü olacak. Gürültüyü filtrelemek için, kondansatörler şekilde gösterildiği gibi bölücü devredeki her bir direnç boyunca yerleştirilir.
ATMEGA8'de PORTC'nin DÖRT kanalından herhangi birine Analog giriş verebiliriz, hepsi aynı olduğundan hangi kanalı seçtiğimiz önemli değil. PORTC'un 0 veya PIN0 kanalını seçeceğiz. ATMEGA8'de ADC 10 bit çözünürlüktedir, bu nedenle kontrolör minimum Vref / 2 ^ 10 değişimini algılayabilir, bu nedenle referans voltajı 5V ise her 5/2 ^ 10 = 5mV için bir dijital çıkış artışı elde ederiz. Dolayısıyla, girişteki her 5mV artış için dijital çıkışta bir artış elde edeceğiz.
Şimdi ADC sicilini aşağıdaki şartlara göre ayarlamamız gerekiyor:
1. Öncelikle ADC'de ADC özelliğini etkinleştirmemiz gerekiyor.
2. Buradan ADC dönüşümü için maksimum giriş voltajı + 5V olacak. Böylece ADC'nin maksimum değerini veya referansını 5V'a ayarlayabiliriz.
3. Kontrolör, ADC dönüşümünün yalnızca harici bir tetiklemeden sonra gerçekleştiği anlamına gelen bir tetikleme dönüştürme özelliğine sahiptir, çünkü ADC'nin sürekli serbest çalışma modunda çalışması için yazmaçları ayarlamamıza gerek kalmaz.
4. Herhangi bir ADC için, dönüştürme frekansı (Analog değerden Dijital değere) ve dijital çıktının doğruluğu ters orantılıdır. Bu nedenle, dijital çıktının daha iyi doğruluğu için daha az frekans seçmemiz gerekir. Normal ADC saati için ADC'nin ön satışını maksimum değere (2) ayarlıyoruz. 1MHZ'nin dahili saatini kullandığımız için, ADC'nin saati (1000000/2) olacaktır.
Bunlar ADC'ye başlamak için bilmemiz gereken dört şey.
Yukarıdaki dört özelliğin tümü iki kayıt tarafından belirlenir,
KIRMIZI (ADEN): Bu bit, ATMEGA'nın ADC özelliğini etkinleştirmek için ayarlanmalıdır.
MAVİ (REFS1, REFS0): Bu iki bit, referans voltajını (veya vereceğimiz maksimum giriş voltajını) ayarlamak için kullanılır. Referans voltajı 5V olmasını istediğimiz için REFS0 tablo ile ayarlanmalıdır.
SARI (ADFR): Bu bit, ADC'nin sürekli çalışması için ayarlanmalıdır (serbest çalışma modu).
PINK (MUX0-MUX3): Bu dört bit, giriş kanalını söylemek içindir. ADC0 veya PIN0 kullanacağımız için, tablodaki gibi herhangi bir bit ayarlamamıza gerek yoktur.
BROWN (ADPS0-ADPS2): bu üç bit, ADC için ön skaler ayarlamak içindir. Prescalar 2 kullandığımız için, bir bit ayarlamalıyız.
KOYU YEŞİL (ADSC): bu bit, ADC'nin dönüşümü başlatması için ayarlanır. Dönüştürmeyi durdurmamız gerektiğinde bu bit programda devre dışı bırakılabilir.