Nun es tut sich immer noch nichts, bei jedem Tastendruck kommt ein piep.
Außer Tastet 3 da macht es piep dann bewegen sich ein paar Leds und dann wider ein piep.
Aber wenn ich gar nichts mach kommt auch ab und zu ein piep.
JPQ hab ich nichts, keinen Jumper.
Oh je, es ist halt so wenn ich mit dem Finger auf einen Taster gehe kommt nacheinander ein kurzes piepen.
Nun es tut sich immer noch nichts, bei jedem Tastendruck kommt ein piep.
Außer Tastet 3 da macht es piep dann bewegen sich ein paar Leds und dann wider ein piep.
Aber wenn ich gar nichts mach kommt auch ab und zu ein piep.
Nun das klingt recht eindeutig nach nicht ganz richtiger Select Case Schleife. Vermutlich liegt ein Wert etwas nahe an der Grenze, daher piepst es ab und zu.
Also wie schon oben beschrieben die WS Anweisungszeile einfügen und dann RS232 Kabel mit PC verbinden. Dann Terminalprogramm in Bascom mit 9600 Baud starten und schaun was bei jedem Tastendruck für ein WS-Wert angezeigt wird.
Wenn du passendes LCD hast kannst du das natürlich auch zum ausgeben von WS nehmen.
Es muss nur die Select Case Anweisung angepasst werden. Betrachte es als erste Bascom-Übung
Ich hatte schon angst das es ein Lötfehler ist.
So nun hab ich das mal gemacht und folgendes erscheint.
ws=1023 ist immer da
wenn ich dann Taste 1 drücke kommt ws=402 und darunter
Bitte Tastenabfrage an Messert ws=402 anpassen!
bei Taste 2 ws=338 und dann
Bitte Tastenabfrage an Messert ws=338 anpassen!
bei Taste 3 ws=263 sonst nichts
bei Taste 4 ws=189 und dann
Bitte Tastenabfrage an Messert ws=189 anpassen!
bei Taste 5 ws=107 und dann
Bitte Tastenabfrage an Messert ws=107 anpassen!
Und bei einem piepsen zwischendurch kommt z.B.
Bitte Tastenabfrage an Messert ws=1020 anpassen!
Und der Wert ist zwischen 1013 und 1020.
Was kann ich nun tun.
Ich hab mir extra das Buch von Claus Kühnel gekauft doch so was steht nicht drin.
Mein erstes Programm um ein Servo zu steuern läuft nun, mit Display Text.
Doch das mit den Tasten ist mir auch wichtig, denn ich möchte über
die Tasten die Servos in die verschiedenen Positionen bringen
Nun dann ist das mit der Tastenanpassung doch relativ einfach.
Ändere mal oben im Code
inCode:Adc_ohne_taste = Adc_ohne_taste - 2 'für Toleranz
Dadurch kann man Toleranzgrenze erweitern, z.B. auch bei SpannungsschwankungenCode:Adc_ohne_taste = Adc_ohne_taste - 20 'für Toleranz
und dann ändere noch die Funktion Tastenabfrage entsprechend deinen Werten ab. Passend wäre zum Beispiel folgende:
Du solltest versuchen diese Codeänderungen zu verstehen, das hilft dir dann bei vielen anderen Dingen weiter. Schlag mal in einem Buch oder der Bascom Hilfe nach der "Select Case -Anweisung" nach, vermutlich wird dir das dann klar werden.Code:'Diese Unterfunktion fragt die Tastatur am analogen Port ab Function Tastenabfrage() As Byte Tastenabfrage = 0 Ton = 600 Ws = Getadc(0) ' Print "ws=" ; Ws If Ws < Adc_ohne_taste Then Select Case Ws Case 395 To 440 Tastenabfrage = 1 Ton = 550 Case 320 To 370 Tastenabfrage = 2 Ton = 500 Case 240 To 300 Tastenabfrage = 3 Ton = 450 Case 170 To 230 Tastenabfrage = 4 Ton = 400 Case 90 To 130 Tastenabfrage = 5 Ton = 350 Case Else Print "Bitte Tastenabfrage an Messert ws="; Ws; " anpassen!" End Select Sound Portb.0 , 400 , Ton 'BEEP End If End Function
Es wird über einen Spannungsteiler für jede Taste ein etwas andere Spannung ermittelt (das ist der WS-Wert). Diese Werte können ein wenig schwanken ode rbei sehr schwachen Batterien (wenn es unter 7V geht) sich auch verändern. Daher wird durhc die Select Case Anweisung immer ein bestimmter Bereich den tasten zugeordnet. Somt funktioniert die Tastenabfrage nach der Anpassung auch bei Schwankungen sehr gut.
In der Regel muss die Anpassung garnicht erfolgen, bei den hier aufgebauten Board´s hat die eigentlich immer schon gut gepasst. Vielleicht ist dein Netzteil etwas schwach oder aber dein Lötzinn hatte etwas zuviel Flussmittel und dadurch Widerstand etwas verändert oder aber die 1% Toleranzen der Widerstände haben sich ungünstig addiert. Wie auch immer, ist eigentlich nebensächlich, da man es ja per Software nur anpassen muss.
Hoffe alle Klarheiten sind beseitigt - nun dann mal viel Spaß!
Danke erstmal.
So hab ich mir das auch gedacht, dass ich es ändere.
Ich hab schon gesucht, doch im Buch „Programmieren der AVR-Risc Microcontroller mit Bascom“
hab ich nichts passendes gefunden.
Nun läuft es, ich hatte schon an mir gezweifelt.
Nochmals danke!!
Lesezeichen