Program Kodları
//AÇIKLAMA
//Bu uygulamada ACO bitinin durumuna bakılarak işlem yapıldı. Karşılaştırma işlemi
//gerçekleştiğinde ACSR kayıtçısındaki ACO biti 1 olur. ACO biti 1 olduğunda Led
//yanar 0 olduğunda söner.
//Uygulama hem proteusta hem de fizikselde denendi ve çalıştı.
#define LED 2
bool deger;
void setup()
{
Serial.begin(9600);
pinMode(6, INPUT); //AIN0 pini. Karşılaştırıcının + ucu
pinMode(7, INPUT); //AIN1 pini. Karşılaştırıcının - ucu. Referans gerilim ucu
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ı
ADCSRB |= (0 << ACME); //ADC açıldı
ADCSRA |= (1 << ADEN); //Multiplex Input kapatıldı
DIDR1 |= (1 << AIN1D) | (1 << AIN0D); //AIN1 ve AIN0 pinleri digital girişe kapatıldı
}
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