-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: Analog Eingang einlesen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718

    Analog Eingang einlesen

    Anzeige

    Hey Leute,
    ich versuche gerade einen Analog Eingang einzulesen.
    Sinn -> ich will ein Poti als Regler verwenden um z.b. ein Wert (sekunden) "hochdrehen" zu können.
    Ich will dazu ein Poti verwenden (50k).

    Außen VCC & GND und Schleifer ist an PA7.
    leider bekomme ich immer nur eine 0 ausgegeben!
    Am Schleifer liegen ca 2 V an.
    Was mach ich vllt falsch?

    Code:
    $regfile = "m16def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    Cls
    
    Config Adc = Single , Prescaler = Auto
    Start Adc
    Dim W As Word , Channel As Byte
    Channel = 7
    
    Do
      W = Getadc(channel)
      Locate 1 , 1
      Lcd "ADC-Pin " ; Channel ;
      Locate 2 , 1
      Lcd "Wert: " ; W
      Waitms 500
      Cls
    Loop
    End
    Lcd usw geht alles, nur steht halt immer ne 0 da!

    Mfg Lenox

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.02.2005
    Ort
    München
    Alter
    32
    Beiträge
    389
    Ich glaube du hast die Referenz vergessen
    REFERENCE
    Value may be OFF , AVCC or INTERNAL. See the data sheets for the different modes.

    d.h.
    Die Zeile müsste bei dir heissen
    Config Adc = Single , Prescaler = Auto , Reference = AVCC

    MfG Matthias

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    habs hinzugefügt, geht leider auch nicht

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    jawohl ich habs, AREF hatte keinen richtigen Kontakt, funktioniert jetzt, aber der Wert schwankt leider stark ca (166-185).

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    166-185 das sind kein 2 %

    Wie genau ist Deine Referenz ?
    1 % ist 'normal' an wackeln ohne Mittelwertbildung,schwer abhängig vom Prescaler und Auto finde ich da eher die schlechte Wahl.

    Gento

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27

    Analogen ADC Wert einlesen , Mega 168 , Basic

    Hallo Leute, habe fast das gleiche Problem...

    Bei mir wird jedoch immer 255 Angezeigt. Außerdem habe ich das Prinzip noch nicht ganz verstanden. Vielleicht könnt ihr mir da weiterhelfen

    Also ich habe einen Sensor, der wie ein Poti agiert, d.h. er liefert mir 0 - 5 V ausgangsspannung am port. versort wird er mit 5 V (is ja klar).
    So, nun habe ich in vielen Datenblättern nachgelesen, das die interne Referenzspannung bei 2,56 V (oder 2,54 V) liegt, und dass man nicht höher an dem Port gehen darf, sonst schießt man ihn ab...
    Ob das stimt weiß ich allerdings nicht. Außerdem, ich verwende einen Mega 168.

    So, nun weiter in der Problematik... Wo, wenn ich jetzt die interne Referenzspannung nicht nehme, müsste ich die externe dranhängen. Wozu sollte man einen Prescaler verwenden?

    Ich möchte mit diesem Sensor Winkel messen. Und dafür brauche ich volle 360°. Da ich aber anscheinend nur eine Auflösung von 256 Bit habe ist das doch extremst schlecht... Da ist doch dann 1 Bit 1,4° groß und das ist sehr ungenau...
    Oder hab ich da schon wieder ein Denkfehler drin?, könnte man die Auflösung größer machen?
    So, ich hoffe ich hab euch nich allzu arg verwirrt...

    Ich bin irgendwie verzweifelt, ich hoffe mir kann jemand mit meinem Problem weiter helfen, denn alle Anleitungen, Bücher oder auch das RN-Wissen helfen mir nicht weiter

    Gruß Felix

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467

    Re: Analogen ADC Wert einlesen , Mega 168 , Basic

    Zitat Zitat von Stargate
    So, nun habe ich in vielen Datenblättern nachgelesen, das die interne Referenzspannung bei 2,56 V (oder 2,54 V) liegt, und dass man nicht höher an dem Port gehen darf, sonst schießt man ihn ab...
    Ob das stimt weiß ich allerdings nicht. Außerdem, ich verwende einen Mega 168.
    Die ATMegas halten eine Eingangspannung von max. 5Volt aus. Wenn du eine Referenzspannung von 2,54Volt hast, ist alles größer 2,54Volt 256.

    Zitat Zitat von Stargate
    So, nun weiter in der Problematik... Wo, wenn ich jetzt die interne Referenzspannung nicht nehme, müsste ich die externe dranhängen.
    Stimmt.
    Zitat Zitat von Stargate
    Wozu sollte man einen Prescaler verwenden?
    Das habe ich auch noch nicht verstanden

    Zitat Zitat von Stargate
    Ich möchte mit diesem Sensor Winkel messen. Und dafür brauche ich volle 360°. Da ich aber anscheinend nur eine Auflösung von 256 Bit habe ist das doch extremst schlecht... Da ist doch dann 1 Bit 1,4° groß und das ist sehr ungenau...
    Oder hab ich da schon wieder ein Denkfehler drin?, könnte man die Auflösung größer machen?
    Ich weiß nicht was für eine Auflösung der ATMega168 hat, aber wenn es nur 256 ist, dann kriegst du es auch nicht genauer.

    jon

    P.S.:Kannst du mal die Spannung messen, bei der er 255 ausgiebt und dann hier dein Ergebnis reinstellen?
    Nice to be back after two years
    www.roboterfreak.de

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    Also bis jetzt ist der Port offen. Ich verwende den Pin PC2 (ADC 2).

    Ich bin grad eben dabei mal Spannungen durchzuprobieren, melde mich gleich (sofort) wieder. Danke schonmal für die schnelle Antwort

    Gruß Felix

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    Also, ich habe mal schnell mit einem Poti an dem Eingang Werte erzeugt... Tut sich GAR NIX. Hab hier mal den Code

    Code:
    $regfile = "m168def.dat"
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    '$hwstack = 32
    '$framesize = 32
    '$swstack = 32
    
    'Die üblichen Definitionen bei Standardprogrammen auf Miniboard
    
    
    Dim Sensor As Byte
    
    
    'Config Pinc.2 = Input                                       'ADC 2 an Ctrl
    'Set Portc.2
    
    Config Adc = Single , Prescaler = Auto
    
    Start Adc
    
    'Prescaler = Auto
    'Reference = Off
    
    Do
    
    Sensor = Getadc(2)
    
    
    
    'Locate 2,8
    'Lcd Sensor
    
    Print "Sensor  " ; Sensor
    
    Wait 2
    
    Loop
    
    End


    Wärenddessen schau ich mir schnell mal den Sensor an, den hab ich auch noch nicht aktiviert ^^

    Bitte nicht an so manchen Codezeilen stören. Manche hab ich mit einem ' außer gefecht gesetzt.

    Also bis gleich

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    der ADC eines AVR hat aber 10 Bit, das ergibt Werte von 0 bis 1023.
    Wenn Du als Referenz nicht intern sondern AVCC angibst, sind das wieder 5V und das sollte doch auch passen.

    Wenn man bei Referenz intern oder AVCC angibt, sollte beim Pin AREF aussen ein Kondensator angeschlossen sein.

    Den Prescaler braucht man um den Takt des ADC auf unter 200kHz zu bekommen, denn der Takt wird von der CPU-Frequenz abgeleitet, das macht Bascom aber für einen wenn man Auto angibt.

    Edit:
    beim M168 ist die interne Referenzspannung 1,1V nicht 2,5V !

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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