- 12V Akku mit 280 Ah bauen         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: Analog Eingang einlesen

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Anzeige

    Praxistest und DIY Projekte
    Wenn du nix angibst, wird die interne Referenz verwendet, deswegen kann nicht mehr als ca. 256 rauskommen !

    probier einfach mal diese Zeile aus: [-o<
    Code:
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Das nennt man ausserdem nicht 256 Bit, sondern 8 Bit !
    Mit 8 Bit gibt es 256 möglichkeiten.

    Der ADC kann aber 10 Bit was einen max. Wert von 1023 ergibt, wenn man aber nur eine Referenzspannung von 1,1V verwendet, ist das in etwa, je nach Genauigkeit, 256 bei angelegten 5V !

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Wow, habs nochmal getestet jetzt gehts (muss mich voll verschrieben haben). Die Anzeige spring garnicht mehr sinnlos rum. Danke

    Mfg
    Stefan

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    Hi, so, nun melde ich mich nochmal zu Wort

    Also passt auf. Mein Sensor funktioniert soweit, nurhab ich wohl noch das gleiche Problem wie Lenox, dass meine Werte Springen, und auch über 256 hinausgehen. Eigendlich hab ich ja die Zeile so angegeben, wieso er das nicht macht ist mir eigendlich unklar. Ich werde es einfach nochmal aufspielen, vielleicht hab ich was falsch gemacht.

    Nun habe ich aber noch ein anderes Problem.
    Ich möchte, dass mir die Gradanzahl ausgegeben wird, d.h. ich benötige eine Kleine Rechnung in meinem Code, die er jedoch als falsch erkennt.
    Als Fehlermeldung bekomm ich "Source variable does not match the target variable" das bezieht sich auf die Zeile: Grad = Sensor *(360 / 1024)

    Schaut es euch einfach mal an

    Code:
             'Erster Test des Displays Wintek 27 * 4 von Pollin
             'Besondere Lernleistung von Felix König
    
    
    $regfile = "m168def.dat"
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    '$hwstack = 32
    '$framesize = 32
    '$swstack = 32
    
    'Die üblichen Definitionen bei Standardprogrammen auf Miniboard
    
    
    
    
     Config Lcd = 40 * 4                                        'Bascom kennt keine Display mit 27 * 4 Zeichen,
                                                                 'daher 40 * 4 verwenden
    
     Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , E2 = Portc.3 , Rs = Portd.3 ,       'Rw = Portc.2
                                                                  'man achte auf die Ergänzung E2
    
     Dim ___lcdno As Byte                                       ' Systemvariable der LCD-Bibliothek
    
    
    
     ___lcdno = 0                                               ' wählt den ersten Chip aus
     Initlcd                                                    'die beiden oberen Zeilen initialisieren
     Cls                                                        'die beiden oberen Zeilen löschen
    
     ___lcdno = 1                                               'auf Chip 2 schalten
     Initlcd                                                    'die beiden unteren Zeilen initialisieren
     Cls                                                        'die beiden unteren Zeilen löschen
    
    
    
       ___lcdno = 0                                             ' wählt die obere Zeile aus
    
       Locate 1 , 1                                             ' schreibt in die erste Zeile an Position 1
       Lcd "  Besondere Lernleistung  ";                        ' den Text in Anführungszeichen
    
       Locate 2 , 1                                             ' schreibt in die zweite Zeile an Position 1
       Lcd "  von Felix Koenig 13 BGD"
    
    
       Cursor Off                                               ' unterdrückt den Cursor
    
    
    
       ___lcdno = 1                                             ' wählt die beiden unteren Zeilen aus
    
       Locate 1 , 1
       Lcd "Windrichtung : ";
    
       Locate 2 , 1
       Lcd "Grad : "
    
       Cursor Off                                               ' unterdrückt den Cursor
    
    
    
     Config Adc = Single , Prescaler = Auto , Reference = Avcc  'Konfiguriert den AD Wandler
    
     Start Adc                                                  'Startet den AD Wandler
    
     Config Pinc.2 = Input                                      'ADC 2 an Ctrl
    
     Dim Sensor As Byte                                         'Deklariert "Sensor" als Byte
     Dim Grad As Byte                                           'Deklariert die Gradvariable "Grad" als Byte
    
    
    
       Do                                                       ' Beginnt die Abfrageschleife zur Werteerfassung
    
       Sensor = Getadc(2)                                       ' Der AD Wert wird am Pin C2 abgelesen und in die Veriable "Sensor" geschrieben
    
       Grad = Sensor *(360 / 1024)
    
       'Print "Sensor  " ; Sensor
    
    
       ___lcdno = 1                                             'wählt die unteren 2 Zeilen aus
    
       If Grad = 0 Then                                         '
          Locate 2 , 8
          Lcd "0° / 360°"
    
       Else
       Locate 2 , 8
       Lcd Grad ; "°"
    
       End If
    
       Waitms 500                                               '500 ms Wartezeit zwischen der Abfragewiederholung
    
       Loop                                                     'Ende der Abfrageschleife, Sprung zum Anfang der Schleife
    
    
    
    
    
    
    End                                                         'Programmende

    Vieleicht könnt ihr mir ja noch so einen wunderbaren und hilfreichen tipp geben.

    Viele Grüße Felix

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hi,

    schau ma mal,

    als erstes würde ich meinen, das Grad als Byte nicht ganz ausreichend dimensioniert ist, weil das dann nur 0 bis 255 geht !

    Sensor ist auch nur ein Byte, beim ADC kommt aber ein Word raus, deswegen gehen deine Werte wohl nur bis 255

    Ja, und Basom kann immer nur eine Aufgabe pro Zeile durchführen, Du musst die Formel aufteilen.

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Jo, seh ich auch so, machs am besten so:

    Dim Sensor As Integer
    Dim Grad As Integer

    Das mit der einen Aufgabe pro zeile wusste ich auch noch nicht!

  6. #26
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    Danke! Hat mir gut weitergeholfen Jedoch springen die Werte immernoch sehr verrückt umher und halten sich nicht auf einem Niveau. Ich muss mal versuchen diese Sprünge mit einem Kondensator in den Griff zu bekommen.... Ich meld mich bald wieder

    Gruß und guten Rutsch

  7. #27
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Kannst du mal die Spannung messen, die beim Sensor raus kommt?
    Wenn die ungenau ist, also schwankt, dann kanst du nur versuchen das über einen Kondensator zu lösen (würde ich als etwas unpraktisch bezeichnen). Wenn die Ausgangsspannung des Sensors nicht schwankt musst du mal schauen, ob AVCC stabil ist.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    So, also ich hab mal die Spannung meines Netzteils überprüft.
    Das Computernetzteil ist soweit stabil. Ich vermute eher, dass das Signal des Senors schwankt. Leider sind diese Schwankungen mit bloßem Auge wohl nicht erkennbar, sonst hätte ich sie ja an der LED die Zwischengeschalten ist, gesehen. Ich werde demnächst mal mit einem Oszilloskop nachmessen. Ich erhoffe mir dass ich was finde

    So, also ich melde mich später mit Oszilloskop wieder

    Gruß Felix

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Lasse mal die LED raus.
    Solche LEDs haben bei mir auch schon für Probleme gesorgt.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    29.11.2006
    Beiträge
    27
    Also ich denke nicht, dass eine LED so Schwankungen erzeugt.

    Ich meine die LED's an dem Adapterboard. Ich habe sie mal ausgeschalten, aber da hat sich nichts verändert.

    Wie gesagt, entweder verrät mir das Oszilloskop mehr, oder ich versuch dann nochmal einen anderen AD-Port

    Gruß

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

12V Akku bauen