Aus RN-Wissen.de
Version vom 19. Februar 2009, 22:16 Uhr von Sheridan_alt (Diskussion | Beiträge) (Beispielanwendung Nr.2: Distanzmessung)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

Dieses Board zeichnet sich durch kompakte Größe (5cm x 7,8cm) und sehr geringen Strombedarf aus. Besonders viel Wert wurde auch auf die Anschlüsse gelegt. Nahezu alle Ports stehen somit dem Anwender zur Verfügung. Besonders günstig sind die wichtigen AD-Ports, Interrupt, Timer und PWM Anschlüsse auf die Stiftleisten verteilt worden. So lassen sich Servos, Drehgeber, RC-Empfänger aber auch Motortreiber (Doppel H-Brücken wie RN-VNH2Dualmotor) oder LCD direkt anschließen. Natürlich steht auch der I2C-Bus zur Verfügung. Alle Stecker sind zudem kompatibel zu den RN-Definitionen).

Obwohl das Board sicher auch wie der große Bruder RN-Control zum Experimentieren als Hauptboard verwendet werden kann, ist es eigentlich in erster Linie als praktisch einsetzbares Zusatzboard für Projekte gedacht. Es ist daher kein Ersatz zu RN-Control das ja durch LEDs,Motortreiber und Steckbuchsen zum experimentieren günstiger ist. Nein RN-MiniControl ist als kostengünstiges CoControllerBoard ideal als Zweit oder Drittboard in Projekten (wie Robotern etc.). Ein besonderes Feature sind zwei Stiftleisten die sich auf der Unterseite einlöten lassen. Dadurch kann das Board auf andere Board wie RN-VNH2Dualmotor oder Experimentierplatinen aufgesteckt werden.

In der Regel ist als Controller ein ATMega168 als Controller vorhanden. Dieser ist weitgehend kompatibel zum ATMega8, daher kann wahlweise auch ein ATMega8 bestückt werden. Der ATMega168 bietet jedoch weit mehr Features (6x PWM ,3 Timer, 16Kbyte Speicher und Interrupt an jedem Pin)

Rnmincontrolfoto.jpg


Die Leistungsmerkmale

  • Leistungsstarker Controller ATMega168 (kann auch durch ATMega8 ersetzt werden)
  • 6x PWM , 3 Timer, 16Kbyte Speicher und Interrupt an jedem Pin)
  • 16 Mhz Taktfrequenz
  • Geringer Strombedarf ca. 30 mA (im Sleepmodus natürlich noch stark reduzierbar)
  • Universalanschluss (RN-Definition) für doppelten Motortreiber oder LCD (oder anderes)
  • I2C-Bus (für diverse Erweiterungen z.B. Sprachausgabe RN-Speak, Relaisboard RN-Relais, Servoboards, LCD´s, SRF10 Ultraschallsensoren uvm.) oder für Ansteuerung als Slave Board)
  • Vier dreipole Standard Stiftleisten für (Servos, Sensoren etc.)
  • Zwei 5 polige Stiftleisten für Drehgeber, Sensoren, Aktoren
  • RS232 TTL Pegel
  • RS232 V24/PC Pegel
  • Spannungsversorung wahlweise zwischen 7,2 und 18 Volt (ideal 7,2 bis 13V)
  • 5V für externe Verbraucher herausgeführt
  • Wichtige PWM-Ports können über Jumper auf andere Buchsen gelegt werden
  • zwei Buchsenleisten auf der Unterseite bestückbar, dadurch läßt sich board auf andere Boards (z.B. RN-VN2Dualmotor) oder Lochrasterplatinen aufstecken
  • ISP – Programmierschnittstelle für übliche AVR-Programmieradapter (10polig)
  • Sehr kompakt, nur ca. 5 x 8 cm (RN-Miniformat)
  • Programmierbar in zahlreichen Sprachen, z.B. Basic (BASCOM Compiler, eingeschränkt bis 4K wird mitgeliefert), C (C-Compiler GCC wird mitgeliefert), Assembler, Pascal
  • Deutsche Doku
  • Preiswerter Bausatz / Fertigmodul erhältlich – einfacher Aufbau
  • Kein Starter- oder Applikationsboard notwendig – bereits alles notwendige integriert!

