temperature controlled dc fan using atmega8

onkar_arj's picture
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Type: 

Compiler/Assembler: 

#include<avr/io.h>
#include<util/delay.h>
void
init_adc()
{

    ADMUX = (1<<REFS0);

    ADCSRA = (1<<ADPS1) | (1<<ADPS2) | (1<<ADEN);

}

uint16_t read_adc(uint8_t ch)

{

    init_adc();

    ch = ch & 0b00000111; 
    ADMUX | = ch; ADCSRA | = (1<<ADSC);

    while(!(ADCSRA & (1<<ADIF)));

    ADCSRA | = (1<<ADIF);

    return (ADC);

}

int main(void)

{

    int x; init_adc(); DDRB=0xFF;
    while(1)

    {

        x = read_adc(0); if (x>102.4)
        PORTB = 0b00010000;

        else if (x<21)

        PORTB = 0b00000010;

        else

        PORTB = 0b00000000;

    }

    return 0;

}