Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

K
 
K
Zeile 4: Zeile 4:
 
In unserem Beispiel verwenden wir den Wannenstecker von Port B damit wir keine wichtigen Ports wie I2C, RS232 etc. belegen. Allerdings kann es hier Konflikte geben wenn gleichzeitig der Motortreiber genutzt wird, denn zwei Ports überscheiden sich. Wenn man beides hintereinander nutzt kann man das per Software allerdings schon regeln.
 
In unserem Beispiel verwenden wir den Wannenstecker von Port B damit wir keine wichtigen Ports wie I2C, RS232 etc. belegen. Allerdings kann es hier Konflikte geben wenn gleichzeitig der Motortreiber genutzt wird, denn zwei Ports überscheiden sich. Wenn man beides hintereinander nutzt kann man das per Software allerdings schon regeln.
  
 +
[[Bild:rn_lcd_adapter_rncontrol.gif|framed|center|Ein LCD mittels RN-LCDAdapter angeschlossen.]]
 +
 +
 +
==Selbsterklärendes Bascom Beispielprogramm==
 +
 +
<pre>
 +
'###################################################
 +
'Ein LCD EADIP204 mit RN-LCDAdapter an Port B
 +
'von RN-Control angeschlossen
 +
'rnlcdadaptertest.bas
 +
'
 +
'Autor: Frank
 +
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
 +
'Weitere Beispiele sind im Roboternetz gerne willkommen!
 +
'##############################################################
 +
 +
$programmer = 12        'MCS USB  (Zeile weglassen wenn anderer Programmer)
 +
 +
 +
'  -------------- RN-Control übliche _____________________
 +
Declare Function Tastenabfrage() As Byte
 +
 +
$regfile = "m32def.dat"
 +
$framesize = 32
 +
$swstack = 32
 +
$hwstack = 64
 +
 +
$crystal = 16000000                                        'Quarzfrequenz
 +
$baud = 9600
 +
Config Scl = Portc.0                                        'Ports fuer IIC-Bus
 +
Config Sda = Portc.1
 +
 +
Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
 +
Config Pina.7 = Input                                      'Für Tastenabfrage
 +
Porta.7 = 1                                                'Pullup Widerstand ein
 +
Dim Taste As Byte
 +
Dim Ton As Integer
 +
 +
I2cinit
 +
Start Adc
 +
Sound Portd.7 , 400 , 450                                  'BEEP
 +
Sound Portd.7 , 400 , 250                                  'BEEP
 +
Sound Portd.7 , 400 , 450                                  'BEEP
 +
Print
 +
Print "**** RN-CONTROL  V1.4 *****"
 +
Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
 +
Print
 +
'  -------------- Ende RN-Control übliche _____________________
 +
 +
 +
Config Pinb.4 = Output        'Spannung an LCD aktivieren
 +
Lcdpower Alias Portb.4
 +
 +
Config Pinb.6 = Output
 +
Lcd_rw Alias Portb.6
 +
Lcd_rw = 0
 +
 +
Lcdpower = 1
 +
Wait 1
 +
 +
Config Lcd = 20 * 4a , Chipset = Ks077
 +
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7
 +
Config Lcdbus = 4
 +
 +
Initlcd
 +
 +
Cls
 +
Locate 1 , 1                  'Cursor auf 1 Zeile, 1 Spalte
 +
Lcd "RN-LCDADAPTER"
 +
Locate 2 , 1
 +
Lcd "an RN-Control"
 +
Locate 3 , 1
 +
Lcd "beides Bausaetze von"
 +
Locate 4 , 1
 +
Lcd "robotikhardware.de"
 +
 +
 +
 +
Do
 +
  Taste = Tastenabfrage()
 +
  If Taste <> 0 Then
 +
 +
      Select Case Taste
 +
 +
        Case 1:
 +
              Cls
 +
              Locate 1 , 1
 +
              Lcd "Gedrueckt wurde nun:"
 +
              Locate 2 , 1
 +
              Lcd "Taste 1"
 +
 +
 +
 +
        Case 2
 +
              Cls
 +
              Locate 1 , 1
 +
              Lcd "Gedrueckt wurde nun:"
 +
              Locate 2 , 1
 +
              Lcd "Taste 2"
 +
 +
        Case 3
 +
              Cls
 +
              Locate 1 , 1
 +
              Lcd "Gedrueckt wurde nun:"
 +
              Locate 2 , 1
 +
              Lcd "Taste 3"
 +
 +
 +
        Case 4
 +
              Cls
 +
              Locate 1 , 1
 +
              Lcd "Gedrueckt wurde nun:"
 +
              Locate 2 , 1
 +
              Lcd "Taste 4"
 +
 +
 +
        Case 5
 +
              Cls
 +
              Locate 1 , 1
 +
              Lcd "Licht wird umgeschaltet"
 +
              Toggle Lcdpower
 +
 +
 +
      End Select
 +
      Sound Portd.7 , 400 , 500                            'BEEP
 +
  End If
 +
 +
  Waitms 100
 +
Loop
 +
 +
End
 +
 +
 +
 +
 +
' Diese Unterfunktion fragt die Tastatur am analogen Port ab
 +
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
 +
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
 +
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
 +
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
 +
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
 +
 +
Function Tastenabfrage() As Byte
 +