Diagramm und Beschreibung der Anschlüsse

Rnmincontroldiagramm.png


Rnmincontrolvonunten.jpg

Portbelegung

Rnmincontrolaufportbelegung.gif


Aufbau und Anwendung

Der Aufbau der Schaltung ist durch die vorgefertigte Platine und die überschaubare Anzahl an Bauelementen 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. Auf schwierig zu lötende und schwierig reparierbare SMD Teile wurde absichtlich verzichtet. Die Schaltung ist je nach Erfahrung in ca. 30 bis 60 Minuten aufgebaut.

Dennoch einige Anmerkungen zu kleinen Hürden für Einsteiger:

  1. Möchte man die Stiftleisten zum Aufstecken auf andere Boards verwenden, so sollte man diese als erstes bestücken da diese von unten eingesteckt und von oben gelötet werden. Wenn noch keine anderen Bauteile auf der Oberseite sind, erleichtert das das Löten. Zu beachten ist, das die kurze Seite der Stiftleiste von unten eingesteckt wird. Die Stiftleisten schauen dann auf der Oberseite kaum heraus, es reicht jedoch völlig um es von oben zu verlöten.
  1. Bei den Kondensatoren (Elkos) die Polung beim einlöten beachten. Diese ist auf Bauelementen und Platine aufgedruckt.
  1. Den 16 Mhz Quarz mit ca. 2 mm Abstand zur Platinenoberfläche einlöten damit das Metallgehäuse keine Leiterbahnen verbindet.
  1. Nicht vergessen das die zwei IC´s gesockelt werden. Also erst Sockel einlöten und dann IC einsetzen.
  1. Stiftleisten möglichst gerade einlöten damit Jumper bequem gesteckt werden können

Das waren eigentlich schon die besonderen Punkte die zu beachten sind. Ansonsten natürlich sauber mit einem 10 – 25 W Lötkolben alles auf der Unterseite verlöten. Grundkenntnisse beim Löten werden empfohlen.

Nach dem Aufbau sollten Sie noch mal alle Lötpunkte kontrollieren. Wenn Sie dann Spannung anlegen, dann sollten deutlich weniger als 50mA Strom fließen. Ist der Strom höher, dann deutet das auf ein Lötfehler hin.


Rnmincontrolauflochraster.jpg

Erläuterung der Anschlüsse, Regler und Kurzschlussbrücken

Anschluss-Bezeichnung Erläuterung
JP1 Dreipoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  GND
Pin 2  5 Volt
Pin 3  Datenport (PD2 / INT0 / PCINT18)

Geeignet zum Beispiel für Servos, , RC-Empfangskanal und vieles mehr. Sehr nützlich ist das dieser Port auch voll interruptfähig ist.

JP2 Dreipoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  GND
Pin 2  5 Volt
Pin 3  Datenport (PB1 / OC1A / PCINT1) oder  (PB3 / MOSI /OC2A / PCINT3)

