-         

Ergebnis 1 bis 3 von 3

Thema: Spannung mit ADC messen und Wertbereich weiterverarbeiten

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    06.09.2004
    Ort
    Abensberg (Niederbayern)
    Alter
    33
    Beiträge
    224

    Spannung mit ADC messen und Wertbereich weiterverarbeiten

    Anzeige

    Hi Leute, brauch mal wieder eure Hilfe.

    Bastel grad ein kleines Programm für einen Spannungswächter. Dabei messe ich die Spannung per ADC und gebe die versch. Spannungswerte per LED aus.
    Jetz meine Frage, wenn ich bei einem ADC-Wertebereich zwichen sagen wir mal >827 und <924 eine LED schalten will, wie mache ich das, also wie schreibe ich es für Bascom verständlich, dass er in diesem Bereich die LED an PORTD.1 auf 1 schalten soll?
    Bei einem festen wert wie z.B. if W < 827 then PORTD.0 = 1 ist mir das klar, aber wie kann ich das bei einem Wertbereich machen?

    Danke schon mal!

    Gruß,

    Martin

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Martin,
    zunächst kannst du einfach mal mehrere Bedingungen verknüpfen. In deinem Fall so:
    If W>827 And W<924 Then
    PortD.1=1
    End If

    Allerdings ist das erst die halbe Miete. Wahrscheinlich willst du ja
    PortD.1=0
    setzen, wenn W nicht in diesem Bereich liegt.
    Das ginge z.B. so:
    If W > 827 And W < 924 Then
    PortD.1 = 1
    Else
    PortD.1 = 0
    End If

    Etwas schwieriger wird es, wenn du je nach Wert von W verschiedene LEDs einschalten willst. Also z.B.
    If W > 924 Then : Portd = &B00000001
    Elseif W > 827 Then : Portd = &B00000010
    Elseif W > 730 Then : Portd = &B00000100
    Elseif W > 645 Then : Portd = &B00001000
    Elseif W > 552 Then : Portd = &B00010000
    Elseif W > 400 Then : Portd = &B00100000
    Elseif W > 250 Then : Portd = &B01000000
    Else
    PortD = &B10000000
    End If

    Die gleiche Logik kannst du auch mit Select erreichen:
    Select Case W
    Case Is > 924: PortD = &B00000001
    Case Is > 827: PortD = &B00000010
    Case Is > 730: PortD = &B00000100
    Case Is > 645: PortD = &B00001000
    Case Is > 552: PortD = &B00010000
    Case Is > 400: PortD = &B00100000
    Case Is > 250: PortD = &B01000000
    Case Else: PortD = &B10000000
    End Select

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    06.09.2004
    Ort
    Abensberg (Niederbayern)
    Alter
    33
    Beiträge
    224
    Danke dir, hast mich nen großen Schritt weiter gebracht! Werd ich gleich mal ausprobieren!

    Gruß,

    Martin

Berechtigungen

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