Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] AT90S8535 + GetADC
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
Poste doch mal deinen Programmcode!
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
$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
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
$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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.