Geeignet zum Beispiel für Servos, , RC-Empfangskanal und vieles mehr. Sehr nützlich ist das dieser Port auch PWM (Pulsweitenmudulation) fähigvoll ist. Wie ober erkennbar kann die Belegung dieses Anschlusses durch den Jumper JP10 verändert werden (wahlweise müssen zwei Jumper quer oder längs in JP10 gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren.

JP3 Dreipoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  GND
Pin 2  5 Volt
Pin 3  Datenport (PC1 / ADC1 / PCINT9)

Geeignet zum Beispiel für Servos, Sharp Entfernungssensoren, RC-Empfangskanal und vieles mehr da Port sowohl Digital als auch Analog genutzt werden kann.

JP4 Dreipoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  GND
Pin 2  5 Volt
Pin 3  Datenport (PC0 / ADC0 / PCINT8)

Geeignet zum Beispiel für Servos, Sharp Entfernungssensoren, RC-Empfangskanal und vieles mehr da Port sowohl Digital als auch Analog genutzt werden kann.

JP5 Fünfpoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  Batteriespannung (max. 12 V)
Pin 2  GND
Pin 3  +5V
Pin 4  Datenport  (PB4 / MISO / PCINT4) 
Pin 5  Datenport  (PD4 / T0 / XCK / PCINT20)

Geeignet zum Beispiel für Sensoren und Aktoren die zwei Ports benötigen. Wegen des Timer-Ports ideal auch zum Anschluß von Drehgebern zur Wegstreckenmessung/Drehzahlmessung.

JP6 Fünfpoliger Standard- Anschluß für beliebige Verwendung

Belegung:

Pin 1  Batteriespannung (max. 12 V)
Pin 2  GND
Pin 3  +5V
Pin 4  Datenport  (PB2 / SS / OC1B / PCINT2) oder (PD3 / OC2B / INT1) 
Pin 5  Datenport  (PD5 / T1 / OC0B / PCINT21)

Geeignet zum Beispiel für Sensoren und Aktoren die zwei Ports benötigen. Wegen des Timer-Ports ideal auch zum Anschluß von Drehgebern zur Wegstreckenmessung/Drehzahlmessung. Aber auch Interrupt und PWM-Port ist hier verfügbar. Wie ober erkennbar kann die Belegung des Pin4 durch den Jumper JP9 verändert werden (wahlweise müssen zwei Jumper quer oder längs in JP9 gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren bzw. ein Interrupt bereitgestellt werden..

JP7 Eine Stiftleiste (wird gewöhnlich von unten eingelötet) zum Aufstecken des Boards auf andere Boards oder Lochrasterplatinen.

Belegung:

Pin 1  Datenport (PD6 / AIN0 / OC0A / PCINT22)
Pin 2  Datenport (PD7 / AIN1 / PCINT23)
Pin 3  Datenport (PB0 / ICP1 / CLKO)
Pin 4  Datenport (PB5 / SCK / PCINT5)
Pin 5  Datenport (PC3 / ADC3 / PCINT11)
Pin 6  Datenport (PB1 / OC1A / PCINT1) oder (PB3 / MOSI / OC2A / PCINT3)
Pin 7  Datenport (PB2 / SS / OC1B / PCINT2)  oder (PD3 / OC2B / INT1 / PCINT19)
Pin 8  Datenport (PC2 / ADC2 / PCINT10)
Pin 9    GND 
Pin 10  +5V

Über diese Stiftleiste werden gleich 8 Ports bereitgestellt. Sowohl digital, PWM, Interrupt und AD-Ports. Die Anwendungen sind dementsprechend vielfältig. So könnte beispielsweise eine komplette doppelte H-Bridge inkl. Stromüberwachung angesteuert werden (z.B. RN-Dualmotor). Die gleichen Ports stehen auch über die Wannenbuchse CTRL zur Verfügung.

Wie ober erkennbar kann die Belegung des Pin6 und Pin 7 durch den Jumper JP10 (Pin6) und Jumper P9 (Pin7) verändert werden (wahlweise müssen zwei Jumper quer oder längs gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren bzw. ein Interrupt bereitgestellt werden..

JP8 Eine Stiftleiste (wird gewöhnlich von unten eingelötet) zum Aufstecken des Boards auf andere Boards oder Lochrasterplatinen.

Belegung:

Pin 1   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)
Pin 2   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)
Pin 3   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)
Pin 4   Nicht belegt
Pin 5   Nicht belegt
Pin 6   GND
Pin 7   GND
Pin 8   GND
Pin 9   GND 
Pin 10  PC0 (ADC0 / PCINT8) 

Die Stiftleiste dient also vornehmlich zur Versorung des Boards mit einer Betriebsspannung von 7,2 bis 18 Volt. Man kann sich so die Versorgung über die Schraubklemmen ersparen (Schraublemmen sind parallel geschaltet). Beim Board RNVN2Dualmotor wird davon Gebrauch gemacht, dort fehlt die Verkabelung weg.

JP9 Pinbelegung ändern

Durch 2 Jumper die hier längs oder quer gesteckt werden können, kann die Belegung der Anschlüsse JP6 Pin 4 und JP7 Pin 7 vertauscht werden. Die Vertauschung kann je nach Verwendung der Timer und PWM Ports sinnvoll sein. Siehe auch unter JP6 und JP7!

JP10 Pinbelegung ändern

Durch 2 Jumper die hier längs oder quer gesteckt werden können, kann die Belegung der Anschlüsse JP2 Pin 3 und JP7 Pin 6 vertauscht werden. Die Vertauschung kann je nach Verwendung der Timer und PWM Ports sinnvoll sein. Siehe auch unter JP2 und JP7!

JP11 Pinbelegung ändern

Durch 2 Jumper die hier längs oder quer gesteckt werden können, kann die Belegung der Pins 8 und Pin 7 der Universalbuchse CTRL verstauscht werden. Wird RN-VNH2Dualmotor V1.11 über die Wannenbuchse angeschlossen, so ist eine etwas andere Belegung, als es die RN-Motorbuchsen Definition vorschreibt, notwendig. Daher kann durch die Jumper die RNVN2 Dualmotor Belegung als auch die Standard RN-Definitionsbelegung gewählt werden.! JP5V Falls das Board mit einer extern stabilisierten 5V Betriebsspannung versorgt wird (z.B. über I2C-Bus) darf dieser Jumper nicht gesteckt sein. Wird das Board über die Schraubklemmen oder über JP8 mit Spannung versorgt, so muss der Jumper gesteckt werden.

I2CBATT Wird der Jumper gesteckt, so wird die Batteriespannung auf den I2C-Bus geleitet oder vom I2C-Bus zur Versorgung des Boards genutzt. Im letzteren Fall darf das Board nicht zusätzlich noch über JP8 oder die Schraubklemme Power versorgt werden.
5VEXT 5V

Über diese zweipolige Stiftleiste können andere Boards, Sensoren, Aktoren mit 5V Spannung versorgt werden. Bei höherer Stromentnahme oder sehr hoher Eingangspannung sollte man den Spannungsregler kühlen.

I2C-Bus I2C-Bus

Über diesen Bus lassen sich zahlreiche Erweiterungen an dieses Board anschließen. Zum Beispiel werden auf der Seite robotikhardware.de passende Boards mit Sprachausgabe, Relais, Schrittmotorsteuerung etc. angeboten. Aber auch dieses Board kann selbst als Slave-Board, also als Erweiterung an ein anderes Hauptboard angeschlossen werden. 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 anderer Roboternetz Boards.

Pin 1  SCL (Taktleitung)
Pin 2  GND
Pin 3  SDA (Datenleitung)
Pin 4  GND
Pin 5  +5V
Pin 6  GND
Pin 7  +5V
Pin 8  GND
Pin 9   Batteriespannung
Pin 10  Wird hier nicht genutzt

Die PIN´s 5,7 können über Jumper I2C5V mit den 5V des Boards verbunden werden. Pin 9 kann über Jumper I2CBATT genutzt werden.

ISP ISP – IN SYSTEM PROGRAMMING

Über diesen Anschluß kann der Controller auf dem Sprachboard mit einem Standard ISP-Kabel direkt an einen Parallelport des PC´s angeschlossen und programmiert werden. Die Belegung des ISP-Anschlusses ist zu dem weit verbreitetet STK200 Programmier Dongle kompatibel. Ein entsprechender Dongle kann man sich entweder selber basteln (siehe Artikel „ARV Einstieg leicht gemacht“ unter www.roboternetz.de) oder fertig bestellen (z.B. www.robotikhardware.de).

Pin 1 MOSI
Pin 2 VCC
Pin 3 Nicht belegt
Pin 4 GND
Pin 5 RESET
Pin 6 GND
Pin 7 SCK
Pin 8 GND
Pin 9 MISO
Pin 10 GND 
Power Spannungsversorgung

Über diese Schraubklemme wird das Board mit Spannung versorgt. Es reicht eine unstabilisierte Gleichspannung von 7,2 bis 14V aus (max. 18V wenn Kühlkörper verwendet wird) + und – sind auf der Platine markiert. Die Verpolung zerstört das Board!

CTRL Universeller Datenportstecker

Kann für vielfältige Dinge genutzt werden, zum Beispiel als Motor-Endstufenstecker:

