Hallo,
hatte ja einmal hier https://bascomforum.de/index.php?thread/196-erstes-bascom-programm-auf-arduino/&postID=1695#post1695 Mustercode für einen Arduino Uno mit DfRobot LCD shield eingestellt. ABER noch ohne Tasten einzulesen, diese hängen nicht einzeln an pins sonder werden über den Analog-Digital wandler ausgelesen.
Dies LCD Modul hier:index.jpg Hat diesen Schaltplan: LCDKeypad_Shield_SCH.png
Alles recht grobschlächtig, aber vielleicht hilft es jemanden bei irgendwas. Auf wunsch mach ich ach nen Lexikon eintrag draus.
Alles anzeigen
Tobias
hatte ja einmal hier https://bascomforum.de/index.php?thread/196-erstes-bascom-programm-auf-arduino/&postID=1695#post1695 Mustercode für einen Arduino Uno mit DfRobot LCD shield eingestellt. ABER noch ohne Tasten einzulesen, diese hängen nicht einzeln an pins sonder werden über den Analog-Digital wandler ausgelesen.
Dies LCD Modul hier:index.jpg Hat diesen Schaltplan: LCDKeypad_Shield_SCH.png
Alles recht grobschlächtig, aber vielleicht hilft es jemanden bei irgendwas. Auf wunsch mach ich ach nen Lexikon eintrag draus.
Quellcode
- 'Es wird ein orginal Arduino Uno mit DFRobot LCD shield benutzt
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 40
- $swstack = 16
- $framesize = 32
- $baud = 4800
- Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.1 , Rs = PortB.0
- Config Lcd = 16 * 2
- 'Verwendet wird ein Arduino uno und DFRobot 16x2 Displayshiel im Pin mode
- Cursor Off Noblink 'Cursor abschalten
- cls 'LCD inhalt löschen und auf Home Position zurücksetzen
- Config Adc = single , Prescaler = Auto , Reference = avcc '= 10 bit auflösung benutzt wird die
- ' referenzspannung am externen AVCC anschluss; am UNO sind dies 5V
- Dim W As Word
- dim Channel As Byte
- Channel = 0 'Tasten Hängen am ADC Channel 0
- Config Portb.2 = output 'Konfigurieren des Ausgangs für die LCD Hintergrundbeleuchtung
- Deflcdchar 1 , 28 , 16 , 28 , 32 , 32 , 32 , 32 , 32 ' CHR(1) als copyright symbol festlegen
- cls 'nach der definition der Eigenen character muss ein CLS durchgeführt werden, Deflcdchar 0 wird nicht definiert da es nicht mit einer Variable benutzt werden kann
- cls
- portb.2 =1 ' Hintergrundbeleuchtung einschalten
- locate 1,1
- LCD CHR(1);"Bascomforum.de"
- Locate 2,1
- LCD "ADC Tasten Test"
- Wait 2
- cls
- Do' Main Loop
- cls
- W = Getadc(channel)
- 'ADC Werte von meinem Arduino und DFRobot LCD Shield, werte schwanken aber je nach Temperatur und Betriesspannung,
- 'daher muss man bereiche definieren
- 'Right = 0
- 'Up = 99
- 'Down = 254
- 'Left = 409
- 'Select = 640
- 'Keine Taste = 1023
- If w = 0 or w < 10 then
- print " Taste Right"
- Upperline
- LCD "Taste Right"
- end if
- if w > 95 and w < 105 then
- print "Taste Up"
- Upperline
- LCD "Taste UP"
- end if
- If w > 250 and w < 260 then
- print "Taste Down"
- Upperline
- LCD "Taste Down"
- end if
- If w > 403 and w < 414 then
- print "Taste Left"
- Upperline
- LCD "Taste Left"
- end if
- If w > 635 and w < 645 then
- Print "Taste Select"
- Upperline
- LCD "Taste Select"
- end if
- IF w = > 1018 then
- Print "Keine Taste Gedrueckt"
- Upperline
- LCD "Taste Druecken"
- end if
- lowerline
- Print "ADC Wert: " ; w
- LCD "ADC Wert: " ; w
- waitms 750
- Loop
- end
Tobias
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Schraubbaer ()