Anzeige:

Menü für LCD Realisieren

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Von Sam am 19.11.2010 20:32

So, ich habe deine Spannungsmessung mal etwas überarbeitet. Jetzt ist der Code etwas kürzer und das Problem mit dem Display dürfte weitgehend entfernt sein.

Achte bitte auf die neue Variable "messergebnis_alt". Sie sorgt dafür, dass das Display nur bei eventuellem Bedarf aktualisiert wird.

Code:
If Menuepunkt = 2 And Messergebnis <> Messergebnis_alt Then
   Cls
   Locate 1 , 1
   Lcd "Batteriezustand:"
   Locate 2 , 1

   Select Case Messergebnis
      Case < 829
         Lcd "leer     <4 Volt"
      Case < 840
         Lcd "5%     4,05 Volt"
      Case < 850
         Lcd "10%    4,10 Volt"
      Case < 860
         Lcd "15%    4,15 Volt"
      Case < 870
         Lcd "20%    4,20 Volt"
      Case < 881
         Lcd "25%    4,25 Volt"
      Case < 891
         Lcd "30%    4,30 Volt"
      Case < 901
         Lcd "35%    4,35 Volt"
      Case < 911
         Lcd "40%    4,40 Volt"
      Case < 922
         Lcd "45%    4,45 Volt"
      Case < 932
         Lcd "50%    4,50 Volt"
      Case < 942
         Lcd "55%    4,55 Volt"
      Case < 952
         Lcd "60%    4,60 Volt"
      Case < 963
         Lcd "65%    4,65 Volt"
      Case < 973
         Lcd "70%    4,70 Volt"
      Case < 983
         Lcd "75%    4,75 Volt"
      Case < 993
         Lcd "80%    4,80 Volt"
      Case < 1004
         Lcd "85%    4,85 Volt"
      Case < 1104
         Lcd "90%    4,90 Volt"
      Case < 1023
         Lcd "95%    4,95 Volt"
      Case = 1023
         Lcd "100%   5,00 Volt"
      Case Else
         Lcd "unbekannt"
   End Select

   Messergebnis_alt = Messergebnis
End If

Von modellfreund am 20.11.2010 07:32

Hallo,

Bascom übersetzt den Code nur mit Fehlern. funktioniert also leider immer noch nicht.

LG Felix

Von Sam am 20.11.2010 10:08

Bitte schreib mir welche Fehler auftreten, sonst kann ich dir nicht helfen.

Von modellfreund am 20.11.2010 17:48

Ich habe einfach mal ein Bildschirm-Druck erstellt.

Von Sam am 20.11.2010 18:24

Nächster Versuch:

Code:
If Menuepunkt = 2 And Messergebnis <> Messergebnis_alt Then
   Cls
   Locate 1 , 1
   Lcd "Batteriezustand:"
   Locate 2 , 1

   If Menuepunkt = 2 And Messergebnis < 829 Then Lcd "leer     <4 Volt"
   If Messergebnis >= 829 And Messergebnis < 840 Then Lcd "5%     4,05 Volt"
   If Messergebnis >= 840 And Messergebnis < 850 Then Lcd "10%    4,10 Volt"
   If Messergebnis >= 850 And Messergebnis < 860 Then Lcd "15%    4,15 Volt"
   If Messergebnis >= 860 And Messergebnis < 870 Then Lcd "20%    4,20 Volt"
   If Messergebnis >= 870 And Messergebnis < 881 Then Lcd "25%    4,25 Volt"
   If Messergebnis >= 881 And Messergebnis < 891 Then Lcd "30%    4,30 Volt"
   If Messergebnis >= 891 And Messergebnis < 901 Then Lcd "35%    4,35 Volt"
   If Messergebnis >= 901 And Messergebnis < 911 Then Lcd "40%    4,40 Volt"
   If Messergebnis >= 911 And Messergebnis < 922 Then Lcd "45%    4,45 Volt"
   If Messergebnis >= 922 And Messergebnis < 932 Then Lcd "50%    4,50 Volt"
   If Messergebnis >= 932 And Messergebnis < 942 Then Lcd "55%    4,55 Volt"
   If Messergebnis >= 942 And Messergebnis < 952 Then Lcd "60%    4,60 Volt"
   If Messergebnis >= 952 And Messergebnis < 963 Then Lcd "65%    4,65 Volt"
   If Messergebnis >= 963 And Messergebnis < 973 Then Lcd "70%    4,70 Volt"
   If Messergebnis >= 973 And Messergebnis < 983 Then Lcd "75%    4,75 Volt"
   If Messergebnis >= 983 And Messergebnis < 993 Then Lcd "80%    4,80 Volt"
   If Messergebnis >= 993 And Messergebnis < 1004 Then Lcd "85%    4,85 Volt"
   If Messergebnis >= 1004 And Messergebnis < 1014 Then Lcd "90%    4,90 Volt"
   If Messergebnis >= 1014 And Messergebnis < 1023 Then Lcd "95%    4,95 Volt"
   If Messergebnis = 1023 Then Lcd "100%   5,00 Volt"

   Messergebnis_alt = Messergebnis
End If

Von modellfreund am 20.11.2010 18:38

Der Code wird zwar ohne Fehler übersetzt aber das Programm funktioniert immer noch nicht. Die Batterieanzeige kann man immer noch kaum lesen durch die Aktualisierung. Außerdem ist mir aufgefallen, dass das Programm nach mehrmaligen durchklicken des Menüs abstürzt. Das LCD zeigt dann irgendwelche Zeichen in Laufschrift an.

LG Felix

Von Sam am 20.11.2010 18:50

Ich weiß nicht, ob der folgende Code besser funktioniert, aber vielleicht war es nur ein Übersetzungsfehler von BASCOM:

Code:
If Menuepunkt = 2 Then
   If Messergebnis < Messergebnis_alt Or Messergebnis > Messergebnis_alt Then
      Cls
      Locate 1 , 1
      Lcd "Batteriezustand:"
      Locate 2 , 1

      If Menuepunkt = 2 And Messergebnis < 829 Then Lcd "leer     <4 Volt"
      If Messergebnis >= 829 And Messergebnis < 840 Then Lcd "5%     4,05 Volt"
      If Messergebnis >= 840 And Messergebnis < 850 Then Lcd "10%    4,10 Volt"
      If Messergebnis >= 850 And Messergebnis < 860 Then Lcd "15%    4,15 Volt"
      If Messergebnis >= 860 And Messergebnis < 870 Then Lcd "20%    4,20 Volt"
      If Messergebnis >= 870 And Messergebnis < 881 Then Lcd "25%    4,25 Volt"
      If Messergebnis >= 881 And Messergebnis < 891 Then Lcd "30%    4,30 Volt"
      If Messergebnis >= 891 And Messergebnis < 901 Then Lcd "35%    4,35 Volt"
      If Messergebnis >= 901 And Messergebnis < 911 Then Lcd "40%    4,40 Volt"
      If Messergebnis >= 911 And Messergebnis < 922 Then Lcd "45%    4,45 Volt"
      If Messergebnis >= 922 And Messergebnis < 932 Then Lcd "50%    4,50 Volt"
      If Messergebnis >= 932 And Messergebnis < 942 Then Lcd "55%    4,55 Volt"
      If Messergebnis >= 942 And Messergebnis < 952 Then Lcd "60%    4,60 Volt"
      If Messergebnis >= 952 And Messergebnis < 963 Then Lcd "65%    4,65 Volt"
      If Messergebnis >= 963 And Messergebnis < 973 Then Lcd "70%    4,70 Volt"
      If Messergebnis >= 973 And Messergebnis < 983 Then Lcd "75%    4,75 Volt"
      If Messergebnis >= 983 And Messergebnis < 993 Then Lcd "80%    4,80 Volt"
      If Messergebnis >= 993 And Messergebnis < 1004 Then Lcd "85%    4,85 Volt"
      If Messergebnis >= 1004 And Messergebnis < 1014 Then Lcd "90%    4,90 Volt"
      If Messergebnis >= 1014 And Messergebnis < 1023 Then Lcd "95%    4,95 Volt"
      If Messergebnis = 1023 Then Lcd "100%   5,00 Volt"

      Messergebnis_alt = Messergebnis
   End If
End If

Von modellfreund am 20.11.2010 22:17

Das LCD aktualisiert sich immer noch ständig. Das Programm hängt sich aber nicht mehr auf.

LG Felix

Von Sam am 21.11.2010 00:19

Dann ist dein ADC wahrscheinlich nicht gut genug abgeschirmt. Versuche das mit einem Kondensator und einer Spule nachzuholen.

Miss am besten nicht mit ADC4 (Pin 27) oder ADC5 (Pin 28)!
Ein Kondensator (100nF) zwischen AREF (Pin 21) und GND.
Ein Kondensator (100nF) zwischen AVCC (Pin 20) und GND.
Eine Spule (10µH) zwischen AVCC (Pin 20) und 5V.

Von modellfreund am 21.11.2010 09:12

Hat auch nichts gebracht.

Anzeige: