-         

Ergebnis 1 bis 8 von 8

Thema: Problem mit Anzeige Analoger Signale

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317

    Problem mit Anzeige Analoger Signale

    Anzeige

    Hallo,

    ich habe mir für eine Funktion erstellt mit der ich die Analogen Eingänge auslesen kann (ist nahezu 1:1 aus dem Tut von mikrocontroller.net übernommen, bis auf einige bezeichnungen).

    Code:
    //Code zum Auslesen des AD Eingang
    uint16_t  analog_lesen(uint8_t kanal)
    {
     uint8_t i;
     uint16_t result = 0;
     
     ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<< ADPS1) | (1<< ADPS0); // Frequenvorteiler auf 128 setzen und AD-Wandler aktivieren
     
     ADMUX = kanal;
     ADCSRA |= (1<<ADSC);
     while ( ADCSRA & (1<<ADSC) );
     
     for (i=0;i<4;i++)
       {
        ADCSRA |= (1<<ADSC);
        while( ADCSRA & (1<<ADSC) );
        result += ADCW;   
       }
      ADCSRA &= ~(1<<ADEN); //AD-Wandler deaktivieren
      
      result /= 4;
    
      return result; 
     }
    Nun habe ich mir in meinem einen AD Kanal ausgelesen und möchte ihn anzeigen.

    Code:
    ...
     uint16_t messwert0 = 0; 
     char ausgabe0;
    //*** 
     
     messwert0 = analog_lesen(1); 
     itoa(messwert0, ausgabe0, 10);
     
     lcd_gotopos(1,11);
     lcd_writetext("    ");
     lcd_gotopos(1,11);
     lcd_writetext(ausgabe0);
    ...
    Das Anzeigen von Text auf dem Display klappt, die Funktion ist also i.O. ich hatte so auch schon eine Anzeige des Wertes vom AD-Wandler, dann wurden aber plötzlich nur noch wirre Zeichen angezeigt, was ich mir nicht erklären kann.
    Meine Frage ist nun :
    habe ich einen Fehler in der Funktion zu auslesen des AD-Wandler oder wandelt due itoa() Funktion den Integerwert nicht richtig um?

    Danke schon einmal für die Hilfe
    mfG Henry

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Vielleicht hilft unsigned char anzeige0[5]; anstatt
    char anzeige0; ???

    gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317
    Danke, das war es wohl, habe es nun geschafft mir meine 4 Eingänge aufs Display zu bekommen.
    Aber kann es sein das die Eingänge sich ganz schön beeinflussen?
    Muss ich da noch irgendwie PullDownwiderstände einsetzen um das zu vermeiden?
    Habe zum Testen nur ein Poti angeschlossen (Schleifer auf den Eingang und die anderen beiden an die 5V, also als verstellbaren Spannungsteiler).
    mfG Henry

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Aber kann es sein das die Eingänge sich ganz schön beeinflussen?
    Das wäre mir ganz neu.

    Habe zum Testen nur ein Poti angeschlossen (Schleifer auf den Eingang und die anderen beiden an die 5V, also als verstellbaren Spannungsteiler).
    Du meint sicher :
    und die anderen Beiden an die 5V und GND

    oder ??

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317
    Zitat Zitat von izaseba
    Du meint sicher :
    und die anderen Beiden an die 5V und GND

    oder ??
    Ja, genau so meine ich das.

    Es ist so, ich habe an ADC0 und ADC1 je ein Poti. Drehe ich das an ADC1 auf 0 dann bleibt das natürlich auch so. stelle ich dort einen Wert ein und ändere dann den wert an ADC0 steigt bzw. sinkt der Wert an ADC1 um ein gewisses Maß mit und umgekehrt.
    Bei denen die in der Luft hängen kann ich es mir ja noch erklären, aber wenn ein Signal anliegt sollte es sich nicht mehr beeinflussen, oder sehe ich das falsch?
    mfG Henry

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Hmmm,
    das siehst Du richtig.
    Normal ist das nicht, also wie gesagt, hatte solche Problemme noch nie.
    Vielleicht liegt ein Problem in der Schaltung ?
    Mess mal die Spannung am Schleifer, AREF mit dem Multimeter nach, wenn Du an den Potis drehst, vielleicht ist da irgendwo der Hund begraben..

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317
    So, habe es gerade mal gemessen.
    Die Spannung am Schleifer des zweiten Poti ändert sich tatsächlich mit.
    Die Versorgungsspannung ist allerdings stabiel.

    dadurch kann ich mir das wieder nicht erklären. Die Leitungen liegen ca. 2,54mm auseinander, das sollre meiner Meinung nach reichen, denn es fließen ja keine hohen Ströme wo man dann von Induktion sprechen könnte. Äußerst seltsam.
    Hat jemand ne Idee wie ich das unterbinden könnte?
    mfG Henry

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2004
    Beiträge
    317
    Also mit Pull Down Widerständen geht es wunderbar und stört sich nicht mehr gegenseitig. Also doch ganz einfach
    mfG Henry

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •