Spannungswert von ADC0 auf LCD ausgeben



Zeigerinstrumente haben auch so ihre Vorteile, z. B. kann man vorteilhafter Tendenzen erkennen.

Das folgende Programm stellt auf unserem LCD in der oberen Zeile die Spannungswerte 0..5V dar und bewegt in der zweiten Zeile einen Zeiger.

Benutzt man für die Darstellung von Zeigern, wie sie auf analogen Meßgeräten üblich sind, digitale Anzeigen, spricht man von einer Quasianaloganzeige.






#include <avr/io.h>
#define F_CPU 1000000 // CPU-Frequenz in Hz
#include <util/delay.h>

#include "messen.h"
#include "lcd-routines.h"


int main(void){
    int x=0;

        DDRB |= _BV(PB0); PORTB &= ~_BV(PB0);  // PB0 ist Status-LED Ausgang
   
    lcd_init();
    lcd_clear();
   
    set_cursor(0, 1); lcd_string("0  1  2  3  4  5");
   
    while (1)    {
   
        //Wert von ADC0, siehe "messen.h"
        x=MESSWERT(0);
   
        x=x/60.18;
   
        set_cursor(0, 2); lcd_string("                ");
        set_cursor(x, 2); lcd_string("|");
       
        _delay_ms(255);
    }   
 
    return(0);
}



Du kannst mit z.B. einem 10K-Poti an 5V und GND mit Schleifer auf ADC0 die Spannung 0..5V "durchleiern".
 


Die LCD-Routinen habe ich übrigens aus einem Tutorial von Christian Schifferle und Martin Thomas, das auf www.mikrocontroller.net veröffentlicht ist - einer empfehlenswerten Mikrocontroller-Web-Seite.

Hier der Code-Ordner.