Pin 1 Motor 1 IN 1 
Pin 2 Motor 1 IN 2 
Pin 3 Motor 2 IN 1 
Pin 4 Motor 2 IN 2 
Pin 5 AD Port der Strom messen kann
Pin 6 Enable Motor1 ein (eventuell PWM) 
Pin 7 AD Port der Strom messen kann
Pin 8 Enable Motor2 ein (eventuell PWM) 
Pin 9 GND 
Pin 10 Logikspannung 5V 

oder als LCD-Buchse:

Pin 1 DB7 
Pin 2 DB6 
Pin 3 DB5 
Pin 4 DB4 
Pin 5 EN2 (wird nur bei manchen LCDs benötigt)
Pin 6 EN 
Pin 7 R/W 
Pin 8 RS 
Pin 9 GND 
Pin 10 +5V 

Bitte beachten das über Jumper JP11 die Pin´s 7 und 8 vertauscht werden können.

RS232 PC kompatible RS232 Schnittstelle

Über ein Adapterkabel kann die serielle Schnittstelle des PC direkt mit dem Board verbunden werden. Dies ist dann sinnvoll, wenn Fehler in Programmen gesucht . Einfache PRINT Anweisungen werden von einem Terminalprogramm angezeigt. Hier kann Hyperterminal von Windows oder das eingebaute Terminalprogramm von Bascom empfohlen werden.

Die Belegung ist kompatibel zum Conrad Roboter CCRP5:

Pin 1 RX
Pin 2 GND
Pin 3 TX

Ein geeignetes Anschlußkabel kann schnell selbst angefertigt werden oder gibt es bei robotikhardware.de bereits fertig

RS232_TTL Die serielle Schnittstelle (RS232) im 5V-TTL-Pegel. Diese Schnittstelle ist vor allem dann interessant, wenn mehrere Controller miteinander verbunden werden. Die Stiftleiste ist 4-polig ausgelegt, um Verwechslungen mit der RS232 und dem PC-Pegel (+/-12V) zu vermeiden. Zudem lässt sich so ein Pegelwandler-Schaltkreis (z.B. Max232) anschließen und mit Spannung versorgen).
Pin 1   RX
Pin 2   TX
Pin 3   GND
Pin 4   5V

Wenn diese Buchse genutzt werden soll, muss das IC3 (MAX232) aus der Fassung entfernt werden.

Schaltplan

Anklicken um zu vergrößern

Bestückungsplan

Rnmincontrolbestueckungsplan.gif


Platineminicontrol.jpg

Bestückungsliste für RN-MiniControl

Bauteil Wert       Beschreibung                   Best.Nr.

C1     100n        Keramik Kondensator            KERKO100N
C2     22p         22pF Kondensator               KERKO-500 22p
C3     22p         22pF Kondensator               KERKO-500 22p
C4     100n        100nF Keramik Kondensator      KERKO100N
C5     4,7uF       Elko                           SM 4,7/50RAD
C6     4,7uF       Elko                           SM 4,7/50RAD
C7     4,7uF       Elko                           SM 4,7/50RAD
C8     4,7uF       Elko                           SM 4,7/50RAD
C9     100n        Keramik Kondensator            KERKO100N
C10    100n        Keramik Kondensator            KERKO100N
C11    220uF       Elko                           RAD 220/35
C12    100n        Keramik Kondensator            KERKO100N
C13    10uF        Elko 10 uF                     RAD 105 10/63
C14    100n        Keramik Kondensator            KERKO100N
C15    100n        Keramik Kondensator            KERKO100N
I2C                Wannenstecker 10pol            WSL10G
I2C5V   ;          Stiftleiste 2polig             LU2,5MS2
I2CBATT            Stiftleiste 2polig             LU2,5MS2
IC1                Spannungsregler 78S05          78S05
IC2                28 polige IC Fassung 
IC2                MEGA8 Controller oder besser ATMega168 
IC3                16 polige IC Fassung 
IC3                MAX232 RS232 Treiber DIP       MAX 232
ISP                Wannenbuchse 10pol             WSL10G
JP1                Stiftleiste 3 polig            LU 2,5 MS3
JP2                Stiftleiste 3 polig            LU 2,5 MS3
JP3                Stiftleiste 3 polig            LU 2,5 MS3
JP4                Stiftleiste 3 polig            LU 2,5 MS3
JP5                Stiftleiste 5 polig            LU 2,5 MS5
JP5V               Stiftleiste 2polig             LU 2,5 MS2
JP6                Stiftleiste 5 polig            LU 2,5 MS5
JP7                Stiftleiste 10 polig von unten bestücken (siehe Doku)
JP8                Stiftleiste 10 polig von unten bestücken (siehe Doku)
JP9                Stiftleiste 2x2polig

