-         

Ergebnis 1 bis 7 von 7

Thema: LEDs mit Tastern steuern

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9

    LEDs mit Tastern steuern

    Anzeige

    Hallo
    Ich hab mir mal für mein RN-Controllboard 1.4 ein Programm gebastelt um 5 von den 6 Tastern zu benutzen um die LEDs an und aus zu machen.
    Nur sobald ich das Programm hochlade sind alle 5 LEDs an und das mit den Tastern funktioniert nicht.

    $regfile = "m32def.dat"
    $crystal = 16000000

    Speaker Alias Portd.7
    Declare Function Tastenabfrage() As Byte
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Config Portc.7 = Output
    Config Portc.6 = Output
    Config Portc.5 = Output
    Config Portc.4 = Output
    Config Portc.3 = Output
    Blink_led Alias Portc.7
    Blink_led2 Alias Portc.6
    Blink_led3 Alias Portc.5
    Blink_led4 Alias Portc.4
    Blink_led5 Alias Portc.3

    Dim Taste As Byte
    Const Ref = 5 / 1023

    Function Tastenabfrage() As Byte

    Local Ws As Word
    Tastenabfrage = 0
    Start Adc
    Ws = Getadc(0.)

    End

    If Ws < 1010 Then

    Select Case Ws

    Case 410 To 450
    Tastenabfrage = 1
    Blink_led = 1

    Case 340 To 380
    Tastenabfrage = 2
    Blink_led2 = 1

    Case 265 To 305
    Tastenabfrage = 3
    Blink_led3 = 1

    Case 180 To 220
    Tastenabfrage = 4
    Blink_led4 = 1

    Case 100 To 130
    Tastenabfrage = 5
    Blink_led5 = 1

    End Select
    End If
    End Function

    Das ist der Code. Findet da jemand einen Fehler? Oder sind evtl nur die Werte für den Case falsch.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Das Programm kann nicht gehen, da es nach der Zeile "Ws = Getadc(0.) " durch das "END" abgebrochen wird.

    Ne Endlosschleife gibts auch nirgendwo, also wirds nur ein einziges mal durchlaufen, wenn das END weg ist.
    #ifndef MfG
    #define MfG

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    mmmh hab das End weggemacht und nun gehen sobald ich das Programm übertrage 5 LEDs nach einer kurzen Zeit nacheinander aus.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Joa, weil immer noch keine Endlosschleife da ist. Das Programm läuft genau 1x durch und dann is Ende.
    Es muss also noch ein Do Loop um den Teil, der wiederholt werden soll.
    #ifndef MfG
    #define MfG

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Hab ich nun gemacht. Aber eine andere Frage. Für die 6 Taster auf dem Board muss ich da eine Spannung für anlegen oder nimmt er die Spannung mit der das Board versorgt wird (in meinem Fall die USB Spannung)?

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ich weiss ja nicht wie das bei diesem spetziellen Board ist - im allgemeinen gehen Taster aber nach GND und brauchen somit gar keine Spannung. Das ist praktischer, weil die µC´s PullUp-Widerstände eingebaut haben.

    Bei Deinem Code ist mir aber noch aufgefallen, dass Du die Variablen Blink_led nirgendswo mehr auf 0 zurücksetzt. D.h. einmal 1 = immer 1.

    Soll das so sein?

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Also bei dem Board ist das so das da eine Reihenschaltung aus 7 Widerständen ist die an 5V anliegen. Die Taster sind zwischen den widerstanden angebracht so das an T1 die Spannung vom 10k und dem 1k anliegt und an T2 dann 10k 1k und nochmal 1k. Und das geht dann immer so weiter.

    Und ja den Fehler mit nicht zurücksetzen der LEDs hab ich heute morgen auch gesehen.

Berechtigungen

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