Wiki ADA

Projetos em Engenharia de Computação

Ferramentas do usuário

Ferramentas do site


smc-conhecimento-exemplo

SMC: Conhecimento de Exemplo

Descrição

O projeto SMC precisa de um sensor de umidade para que possamos registrar a umidade do composto através do arduino.

Solução

Através do datasheet do sensor, verificamos que o pino 1 é de alimentação, o 2 é uma saída anlógica e o 3 é o terra, portanto basta efetuar uma leitura analógica no pino 2. Para realizar isto com o Atmega, utilizamos as seguintes linhas de código:

int main() {
 
    //Vref = AVcc; Bits ajustados a esquerda(haverão 8 bits em ADCH e 2 em ADCL); Canal 0
    ADMUX = (1 << REFS0) | (1 << ADLAR) ;
    //Habilita a conversão AD
    ADCSRA  = (1 << ADEN) ;
 
    //inicializa o lcd
    lcd_init();
 
    sendInst(_LCD_ON | _LCD_CURSOR_ON | _LCD_CURSOR_BLINK);
    sendInst(_LCD_CLR);
    sendInst(_LCD_HOME);
 
    while (1) {
        double leitura;
        char printbuff[21];
 
        //Inicia a conversão AD
        ADCSRA |= (1 << ADSC) ;
        //Espera a conversão terminar
        while (!(ADCSRA & (1 << ADIF))) ;
 
        //Atribue o valor da conversão à variável leitura
        leitura = ADCH ;
 
        //Converte a variável leitura (tipo double) para string 'printbuff'
        dtostrf(leitura, 10, 3, printbuff);
 
        //Manda para o LCD a string 'printbuff'
        writeStringXY(printbuff, 0, 0);
 
        //Espera um pouco antes da próxima conversão
        _delay_ms(100) ;
    }
    return 0 ;
}

Datasheet do sensor de umidade: http://www.ti.com/lit/ds/symlink/lm35.pdf

Datasheet do Atmega: http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf

Questão em fórum: https://community.particle.io/t/problem-with-the-lm35-temperature-sensor/22180

smc-conhecimento-exemplo.txt · Última modificação: 2019/05/07 20:07 por amador