L1                 Induktivität 10uH              smcc 10u
MOTORTREIBER       Wannenbuchse 10 pol            WSL10G
POWER              Schraubklemme 2 polig          AKL 101-02
Q1     16 Mhz      Quarz 16 Mhz                   16-HC49U-S
R1                 Metallschichtwiderstand 10k    Conrad 408280-12
R2                 Metallschichtwiderstand 10k    Conrad 408280-12
R3                 Metallschichtwiderstand 10k    Conrad 408280-12
RS232              Stiftleiste 3 polig            LU 2,5 MS3
RS232_TTL          Stiftleiste 4 polig            LU 2,5 MS4

                   10 Stück Jumper vergoldet
                   4 Stück Befestigungsbolzen 12mm
                   1 Stück RN-MiniControl Platine   


Der erste Test

Nachdem Board aufgebaut ist, können wir daran gehen und das Board testen. Zunächst sollten noch einmal alle Jumper (Kurzschlussbrücken) überprüft werden. Danach ein möglichst ein Netzteil mit 7,2 bis 13 V anschließen, für höhere Spannungen benötigt man noch keinen Kühlkörper. Günstige Akkus gibt’s auch bei robotikhardware.de. Wir empfehlen ein 9,6V oder 12V Akku.

Hat das Netzteil den falschen Stecker, einfach abschneiden und Drähte so in die Schraubklemmen einfügen. Auf Polung achten (Verpolung zerstört das Board). Falls Sie ein Messgerät haben, können Sie auch den Strombedarf des Boards checken. Wenn alles korrekt zusammengebaut wurde, muss dieser deutlich niedriger als 50 mA liegen. Ein wesentlich höherer Strom würde auf Lötfehler hin deuten. Ein weiterer Test wäre das anfassen des Spannungsreglers 78S05. Er darf warm bis sehr warm werden, aber man darf sich nicht dran verbrennen. Er ist im übrigen gegen Überlastung geschützt!

Programmierkabel
Stimmt das alles, dann kann man den ISP-Programmieradpapter anschließen. Es eignet sich jeder gängige ISP Dongle der STK200 / STK300 kompatibel ist. Bei 16 Mhz machen allerdings billig Lösungen manchmal sehr viele Übertragungsfehler. Hier empfehle ich den AVR-ISP Programmierkabel.

Über den Programmieradapter wird nun das Board mit der Druckerschnittstelle ihres PC verbunden. Dabei ist darauf zu achten das der ISP-Stecker auch in die richtige Wannenbuchse auf dem Board gesteckt wird.

Eine Verwechslung kann den ISP-Programmer oder den Controller zerstören.

Also unbedingt auf die Beschriftung achten! Falschrum kann man ihn nicht aufstecken.

Ist man kein AVR-Profi, so empfehle ich für den Test des Board´s die Entwicklungsumgebung und Programmiersprache Bascom. Ein schneller Basic-Compiler mit hervorragender Benutzeroberfläche.

Testprogramm

Das nachfolgende Testprogramm definiert alle Ports als Eingabeports und zeigt dessen Zustand (Pegel) über die RS232 Schnittstelle an. Damit das Programm korrekt läuft müsse die Fusebits zuvor korrekt eingestellt werden (siehe Doku etwas weiter hinten). Zudem muss der PC über ein RS232 Kabel mit dem Board verbunden werden. Über ein Terminalprogramm (das auf 9800 Baud / 8 Bit) eingestellt ist, kann man dann den Zustand der Ports auf dem PC sehen. Es bietet sich an das in Bascom eingebaute Terminalprogramm zu nutzen. Das Ergebnis sieht dann in etwa so auf dem PC-Monitor aus:

Rnminicontrolterminal.gif


