Mal wieder was neues.

RN-DIGI

Eine große 7-Segmentanzeige passend zu den Roboternetz-Boards!


Dieses Board wurde als Erweiterung zu den Roboternetz-Controllerboards (RNBFRA und RN-Control) entworfen, eignet sich aber für alle Controllerboards mit I2C-Ausgang.

Es dient zum Anzeigen von 4 Zahlen. Dabei werden optisch ansprechende und extra große 7-Segmentanzeigen bereitgestellt (ca. 25mm Ziffernhöhe, Anzeige rot). Die Ansteuerung erfolgt sehr einfach per I2C-Bus.

Die Anwendungsmöglichkeiten sind dem Programmierer vorbehalten. Denkbar wäre das Board für den Aufbau von Uhren, Funkuhren, Zählern, Lottozahlgenratoren, Würfeln, Temperaturanzeigen usw. In Kombination mir RN-Speak und RN-Control wäre zum Beispiel ein sprechender Wecker denkbar.



Als hier die Leistungsmerkmale auf einen Blick:
  • Sehr einfache Ansteuerung per I2C Bus
  • Keine extra Spannungszuführung notwendig da Board über das I2C-Bus Kabel mit Strom verorgt wird
  • Programmierbare Helligkeit
  • Jedes einzelne Segment der 7-Segmentanzeige kann angesteuert werden
  • 4 Dezimalpunkte möglich
  • Controller wird nicht belastet. Die Ziffern werden solange angezeigt, bis neue Ziffer gesendet wird. Keine Interrupts oder Bus-Belastung!
  • Preisgünstig und schneller Aufbau in wenigen Minuten möglich
  • 4 verschiedene Slave Adressen per Jumper wählbar
  • Kleines Lochraster Experimentierfeld für Erweiterungen Taster, I2C-Baustein etc.
  • Kompakt, Roboternetz-Standard-Format 100x78 (halbes Euroformat), Huckepack mit anderen Boards kombinierbar
  • Deutsche Bauanleitung und Doku mit Programmbeispielen für RN-Control und RNBFRA-Board


Hier zum Beispiel Huckepack mit RN-Control kombiniert:


Bauanleitung im Download Bereich :
http://www.roboternetz.de/phpBB2/dlo...le&file_id=170

Platine oder Bausatz kann auch über robotikhardware.de bezogen werden

Platinen-Übersicht hier

Hier ein erstes Ansteuerbeispiel. Ist wirklich einfach:

Code:
'###################################################
'rncontrol_digitest.BAS   Demo zu RN-Digi
'für
'RoboterNetz Board RN-Control ab Version 1.1 und
'Zusatzboard RN-DIGI (vierstellig großes LED-Display per I2C)

'
'Aufgabe:
' Dieses Testprogramm demonstriert die Ansteuerung von RN-Digi

' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Alle Ziffern auf 0 stellen (genau wie bei Reset)
' Taste 2: Nacheinander alle Ziffern von 0 bis 9 zählen


'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'##############################################################


Declare Function Tastenabfrage() As Byte
Declare Sub Led_display_init()
Declare Sub Led_display(byval Ziffer As Byte , Byval Zahl As Byte)


$regfile = "m16def.dat"

Const Rn_digi_slave_write = &H70
Const Rn_digi_slave_read = &H71
Const Dezimalpunktziffer = 2                                'Segment wo Dezimalpunkt leuchten soll (0=keinen)

Dim Segmente As Byte
Dim Z As Byte
Dim I As Byte
Dim N As Integer
Dim Ton As Integer



$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

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





I2cinit
Led_display_init

I = 0
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 "Das neue Experimentier- und Roboterboard"
Print
Do




   Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste
         Case 1
            For Z = 1 To 4
              Led_display Z, 0
            Next Z

         Case 2
            For Z = 1 To 4
               For I = 0 To 9
                   Led_display Z, I
                   Waitms 300
               Next I
            Next Z


         Case 3

         Case 4

         Case 5



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

   Waitms 100
Loop

End




'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word


   Tastenabfrage = 0
   Ton = 600
   Start Adc
   Ws = Getadc(7)
   If Ws < 1010 Then
      Select Case Ws
         Case 410 To 450
            Tastenabfrage = 1
            Ton = 550
         Case 340 To 380
            Tastenabfrage = 2
            Ton = 500
         Case 265 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




Sub Led_display_init()
  I2cstart
  I2cwbyte Rn_digi_slave_write
  I2cwbyte 0                                                'Control Byte

  'Dynamic Alternative Mode und Helligkeit
  'Die oberen 3 Bits bestimmen die Helligkeit
  'Wenn es dunkler sein soll dann z.b. &B0110111
  I2cwbyte &B1110111

  I2cstop

  'Alle Ziffern auf 0
  For Z = 1 To 4
       Led_display Z, 0
  Next Z

End Sub


Sub Led_display(ziffer An Byte , Zahl As Byte)
     I2cstart
     I2cwbyte Rn_digi_slave_write
     I2cwbyte ziffer


     Select Case Zahl
         Case 0:
               Segmente = &H3F
         Case 1:
                Segmente = &H6
         Case 2:
                Segmente = &H5B
         Case 3:
                Segmente = &H4F
         Case 4:
                Segmente = &H66
         Case 5:
                Segmente = &H6D
         Case 6:
                Segmente = &H7D
         Case 7:
                Segmente = &H7
         Case 8:
                Segmente = &H7F
         Case 9:
                Segmente = &H67
         Case Else:
                Segmente = &H80                             'Ansonsten Dezimalpunkt

     End Select

     If Dezimalpunktziffer = ziffer Then Segmente = Segmente Or &H80
     I2cwbyte Segmente
     I2cstop
End Sub