Program Kodları
//AÇIKLAMA
//Bu uygulamada analog karşılaştırıcının AIN1 negatif giriş pini yerine
//Analog Digital Converter giriş pinleri olan A0….A7 pinlerinden herhangi
//birini kullandık. Bir önceki uygulamada olduğu gibi ACO pininin durumuna
//bakılarak işlem yapıldı.
#define LED 2
bool deger;
void setup()
{
Serial.begin(9600);
pinMode(6, INPUT); //AIN0 pini. Karşılaştırıcının + ucu
pinMode(A0, INPUT); //Karşılaştırıcının - ucu(referans giriş ucu) olarak A0 kullanılacak
pinMode(LED, OUTPUT);
ACSR |= (0 << ACIE); //karşılaştırıcı kesmesi kapatıldı
ACSR |= (0 << ACBG); //Bandgap Referance Voltajı kapatıldı
ACSR |= (0 << ACD); //Analog Karşılaştırıcıya güç verildi
ACSR |= (0 << ACIC); //Timer1'deki giriş yakalama işlevi kapatıldı
DIDR1 |= (1 << AIN1D) | (1 << AIN0D); //AIN1 ve AIN0 pinleri digital girişe kapatıldı
//referans giriş ucunun ADC pinlerinden biri olması için yapılan ayarlar
ADCSRB |= (1 << ACME); //ADC kapatıldı
ADCSRA &= (0 << ADEN); //Multiplexed input açıldı.
ADMUX |= (0 << MUX2) | (0 << MUX1) | (0 << MUX0); //Karşılaştırıcının - ucu olarak A0 pini seçildi
}
void loop()
{
deger = bitRead(ACSR, 5); //ACSR kayıtçısının 5. biti olan ACO bitinin durumu(1 yada 0) değişkene atandı
if (deger == 1)
{
digitalWrite(LED, HIGH);
Serial.print("deger= "); Serial.println(deger);
delay(1000);
}
else if (deger == 0)
{
digitalWrite(LED, LOW);
Serial.print("deger= "); Serial.println(deger);
delay(1000);
}
}
Devre Şeması
0 comments:
Yorum Gönder