- Labornetzteil AliExpress         
Ergebnis 1 bis 5 von 5

Thema: AD-Wandler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.05.2006
    Beiträge
    9

    AD-Wandler

    Hallo Leute,

    ich benutze ein Drucksensor(Huba Control 663), und eine µcTiny45,
    alles ist schon eingeschlossen(die Pins).

    Zum testen habe ich ein kleines code in C geschriben, es entält ein fkt init, um AD-Wandler zu initialisiren und eine zweite fkt, die die Ausgabe zurückliefert.

    als Ergebnis bekomme ich ein Wert(-253), was bedeutet das, ob das richtig ist?
    wenn nicht was soll ich normalerweise kriegen, und kann jemand mir erklären wie die sachen mit sensor fonktionniert.

    Danke euch

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    Hallo,
    Mit dem was du sagst kann ich absolut garnix anfangen.
    Du musst schon einen Schaltplan und deine Funktionen zeigen und genau sagen was du gemacht hast

    MfG Alex

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.05.2006
    Beiträge
    9
    ok, der sensor hat 3 pins.GND, vcc(5v),und eine zur µc(AD pin).
    ich schicke hier den fkt-code.

    #include "adc.h"
    #include <iom32v.h>

    void Adc_Init(void)
    {
    ADCSR = 0x80; //Durch das setzen von Bit ADEN schaltet Der AD-Umsetzer ein
    ADMUX = 0x03; //wählt der Kanal(ADC3) und setzt die Rferenzspannung auf 5v
    }

    int umsetzen_Spannung(void)
    {

    int Ergebnis;
    ADCSRA = 0xC3 //AD-Umsetzer Starten und Prescaler auswählen
    while ( ADCSRA & (1<<ADSC)); //Warte-Schleife bis Ende der Umsetzung
    Ergebnis = ADCH+ADCL*256; // Im ADCL sind die ersten 8 bits des Ergebnisses
    // Im ADCH sind die restlichen 2 Bits gespeichert
    return Ergebnis;
    }



    #include <iom32v.h>
    #include "adc.h"



    void main()
    {int a=0;

    DDRB=0x17;
    PORTB=0x00;
    while(1)
    {

    Adc_Init();
    umsetzen_Spannung();
    }
    /* for(;
    {
    PORTB=0x17;
    }*/
    }

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Zitat Zitat von espoir
    Ergebnis = ADCH+ADCL*256;
    Das ist auf jeden Fall falsch. Da im ADCH die höherwertigen Bits liegen, muss es genau andersherum sein:
    Ergebnis = ADCH*256+ADCL;

    Gruß,
    askazo

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    02.05.2006
    Beiträge
    9
    ich werde das morgen ausprobieren, aber kann bitte jemand erklären was ist diese ausgegebene Wert(Ergebniss=-253), ob das ist eine Spannung oder was?
    ich habe so verstande: mein Sensor messt ein Differezdruck und wird um eine Spanung.

Berechtigungen

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

12V Akku bauen