- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: AT90S8535 + GetADC

  1. #1
    Kay
    Gast

    AT90S8535 + GetADC

    Anzeige

    E-Bike
    Hallo,

    habe an meinem AVR ein 10k Schiebepoti angeschlossen. Diese ist an PortA.0 ! an PortB hängen 8 Led´s. mit dem poti regle ich 5V ( oberste Stellung ) und 0V ( unterste Stellung ). wie kann ich es realisieren, das bei 0V keine LED an ist und bei 5V alle Led´s leuchten. also je höher ich das Poti schiebe, umso mehr led´s gehen an. ich hab das mal probiert, aber die led´s wollen nicht so wie ich will. das mit GetADC klappt nur die led´s net.

    mfg Kay

  2. #2
    Gast
    Poste doch mal deinen Programmcode!

  3. #3
    Kay
    Gast
    Also vorab der Programmcode. mir wurde gesagt, man könnte das ganz einfach mit einer Lookup Tabelle machen oder so. aber ich bekomms einfach net hin

    Code:
    $regfile = "8535def.dat"
    $crystal = 4000000
    Ddrb = 3 : Portb = 3
    Const An = 0
    Const Aus = 1
    Led0 Alias Portb.0
    Led1 Alias Portb.1
    Led2 Alias Portb.2
    Led3 Alias Portb.3
    Led4 Alias Portb.4
    Led5 Alias Portb.5
    Led6 Alias Portb.6
    Led7 Alias Portb.7
    
    Dim W As Word
    Dim Volt As Single
    Const Ref = 5 / 1023
    Config Adc = Single , Prescaler = Auto
    Start Adc
    Do
    W = Getadc(0)
    Volt = W * Ref
    
    If Volt = 1 Then Led0 = An
    If Volt = 2 Then Led1 = An
    If Volt = 3 Then Led2 = An
    If Volt = 4 Then Led3 = An
    
    
    
    Loop

  4. #4
    Gast
    Vermutlicxh liegt es nur daran das du nur volle Spannungen in den IF-Abfragen angibst. Bei Bascom Single-Werten können ja auch krumme Werte raus kommen und dann würde sich bei deinem Programm nix tun.

    Probier es doch mal mit geänderten IF-Abfragen, also so
    Code:
    $regfile = "8535def.dat" 
    $crystal = 4000000 
    Ddrb = 3 : Portb = 3 
    Const An = 0 
    Const Aus = 1 
    Led0 Alias Portb.0 
    Led1 Alias Portb.1 
    Led2 Alias Portb.2 
    Led3 Alias Portb.3 
    Led4 Alias Portb.4 
    Led5 Alias Portb.5 
    Led6 Alias Portb.6 
    Led7 Alias Portb.7 
    
    Dim W As Word 
    Dim Volt As Single 
    Const Ref = 5 / 1023 
    Config Adc = Single , Prescaler = Auto 
    Start Adc 
    Do 
    W = Getadc(0) 
    Volt = W * Ref 
    
    If Volt > 1 Then Led0 = An 
    If Volt > 2 Then Led1 = An 
    If Volt > 3 Then Led2 = An 
    If Volt > 4 Then Led3 = An 
    
    Loop

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.01.2004
    Beiträge
    222
    Ja,
    daran wird das liegen. Aber mit dem anderen Code funktionierts.
    Warum benutzt du nicht gleich den Adc-Wert? Also:

    ...
    if Volt > 120 then Led0 = an
    if Volt > 240 then Led1 = an
    ...

    mfg God

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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

LiFePO4 Speicher Test