-
-
Erfahrener Benutzer
Begeisterter Techniker
Maximalwert aufs Display, wie geht das (bascom)?
Hallo,
ich bin gerade dabei mich in die materie einzuarbeiten.
Mein "Projekt":
ich möchte einen Analogen Eingang (von ca. 2-3 Volt) auf dem Display ausgeben inkl. Maximalwert.
Nun meine Probleme:
1. Wie kann ich die gemessenen Werte für das Display trimmen, so dass diese den Bereich linear von 0 bis 1000 anzeigen?
2. Wie kann ich einen Maximalwert speichern im 2-zeilen-Display(meine angehängte Routine funktioniert nicht, was ist hier der Fehler)?
Do
Maxi = W
'analogwert auslesen
W = Getadc(channel)
Maxi2 = W
'analogwert ins display
Locate 1 , 1
Lcd "Wert: " ; W ; " "
'wert in die untere zeile (display), wenn maximal
If Maxi2 > Maxi Then
Locate 2 , 1
Lcd "Maxwert: " ; W ; " "
End If
'rücksetzen des maximalwertes
If Pind.5 = 0 Then
W = 0
Maxi = 0
Maxi2 = 0
Cls
End If
Waitms 100
Loop
End
-
Erfahrener Benutzer
Begeisterter Techniker
ja, o.k., das mit dem Maximalwert ist geklärt, es muss oben heißen:
If W > maxi then
maxi = W
und dann kann man maxi einfach auf das display ausgeben lassen.
maxi2 kann man vergessen.
so einfach ist das, aber irgendie muss man doch draufkommen....
bein meiner 1. (falschen) version, da wurde ja immer nur der letzte wert mit dem aktuellen verglichen und bei jeder änderung nach oben auf dem Display ausgegeben. Falsch und kompliziert noch dazu.
Holger
-
Erfahrener Benutzer
Fleißiges Mitglied
Ich schreib mal die Frage hier rein weils zu der Thema passt.
Versuche schon seit paar TAgen mit Bascom Hilfe Analog Wert einzulesen und Auf Lcd anzeigen Lassen.Am Pina.0 ist ein Poti angebracht.
folgender Code.
$regfile = "m16def.dat"
Config Lcd = 40 * 4
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0
Do
W = Getadc(channel)
Lcd "Channel" ; Channel ; "value" ; W
Incr Channel
if channel >7 then channel = 0
Loop
End
so wie ich es verstanden hab muss eigentlich die Variable W den aktuellen ADC wert enthalten.
danke
-
Erfahrener Benutzer
Fleißiges Mitglied
Mit dem Befehl Channel = 0 lege ich ja die Pina.0 fest.Oder?
Gruß Michi
-
Erfahrener Benutzer
Begeisterter Techniker
Ich denke, du müsstest im datenblatt des m16 nachsehen, welche pins ad-Wandler-eingänge sind. wenn es pina.x ist, dann liegst du hier wohl richtig. dein programm liest die ganzen a-pins durch, wird aber nur an pina.0 einen vernünftigen wert bringen, weil du hier ja das poti hast.
Ist das Poti auf pluspol ?
In deiner Schleife solltest du vielleicht noch einen Stopp einbauen um überhaupt was erkennen zu können. Vielleicht Waitms 500?
Was zeigt dein Display eigentlich an?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen