-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: probleme mit digitalem eingang hilfeeeeeeeeeeeee^^

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25

    probleme mit digitalem eingang hilfeeeeeeeeeeeee^^

    Anzeige

    hallo liebe MK (Mikrokontroller ) freunde, habe einen atmel mega 32, bzw das damit bestueckte roboternetz board RNControl 1.4. habe folgendes problem habe eine Lichtschranke, und eine Inkrementalscheibe an meinem fahrzeug
    bekomme ein 1 oder 0 signal wenn ich die scheibe drehe, bzw ein pegel von 4,7 und 0,3 V, das problem ist, das wenn ich es mit dem messgerät messe funktioniert es, wenn ich es mit den alalogeingängen messe geht es auch, aber mit keinem der digitalen wiederstände.
    falls genauere infos zur lichtschranke erwünscht bitte melden poste sie dann.
    also bisher klingt es nicht problematisch, denke das es ein programmier bzw initialisierungsfehler des digitalports ist, aber ka ^^
    poste einach mal meinen quellcode, sry leider schlecht kommentiert, das projekt muss am fr fertig werde und mir rennt die zeit davon.
    also zum projekt es soll eine sensorauswertung von temperatur strömmen und drehzahl an einem solarangetriebenen fahrzeug sein. strom und temp. gehen schon wunderbar.
    und das printen der der Sensoren1 - 6 dienen nur als schlüsselwörter für meine graphische oberfläche am pc
    so nun der quellcode
    achso ja ist in basic von Bascom geschrieben , naja programmieren ist nicht so mein fall ^^ und die graphische oberfläche ist von abacom profilab compiliert worden aber selbst erstellt freu.
    Code:
    
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600                                                'Baudrate
    Config Adc = Single , Prescaler = Auto
    
    Const Ref = 5 / 1023
    
    
    
    
    
       Config Porta = Input
       For I = 0 To 5                                           ' Alle internen Pullup 'Widerständ ein,bis auf Batteriespannungsmessungsport
          Porta.i = 1
       Next I
    
    
    
       For I = 0 To 5
          Start Adc
          Ws = Getadc(i)
          Volt = Ws * Ref
          Print Volt
          Print "sensor" ; I
          Waitms 5
    
       Next I
    
    
      Config Portd = Input
      Portd.2 = 1
    
    
    
     For Z = 0 To 1000
     'If Portd.2 = 1 Then
     'Drehzaehlsec = 1
     'Else
     'Drehzaehlsec = 0
     'End If
     'Wait 1
     If Portd.2 = 0 Then
     Drehflanke = 0
     End If
    
     If Drehflanke = 0 And Portd.2 = 1 Then
     Drehzaehlsec = Drehzaehlsec + 1
     Drehflanke = 1
     End If
      
    
    
     Waitms 1
    
     Next Z
    
    
    Print Drehzaehlsec
    Print "sensor6"
    Drehzaehlsec = 0
    waere euch zutiefst verbunden wenn mir einer den fehler zeigen könnte
    der fehler liegt definitiv unter den sensor 5 sprich unter der 2. for schleife

    mfg ein verzweifelter MKler

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Einen Eingangspin musst du mit Pind.2 = 0 abfragen, nicht mit Portd.2 = 0.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    ups sry digitale eingänge,
    müsste eigentlich nur wissen wie man digitale eingänge benutze. würde es auch mit dem analogeingang machen, aber durch den a/wandler befürchte ich
    geschwindigkeitseinbusen beim zählen oder?
    naja der motor dreht teilweise 3000 umdrehungen, jedoch zaehlt er nichtmal einen zustanswechsel der incrementalscheibe

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    und dann müsste es gehen, ok probiere ich, was für wiederholraten kann ich denn von dem digitaleingang erwarten
    pro sec meine ich

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    danke für die schnelle antwort

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    ehm, kann es sein das beides geht,?
    bei den analogeingängen hat es funktioniert, oder unterscheiden die sich von den digitalen

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    gibt es denn vieleicht noch einen fehler

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Die analogen Eingänge benutzt du doch nur, wenn du die Amplitude, sprich die Spannung wissen möchtest. Wenn aber immer nur 0V und 5V anliegen, ist der digitale der richtige Eingang.
    Wie schnell der wechseln kann und du das immer noch verarbeiten kannst, hängt von deinem Rest Programm ab. Aber ein 1/10 der Clock müsste drin sein.
    Beim dem Einlesen der Analogeingänge gibst du auch gar keinen Pin oder Port an, sondern den Channel bei Getadc(channel), also kann da auch nichts schiefgehen.
    Du kannst auch einen Eingangspin mit Portd.2 abfragen, bekommst dann aber das zurück, was du als Pull-Up oder Pull-down gesetzt hast.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    axo danke das hat mir sehr viel weitergeholfen thx juhu vieleicht wirds noch was hatte schon aufgeegebenn dachte, das das getadc(cannel was ich verwendet hatte nur für den a/d wandler sind)

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    09.10.2006
    Beiträge
    25
    ne dann habe ich nochmals etwas falsch verstanden, also muss ich das portb = 1 wegglassen oder halt 0 damit er selbst den zustand ändern kann

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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