Local Ws As Word
 +
 +
  Tastenabfrage = 0
 +
  Ton = 600
 +
  Ws = Getadc(7)
 +
'  Print "ws= " ; Ws
 +
  If Ws < 1010 Then
 +
      Select Case Ws
 +
        Case 400 To 455
 +
            Tastenabfrage = 1
 +
            Ton = 550
 +
        Case 335 To 380
 +
            Tastenabfrage = 2
 +
            Ton = 500
 +
        Case 250 To 305
 +
            Tastenabfrage = 3
 +
            Ton = 450
 +
        Case 180 To 220
 +
            Tastenabfrage = 4
 +
            Ton = 400
 +
        Case 100 To 130
 +
            Tastenabfrage = 5
 +
            Ton = 350
 +
      End Select
 +
      Sound Portd.7 , 400 , Ton                        'BEEP
 +
  End If
 +
 +
End Function
 +
</pre>
  
  
Zeile 17: Zeile 189:
 
[[Kategorie:Robotikeinstieg]]
 
[[Kategorie:Robotikeinstieg]]
 
[[Kategorie:Praxis]]
 
[[Kategorie:Praxis]]
[[Kategorie:Sensoren]]
 

Version vom 26. April 2007, 18:31 Uhr

Es gibt verschiedene Möglichkeiten um ein LCD an RN-COntro anzuschließen. Zwei besonders bequeme stellen entweder das Board RN-KeyLCD oder der Adapter RN-LCDAdapter da. Dieses beispiel demonstriert die Verwendung von RN-LCDAdapter.

Einfacher Anschluss über Port B

In unserem Beispiel verwenden wir den Wannenstecker von Port B damit wir keine wichtigen Ports wie I2C, RS232 etc. belegen. Allerdings kann es hier Konflikte geben wenn gleichzeitig der Motortreiber genutzt wird, denn zwei Ports überscheiden sich. Wenn man beides hintereinander nutzt kann man das per Software allerdings schon regeln.

Ein LCD mittels RN-LCDAdapter angeschlossen.


Selbsterklärendes Bascom Beispielprogramm

'###################################################
'Ein LCD EADIP204 mit RN-LCDAdapter an Port B
'von RN-Control angeschlossen
'rnlcdadaptertest.bas
'
'Autor: Frank
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'##############################################################

$programmer = 12        'MCS USB  (Zeile weglassen wenn anderer Programmer)


'  -------------- RN-Control übliche _____________________
Declare Function Tastenabfrage() As Byte

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600
Config Scl = Portc.0                                        'Ports fuer IIC-Bus
Config Sda = Portc.1

Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer

I2cinit
Start Adc
Sound Portd.7 , 400 , 450                                   'BEEP
Sound Portd.7 , 400 , 250                                   'BEEP
Sound Portd.7 , 400 , 450                                   'BEEP
Print
Print "**** RN-CONTROL  V1.4 *****"
Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
Print
'  -------------- Ende RN-Control übliche _____________________


Config Pinb.4 = Output        'Spannung an LCD aktivieren
Lcdpower Alias Portb.4

Config Pinb.6 = Output
Lcd_rw Alias Portb.6
Lcd_rw = 0

Lcdpower = 1
Wait 1

Config Lcd = 20 * 4a , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7
Config Lcdbus = 4

Initlcd

Cls
Locate 1 , 1                  'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1
Lcd "an RN-Control"
Locate 3 , 1
Lcd "beides Bausaetze von"
Locate 4 , 1
Lcd "robotikhardware.de"



Do
   Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste

         Case 1:
               Cls
               Locate 1 , 1
               Lcd "Gedrueckt wurde nun:"
               Locate 2 , 1
               Lcd "Taste 1"



         Case 2
               Cls
               Locate 1 , 1
               Lcd "Gedrueckt wurde nun:"
               Locate 2 , 1
               Lcd "Taste 2"

         Case 3
               Cls
               Locate 1 , 1
               Lcd "Gedrueckt wurde nun:"
               Locate 2 , 1
               Lcd "Taste 3"


         Case 4
               Cls
               Locate 1 , 1
               Lcd "Gedrueckt wurde nun:"
               Locate 2 , 1
               Lcd "Taste 4"


         Case 5
               Cls
               Locate 1 , 1
               Lcd "Licht wird umgeschaltet"
               Toggle Lcdpower


      End Select
      Sound Portd.7 , 400 , 500                             'BEEP
   End If

   Waitms 100
Loop

End




' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen

Function Tastenabfrage() As Byte
Local Ws As Word

   Tastenabfrage = 0
   Ton = 600
   Ws = Getadc(7)
'   Print "ws= " ; Ws
   If Ws < 1010 Then
      Select Case Ws
         Case 400 To 455
            Tastenabfrage = 1
            Ton = 550
         Case 335 To 380
            Tastenabfrage = 2
            Ton = 500
         Case 250 To 305
            Tastenabfrage = 3
            Ton = 450
         Case 180 To 220
            Tastenabfrage = 4
            Ton = 400
         Case 100 To 130
            Tastenabfrage = 5
            Ton = 350
      End Select
      Sound Portd.7 , 400 , Ton                        'BEEP
   End If

End Function


Siehe auch

Weblinks


LiFePO4 Speicher Test