- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 7 von 7

Thema: AD-Wandler benutzen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.07.2004
    Beiträge
    122

    AD-Wandler benutzen

    Anzeige

    E-Bike
    Hallo

    Nachdem ich die Tutorials durchgelesen habe und auch einige Beispiele mit Erfolg gemeistert habe, bräuchte ich Hilfe für die bessere Andwendung des AD-Wandlers an meinem ATMEGA8535...

    Ich habe bis jetzt Spannungen einlesen können und in Variabeln speichern können.... nun gut... aber diese Werte waren für mich unbrauchbar. Es war glaub von 0-1024 bei 0-5V... Wie kann ich nun den Spannungswert genau bestimmen? Muss ich da einfach die 5V durch 1024 rechnen und dann den Spannungswert mit diesem Quotienten ausrechnen? Das wäre mir ein bisschen eine komische Methode...

    Danke

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    37
    Beiträge
    215
    Im Datenblatt vom ATmega8535 auf Seite 215:
    ADC = Vin * 1024 / Vref
    nach Vin auflösen.
    Wobei ADC der Wert zwischen 0-1024 ist, Vref die eingestellte Referrenzspannung und Vin die gemessene Spannung (nach der die Formel aufgelöst wird).
    Gruß Muraad

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.07.2004
    Beiträge
    122
    Danke Muraad

    Funktioniert soweit eigentlich... könntest du mir noch einen Tipp geben, wie ich meine gemessenen Werte, die ich in ein Float gespeichert habe in einen String umwandeln kann, um ihn dann so per UART zu senden?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    37
    Beiträge
    215
    Vielleicht so:
    Code:
    #include <avr/io.h>
    #include <stdio.h>
    
    void main(void)
    {
       char str[5];            // float=32bit   char=8bit   + nullterminierung
       float x;
       sprintf(str,"%f",&x);    // sprintf() nimmt keine Grenzüberprüfung an str vor!!! Überlaufgefahr
       uart_send_buffer(str);
    }
    Ich weis aber nicht ob das so stimmt. Musst du vielleicht ausprobieren.
    Und die Funktion uart_send_buffer() ist durch deine zu ersetzen. Sie muss halt einen Buffer und nicht nur ein Zeichen senden können.
    Gruß Muraad
    Alle sind unzufrieden - und alle machen weiter wie bisher.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.07.2004
    Beiträge
    122
    Danke für alles Muraad...
    Läuft jetzt TipTop!

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von engineer
    Registriert seit
    24.01.2005
    Ort
    Raum Frankfurt
    Beiträge
    276

    Re: AD-Wandler benutzen

    Zitat Zitat von surfer
    Wie kann ich nun den Spannungswert genau bestimmen? Muss ich da einfach die 5V durch 1024 rechnen und dann den Spannungswert mit diesem Quotienten ausrechnen? Das wäre mir ein bisschen eine komische Methode...
    Danke
    Was soll darab komisch sein ? Das ist Mathe! Ich wüsste nicht wie man es anders machen könnte

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.07.2004
    Beiträge
    122
    Ich hab diese Formel übersehen...
    Sonst wäre es für mich ein bisschen komisch gewesen, da man keine bestimmten Vorgaben hat... man greift aus der Luft eine Lösung, die vielleicht zu Ungenauigkeiten führen könnten...

    Aber eben... klappt ja jetzt alles...

Berechtigungen

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

LiFePO4 Speicher Test