Frank (Diskussion | Beiträge) K (→Weblinks) |
Frank (Diskussion | Beiträge) K (→Erläuterung der Anschlüsse, Regler und Kurzschlussbrücken) |
||
Zeile 67: | Zeile 67: | ||
In dieser Stellung ist die Slave Adresse auf Hex 72 gesetzt | In dieser Stellung ist die Slave Adresse auf Hex 72 gesetzt | ||
− | [[Bild: | + | [[Bild:rndigijumpperstellung3.gif]] |
In dieser Stellung ist die Slave Adresse auf Hex 74 gesetzt | In dieser Stellung ist die Slave Adresse auf Hex 74 gesetzt |
Version vom 5. Juli 2006, 14:07 Uhr
An diesem Artikel arbeitet gerade Mitglied Frank.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor Frank per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
Es dient zum Anzeigen von 4 stelligen Zahlen. Dabei werden optisch ansprechende und extra große 7-Segmentanzeigen bereitgestellt (ca. 25mm Ziffernhöhe, Anzeige rot, wahlweise auch kleinere). Die Ansteuerung erfolgt sehr einfach per I2C-Bus mit einfachen Kommandos. 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, Kompass usw., welche von weiterm erkennbar sein müssen. In Kombination mir RN-Speak und RN-Control wäre zum Beispiel ein sprechender Wecker denkbar.
Inhaltsverzeichnis
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 (Funkuhr etc.) etc.
- Kompakt, Roboternetz-Standard-Format 100x78 (halbes Euroformat), Huckepack mit anderen Boards kombinierbar
- Wahlweise mit großen oder kleineren Segmenten bestückbar (Bausatz inkl. Große)
- Platinen und Bausatzervice
- Deutsche Doku mit Programmbeispielen für RN-Control und RNBFRA-Board
Aufbau und Anwendung
Der Aufbau der Schaltung ist durch die vorgefertigte Platine bzw. den Bausatz eigentlich völlig problemlos auch von Elektronik-Einsteigern zu bewerkstelligen. Durch den Bestückungsdruck und die Bestückungsliste, etwas weiter hinten in dieser Dokumentation, ist der Aufbau unkritisch. Aufgrund moderner Bauteile (7 Segmet Controller) ist es gelungen, das dieses Board nur sehr wenig Bauteile benötigt. Auf Logikbausteine konnte verzichtet werden, da das Board über ein Spezial-IC für die Ansteuerung von 7 Segmentanzeigen verfügt.
Die Schaltung benötig in der Regel eine Aufbauzeit von ca. 30 – 60 Minuten.
Dennoch einige Anmerkungen zu kleinen Hürden:
- Beim Einlöten der Segmentanzeigen darauf achten das diese richtig rum eingesetzt werden. Der Dezimalpunkt muss nach unten zum IC zeigen.
- Auf dem I2C-Bus muss die Batteriespannung liegen (entsprechend der Roboternetz-Definition). Bei einigen Controllerboards muss dazu ein Jumper auf dem jeweiligen Controllerboard eingesteckt werden. Näheres dazu steht bei der Beschreibung der I2C-Buchse ihres Controllerboards.
Ist die Batteriespannung darf 7V nicht unterschreiten, falls die großen Segemtanzeigen eingesetzt werden. Ist die Batteriespannung höher als 10V, so muss der im Bestückungsplan eingezeichnete Spannungsregler auch eingelötet werden. Bei 7 bis 10 V Batteriespannung kann dieser wahlweise weggelassen werden. Bei den kleineren Segmentanzeigen reicht bereits 5V aus.
Das waren eigentlich schon die besonderen Punkte die zu beachten sind. Ansonsten natürlich sauber mit einem 15–25 W Lötkolben alles auf der Unterseite verlöten. Grundkenntnisse beim Löten werden empfohlen. Nach dem Aufbau sollten Sie nochmals alle Lötpunkte kontrollieren.
Nach dem Aufbau können Sie das Baord übe rein 10 poliges Kabel mit ihrem Controllerboard verbinden. Eine Funktion ist jedoch erst dann zu ersehen, wenn Sie das Testprogramm auf Ihrem Controller starten.
Erläuterung der Anschlüsse, Regler und Kurzschlussbrücken
Anschlussbezeichnung | Erläuterung |
ADR1 | Slave Adresse einstellen
Über diesen Jumper wird die Slave Adresse eingestellt. Über diese Adresse wird das Board später vom Controller angewählt. In dieser Stellung ist die Slave Adresse auf Hex 70 gesetzt In dieser Stellung ist die Slave Adresse auf Hex 76 gesetzt Durch diese Stellung wird bestimmt, das die Slave Adresse über den Jumper ADR2 gewählt wird (siehe ADR2) |
ADR2 | Slave Adresse einstellen
Dieser Jumper hat nur dann eine Bedeutung, wenn ADR1 entsprechend eingestellt ist (siehe ADR1) In dieser Stellung ist die Slave Adresse auf Hex 72 gesetzt In dieser Stellung ist die Slave Adresse auf Hex 74 gesetzt |
JP1 | Spannungsregler aktiv
Das Board verfügt über einen 8 bzw. 9 V Spannungsregler welcher über das I2C-Buskabel mit der Eingangsspannung (Batteriespannung) versorgt wird. Ist die Batteriespannung unter 10V, so kann der Spannungsregler hiermit überbrückt und weggelassen werden. Der Kurzschlusstecker muss jedoch entfernt werden, wenn die Spannung über 10V liegt. I2C-Bus |
I2C-Bus | Wenn Sie die I2C-version des Boards gebaut haben, also den entsprechenden Controller eingesteckt haben, dann ist diese I2C-Buchse für die Steuerung zuständig.
Der I2C-Bus benötig nur 2 Leitungen für alle Funktionen. Entsprechend der Roboternetz-Norm wird hier ein 2x5 poliger Stecker angeschlossen. Die Belegung entspricht exakt der von allen Roboternetz-Boards: Pin 1 SCL (Taktleitung) Pin 3 SDA (Datenleitung) Pin 5 +5V (Wird nur ab Version 1.1 der Platine für Experimentierfeld benutzt) Pin 7 +5V (Wird nur ab Version 1.1 der Platine für Experimentierfeld benutzt) Pin 9 Batteriespannung Diese Leitung wird zur Spannungsversorgung benutzt Pin 2,4,6,8 GND Pin 10 INT Diese Leitung wird bei RN-Digi nicht benutzt |
Bestückungsplan
Bauteile Bestückungsliste
Bauteil Wert Beschreibung ---------------------------------------------------------------------------- ADR1 Stiftleiste 3 polig LU 2,5 MS3 ADR2 Stiftleiste LU 2,5 MS2 C1 100n Keramik Kondensator KERKO100N C2 100n Keramik Kondensator KERKO100N C3 2,7n Keramik Kondensator KERKO 2,7N C4 220uF Elko RAD 220/35 I2C-BUS Wannebuchse Gewinkelt WSL 10W IC1 SAA1064 IC SAA1064 LED Ansteuerung SAA 1064 IC2 7808T Spannungsregler 8V 7808 JP1 Stiftleiste 2polig LU 2,5 MS2 LEDSA10-1 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0 LEDSA10-2 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0 LEDSA10-3 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0 LEDSA10-4 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0 R1 22k Metallschichtwiderstand 22k METALL 22K R3 10k Metallschichtwiderstand 10k Metall 10,0k R2 18k Metallschichtwiderstand 18k METALL 18,0K T1 BC338-40 Transistor BC 338-40 BC 338-40 T2 BC338-40 Transistor BC 338-40 BC 338-40 3 Stück Befestigungsbolzen 1 Stück Bedruckte Platine Robotikhardware.de 2 Stück Jumper
Schaltplan
Inbetriebnahme der Digitalanzeige
Nachdem Board aufgebaut bzw. ein Fertigboard erworben haben, wird hier kurz erläutert wie Sie das Board in Betrieb nehmen.
- Zunächst vergewissern Sie sich das alle Jumper korrekt entsprechend der vorhergehenden Beschreibung gesteckt sind. Beachte Sie bei der Slave Adresse, das sich diese nicht mit anderen Boards überscheidet. Insbesondere RNBFRA-Besitzer sollten darauf achten das die PCF-Bausteine auf dem RNBFRA-Board eine andere Slave Adresse besitzen.
- Verbinden Sie das Board über ein 10 poliges I2C-Kabel mit ihrem Controllerboard (passende Kabel gibt es bei robitikhardware.de bzw. lassen sich sehr schnell selbst anfertigen). Achten Sie auch darauf das ihr Controllerboard die Batteriespannung auf den I2C-Bus legt. Bei RN-Control erfolgt dies über einen Jumper, welcher standarmäßig bereits richtig eingesteckt ist.
- Laden Sie das nachfolgende Testprogramm in Ihren Controller und betätigen Sie Taster 2
Das war´s!
Beispielprogramm für RN-Control
Wie einfach das Board angesteuert wird, kann dem Beispielprogramm entnommen werden. Es ist empfehlenswert die Unterfunktionen einfach in ein eigenes Programm zu übernehmen. Einfacher geht’s nicht mehr! Wer noch mehr Infos zu der Ansteuerung benötigt kann auch in das Datenblatt des IC´s SAA1064 schaun, dieses ist auf der CD (die dem Bausatz beiliegt) enthalten.
Tastenbelegung im Demo Taste 1 Zeigt auf allen 4 Ziffern eine 0 Taste 2 Zählt nacheinander alle 4 Ziffern von 0 auf 9 hoch Taste 3 In dem Demo nicht verwendet Taste 4 In dem Demo nicht verwendet Taste 5 In dem Demo nicht verwendet
'################################################### '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.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 = &H06 Case 2: Segmente = &H5B Case 3: Segmente = &H4F Case 4: Segmente = &H66 Case 5: Segmente = &H6D Case 6: Segmente = &H7D Case 7: Segmente = &H07 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
Damit haben Sie den ersten Einstieg erfolgreich abgeschlossen. Wenn Sie das Demoprogram gründlich studieren werden Sie viele Sachen davon ableiten und in eigenen Programmen verwenden können.