Einige Ports haben im Bild Low Pegel. Dies liegt abe rnur daran das während der Aufnahme des Bildes ein Zusatzboard (RN-VH2Dualmotor) angeschlossen war. Wenn dies bei ihnen nicht der Fall ist, so werden bis auf TX (PD1) alle Ports High Pegel besitzen.


Hier das zuständige Testprogramm


'###################################################
'rn_minicontrol_porttest.bas
'Dieses Programm ist für das universelle und kompakte
'Controllerboard RN-MINICONTROL ab Version 1.3
'Boardbeschreibung Roboternetz.de oder robotikhardware.de
'Verwendeter Compiler Bascom V 1.11.7.9
'
'Aufgabe:
'
'Die Ausgabe erfolgt über Bascom Terminalprogramm. PC muss
'somit über RS232 Kabel verbunden sein
'Es wird der Zustand aller Ports angezeigt
'
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de bzw. robotikhardware.de
'###################################################


'Die üblichen Definitionen bei Standardprogrammen auf Miniboard
$regfile = "m168def.dat"
$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32



Declare Sub Showadport()
Declare Sub Showdigitalports()

Wait 1
Print "Warte ich boote ..."
Wait 2
Print
Print "**** RN-MINICONTROL 1.3 *****"
Print "Das neue kleine Controllerboard"
Print "RN-MiniControl, der kleine Bruder von RN-Control"
Print "Nach RN-Definition vom www.roboternetz.de"
Print

Do
  Showdigitalports
  Showadport
  Print
  Print "Viel Spass mit dem Board!"
  Wait 10
  Print
Loop

End


'Zeigt Die Analogen Messwerte An Port A An
Sub Showadport()
Local Ws As Word
Local I As Integer

   Config Adc = Single , Prescaler = Auto , Reference = Avcc       'Internal
   Config Portc = Input
   For I = 0 To 5                         ' Alle internen Pullup Widerständ abschalten
      Portc.i = 0
   Next I

   Print
   Print "Ermittelte Messwerte an Port C:"
   For I = 0 To 5                        ' Alle Eingäne inkl.messen
      Start Adc
      Ws = Getadc(i)
      Print "Pin" ; I ; " ADC-Wert= " ; Ws
   Next I
End Sub


'Zeigt den Zustand der Ports an
Sub Showdigitalports()
Local Zustand As String * 6
Local I As Integer

   Config Portb = Input
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein
      Portb.i = 1
   Next I
   Print
   Print "Ermittelter I/O Zustand Port B:"
   For I = 0 To 5                        ' Alle Eingäne inkl.messen
      If Pinb.i = 1 Then
         Zustand = "H"
      Else
         Zustand = "L"
      End If
      Print "Pin" ; I ; "=" ; Pinb.i ; "(" ; Zustand ; ")  ";
   Next I
   Print

   Config Portc = Input
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein
      Portc.i = 1
   Next I
   Print
   Print "Ermittelter I/O Zustand Port C:"
   For I = 0 To 5                           ' Alle Eingäne inkl.messen
      If Pinc.i = 1 Then
         Zustand = "H"
      Else
         Zustand = "L"
      End If
      Print "Pin" ; I ; "=" ; Pinc.i ; "(" ; Zustand ; ")  ";
   Next I
   Print

   Config Portd = Input
   For I = 0 To 7                           ' Alle internen Pullup Widerständ ein
      Portd.i = 1
   Next I
   Print
   Print "Ermittelter I/O Zustand Port D:"
   For I = 0 To 5                           ' Alle Eingäne inkl.messen
      If Pind.i = 1 Then
         Zustand = "H"
      Else
         Zustand = "L"
      End If
      Print "Pin" ; I ; "=" ; Pind.i ; "(" ; Zustand ; ")  ";
   Next I
   Print

End Sub

Beispielanwendung mit Ultraschall

Passender Quellcode hier

Srf05minicontrol.gif

Beispielanwendung Nr.2: Distanzmessung

Passender Quellcode hier

DistanzmessungSRF05RNMiniRNDigi2.jpg

Siehe auch

Weblinks

Platinenservice.gif hier Bausatzservice.gif hier Fertigmodulservice.gif hier


LiFePO4 Speicher Test