1

Тема: Аналоговый компаратор ATtiny2313

AIN0 + ВНУТРЕННИЙ ИОН
AIN1 INPUT
СВЕТОДИОД НА PD6

ЕСЛИ НАПРЯЖЕНИЕ НА AIN1 СТАНОВИТСЯ БОЛЬШЕ AIN0, СВЕТОДИОД ГАСНЕТ

void setup() {
  ACSR |= (1 << ACBG);  // подключаем ИОН ко входу AIN0 
  DDRD |= (1 << 6);  
}

void loop() {
  if (ACSR & (1 << ACO)) PORTD |= (1 << 6); 
   else PORTD &= ~(1 << 6); 
}

2

Re: Аналоговый компаратор ATtiny2313

AIN0 + ВНЕШНЕЕ ОПОРНОЕ
AIN1 INPUT
СВЕТОДИОД НА PD6

ЕСЛИ НАПРЯЖЕНИЕ НА AIN1 СТАНОВИТСЯ БОЛЬШЕ AIN0, СВЕТОДИОД ГАСНЕТ

void setup() {
  DDRD |= (1 << 6);  
}

void loop() {
  if (ACSR & (1 << ACO)) PORTD |= (1 << 6); 
   else PORTD &= ~(1 << 6); 
}

3

Re: Аналоговый компаратор ATtiny2313

ИСПОЛЬЗОВАНИЕ ОБРАБОТЧИКА ПРЕРЫВАНИЯ ANA_COMP_vect

AIN0 + ВНУТРЕННИЙ ИОН
AIN1 INPUT
СВЕТОДИОД НА PD6

Светодиод подключенный к выходу PD6 горит всегда, если кратковременно подать вход AINT1 напряжение выше 1.1, то светодиод погаснет на 5 секунд и загорится вновь.

bool w;

void setup() {
  DDRD |= (1 << 6); 
  ACSR |= (1 << ACBG);  // подключаем ИОН ко входу AIN0 
 // ACSR |= (1 << ACIS1) | (1 << ACIS0);
  ACSR |= (1 << ACIE);
}

void loop() {
  PORTD |= (1 << 6);
  if(w==1)delay(5000);w=0;
}

ISR(ANA_COMP_vect){
 PORTD &= ~(1 << 6);
 w=1;
 }