Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter fuer schwierige und grosse Gaerten im Test

(Scheinwerfer)
K (Features des ArduIO-Moduls)
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 13:
  
 
==Features des ArduIO-Moduls==
 
==Features des ArduIO-Moduls==
[[Bild:ÜbersichtArduIO.PNG|RP6 ArduIO V1.0|right|500px]]
+
[[Bild:UebersichtArduIO.PNG|RP6 ArduIO V1.0|right|500px]]
 
* '''Externe Stromversorgung'''
 
* '''Externe Stromversorgung'''
 
** Bis zu 10 Volt Eingangsspannung [18]
 
** Bis zu 10 Volt Eingangsspannung [18]
Zeile 25: Zeile 25:
 
** Pinherausführungen für I2C (5V- und 3,3V-Pegel, incl. bidirektionalen Pegelwandlern)
 
** Pinherausführungen für I2C (5V- und 3,3V-Pegel, incl. bidirektionalen Pegelwandlern)
 
* '''48 IOs via I2C, 32 davon für 5V-Pegel, 16 für 3,3V-Pegel; freie Adresswahl der ICs''', alle IO-Expander sind Interrupt-fähig (Int1 bis Int3) [1],  [4], [5] und [13]
 
* '''48 IOs via I2C, 32 davon für 5V-Pegel, 16 für 3,3V-Pegel; freie Adresswahl der ICs''', alle IO-Expander sind Interrupt-fähig (Int1 bis Int3) [1],  [4], [5] und [13]
* '''12 ADCs via I2C; freie Adresswahl der ICs''', ein ADC kann die angeschlossene Akkuspannung überwachen [3] und [6]
+
* '''12 ADCs via I2C; freie Adresswahl der ICs''' [3] und [6], ein ADC kann die angeschlossene Akkuspannung überwachen [23]
 
* '''3 DACs via I2C; freie Adresswahl der ICs'''
 
* '''3 DACs via I2C; freie Adresswahl der ICs'''
 
* '''16 PWM-Outputs [7] via I2C, daran:'''
 
* '''16 PWM-Outputs [7] via I2C, daran:'''
Zeile 40: Zeile 40:
 
** Arduino-Boards können jumperbar durch 16 IOs und 4 ADCs ausgelesen/gesteuert werden
 
** Arduino-Boards können jumperbar durch 16 IOs und 4 ADCs ausgelesen/gesteuert werden
 
* '''Scheinwerfer'''-Platinen für vorne und hinten incl. Blinker sowie ein Blaulicht [14] und [15]
 
* '''Scheinwerfer'''-Platinen für vorne und hinten incl. Blinker sowie ein Blaulicht [14] und [15]
 
  
 
==Software==
 
==Software==
Zeile 220: Zeile 219:
 
===Anschluss von externen Spannungsquellen===
 
===Anschluss von externen Spannungsquellen===
 
[[Bild:Spannungsversorgung.jpg|RP6 ArduIO ADC#2|right|200px]]
 
[[Bild:Spannungsversorgung.jpg|RP6 ArduIO ADC#2|right|200px]]
An die Buchse „B1“, können externe Spannungsquellen (Netzgeräte, Akkus, etc) angeschlossen werden. Dadurch würde der GND-Kontakt der Buchse automatisch unterbrochen (bauteilebedingt). Dies kann der Abschaltung der Elektronik im Akku-Ladebetrieb dienen. Dies ist jedoch über den langen, schwarzen Jumper "JP_LOAD" überbrückbar, wenn der RP6 etwa mit einem Netzgerät betrieben werden soll. Auch der Hauptakku des RP6 ist über den XBUS nutzbar; dies kann durch den gelben dreifachjumper "JP_UB" direkt neben der Hauptsicherung eingestellt werden. Schalter „S1“ schaltet die Stromversorgung (egal, ob über XBUS oder die Buchse "B1").
+
An die Buchse „B1“, können externe Spannungsquellen (Netzgeräte, Akkus, etc) angeschlossen werden. Dadurch würde der GND-Kontakt der Buchse automatisch unterbrochen (bauteilebedingt). Dies ist jedoch über den langen, schwarzen Jumper "JP_LOAD" überbrückbar, wenn der RP6 etwa mit einem Netzgerät betrieben werden soll. Auch der Hauptakku des RP6 ist über den XBUS nutzbar; dies kann durch den gelben dreifachjumper "JP_UB" direkt neben der Hauptsicherung eingestellt werden. Schalter „S1“ schaltet die Stromversorgung (egal, ob über XBUS oder die Buchse "B1").
 +
 
 +
Ein Tipp: Will man nur Softwarearbeiten machen und muss der RP6 dabei sich nicht frei bewegen können, einfach eine dreifach-Brücke über den Dreifachjumper "JP_UB" legen und ein Netzgerät an die ArduIO anschließen. Dann wird über die dreifach-Brücke sowohl die ArduIO von diesem Netzgerät versorgt, als auch der RP6 über den XBUS. Natürlich sollte dafür auch im RP6 kein Akku angeschlossen sein.
  
 
===Sicherung „F1“ und Verpolungsschutz===
 
===Sicherung „F1“ und Verpolungsschutz===
Zeile 250: Zeile 251:
  
 
===3,3V-I2C===
 
===3,3V-I2C===
[[Bild:I2C-Pegelwandler.jpg|RP6 ArduIO ADC#2|right|200px]]
+
[[Bild:I2C-Pegelwandler.jpg|RP6 ArduIO ADC#2|right|100px]]
 
Bausteine: BSN20, zwei Stück, und 2k2-Ohm Widerstände
 
Bausteine: BSN20, zwei Stück, und 2k2-Ohm Widerstände
  
Zeile 263: Zeile 264:
 
===Scheinwerfer===
 
===Scheinwerfer===
 
[[Bild:LEDs.jpg|RP6 ArduIO ADC#2|left|100px]]
 
[[Bild:LEDs.jpg|RP6 ArduIO ADC#2|left|100px]]
[[Bild:RP6-Beleuchtung.jpg|RP6 ArduIO ADC#2|right|100px]]
+
[[Bild:ArduIO_RP6-Beleuchtung1.png|RP6 ArduIO ADC#2|right|100px]]
 
Als kleine Überraschung haben wir dank Dirks Idee den Trapez-Ausschnitt in der RP6-Platine diesmal mit fünf kleinen LED-Platinchen gefüllt. Vier davon sind als Scheinwerfer gedacht. Je zwei davon sind spiegelverkehrt gemacht und enthalten zweimal je eine gelbe low-current LED und zwei rote low-current LEDs (für hinten: Blinker links/rechts und Licht/Bremslicht) sowie zweimal je gelbe low-current LED und zwei weiße superbright LEDs (für vorne: Blinker links/rechts und Standlicht/Abblendlicht). Dazu enthält eine letzte Platine zwei superbright Blaue LEDs, welche gegenüberstehend und gewinkelt aufgelötet werden und als Blaulicht fungieren. Sie teilen sich einen IO und sind daher gegeneinander gesetzt, wodurch bei High-Pegel die eine, bei Low-Pegel die andere LED leuchtet. Beim Toggeln zwischen High und Low hat man daher einen Blaulicht-Blinkeffekt.
 
Als kleine Überraschung haben wir dank Dirks Idee den Trapez-Ausschnitt in der RP6-Platine diesmal mit fünf kleinen LED-Platinchen gefüllt. Vier davon sind als Scheinwerfer gedacht. Je zwei davon sind spiegelverkehrt gemacht und enthalten zweimal je eine gelbe low-current LED und zwei rote low-current LEDs (für hinten: Blinker links/rechts und Licht/Bremslicht) sowie zweimal je gelbe low-current LED und zwei weiße superbright LEDs (für vorne: Blinker links/rechts und Standlicht/Abblendlicht). Dazu enthält eine letzte Platine zwei superbright Blaue LEDs, welche gegenüberstehend und gewinkelt aufgelötet werden und als Blaulicht fungieren. Sie teilen sich einen IO und sind daher gegeneinander gesetzt, wodurch bei High-Pegel die eine, bei Low-Pegel die andere LED leuchtet. Beim Toggeln zwischen High und Low hat man daher einen Blaulicht-Blinkeffekt.
 +
 +
Eine Möglichkeit der Verkabelung seht ihr rechts: Jede Platine benötigt GND, die vier Scheinwerfer dazu noch je drei IOs, wovon jedoch stets mehrere geteilt werden (BEIDE Blinker links, BEIDE Blinker rechts, etc). Die Blaulicht-Platine benötigt dazu noch +5V, da hier beide LEDs gegenpolig an einem einzelnen IO angeschlossen sind, auf der anderen Seite geht die eine LED auf GND, die andere auf +5V. Dadurch bewirkt ein Tooglen des IOs ein abwechselndes Blinken der beiden LEDs.
 +
 +
ACHTUNG: Wenn all diese LEDs leuchten, also alle vier Front- und vier Heckscheinwerfer sowie alle vier Blinker und eine der blauen LEDs, so ziehen diese einen Strom von 4x20mA (weiß) + 1x30mA (blau) + 4x2mA (rot) + 4x2mA (gelb) = 126mA. Das ist für den IO-Expander nicht wenig und sollte bei weiteren Verbrauchern an den übrigen 8 IOs beachtet werden. Der zulässige Maximalstrom sollte nicht überschritten werden.
  
 
===Jumper===
 
===Jumper===
Zeile 274: Zeile 279:
 
- '''Schwarze, kurze''' Jumper sind für die Weiterleitung von IOs, ADCs und PWMs gedacht
 
- '''Schwarze, kurze''' Jumper sind für die Weiterleitung von IOs, ADCs und PWMs gedacht
  
- '''Schwarze, lange''' Jumper sind für das An-/Abschalten von Komponenten gedacht (3,3V-Regler, Resettable Fuse-Überbrückung, ...)
+
- '''Schwarze, lange''' Jumper sind für das An-/Abschalten von Komponenten gedacht (3,3V-Regler, ...)
  
 
- '''Gelbe''' Jumper sind bitte mit '''Vorsicht''' zu genießen; bei falscher Verwendung '''droht Schaden'''!
 
- '''Gelbe''' Jumper sind bitte mit '''Vorsicht''' zu genießen; bei falscher Verwendung '''droht Schaden'''!
Zeile 292: Zeile 297:
 
==Weblinks==
 
==Weblinks==
  
'''-> [[https://www.dropbox.com/sh/in8kdnq2nawxzku/AAD7tjy5H_zgJZmK6U4b1MoUa?dl=0 HIER]] findet ihr Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung.''' Einfach das .zip runterladen, fertig.
+
'''-> [[https://www.dropbox.com/s/0zyeckgycx10ut5/RP6-ArduIO_Daten_Forum.zip?dl=0 HIER]] findet ihr Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung.''' Einfach das .zip runterladen, fertig.
  
 
'''-> [[http://rn-wissen.de/wiki/index.php/RP6_ArduIO_-_Software HIER]] findet ihr den Software-Artikel.'''
 
'''-> [[http://rn-wissen.de/wiki/index.php/RP6_ArduIO_-_Software HIER]] findet ihr den Software-Artikel.'''

Aktuelle Version vom 26. August 2017, 19:18 Uhr

RP6 ArduIO V1.0

RP6 ArduIO Erweiterungsplatine

Die RP6-ArduIO Erweiterungsplatine (siehe auch das Vorgängerprojekt,die RP6-MultiIO-Erweiterungsplatine) im üblichen RP6-Layout ist als reine I2C-Erweiterung sowohl für den RP6, als auch für Arduino-Boards und –Shields gedacht. Entwickelt wurde sie zusammen mit einigen Mitgliedern des Roboternetzes von fabqu (Hardwarearbeiten) und Dirk (Softwarearbeiten).

Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung finden sich unten in den Weblinks.


Bestellung des ArduIO-Moduls

Diese Platine kann bei fabqu bestellt werden. Sie ist mit Lötstopplack (schwarz) sowie beidseitig mit einem weißen Bestückungsdruck versehen. Ganz im üblichen RP6-Design eben.

Das Board ist nicht aufgebaut, aber fabqu bietet an, es komplett aufzubauen, zu löten und zu testen.


Features des ArduIO-Moduls

RP6 ArduIO V1.0
  • Externe Stromversorgung
    • Bis zu 10 Volt Eingangsspannung [18]
    • Verpolungs- und kurzschlussicher
    • Netzgerät möglich
    • 5V- und 3,3V-Regler on Board [19] und [20]
  • USRBUS, alle 14 Pins stehen zur freien Verfügung [2]
  • XBUS [22]
    • Nutzung des externen Akkus für RP6-Basiseinheit möglich
    • Nutzung des Akkus der RP6-Basiseinheit möglich
    • Pinherausführungen für I2C (5V- und 3,3V-Pegel, incl. bidirektionalen Pegelwandlern)
  • 48 IOs via I2C, 32 davon für 5V-Pegel, 16 für 3,3V-Pegel; freie Adresswahl der ICs, alle IO-Expander sind Interrupt-fähig (Int1 bis Int3) [1], [4], [5] und [13]
  • 12 ADCs via I2C; freie Adresswahl der ICs [3] und [6], ein ADC kann die angeschlossene Akkuspannung überwachen [23]
  • 3 DACs via I2C; freie Adresswahl der ICs
  • 16 PWM-Outputs [7] via I2C, daran:
    • 4 jumperbare LEDs [8]
    • 8 Dual Leistungs-MOSFETs, je vier n- und vier p-Channels [9]
    • MOSFET-Schaltzustände werden jeweils durch eine eigene LED angezeigt [10]
    • Leistungs-MOSFETs sind über eine resttable Fuse zusätlich gesichert [12]
    • LC-Schwingkreis gegen Spannungseinbrüche [11]
    • 4 freie PWMs
  • Arduino-Aufnahme
    • Sowohl Boards als auch Shields möglich
    • I2C für Arduino mit 5V- oder 3,3V-Pegel möglich (jumperbar) [16]
    • Arduino-Shields können jumperbar durch 16 IOs und 4 PWMs via I2C emuliert werden
    • Arduino-Boards können jumperbar durch 16 IOs und 4 ADCs ausgelesen/gesteuert werden
  • Scheinwerfer-Platinen für vorne und hinten incl. Blinker sowie ein Blaulicht [14] und [15]

Software

Die Software wird von Dirk erstellt. Diese Bibliotheken sind natürlich nur ein Vorschlag und sollen nur zur Anregung eigener Projekte und eigener Bibliotheken dienen. Es ist geplant, eine Bibliothek für die RP6v2 Base, die RP6Control M32 und die RP6M256 WiFi für alle fest installierten Aktoren aufzubauen. Ob es eine Bibliothek für die RP6 CCPRO M128 geben wird, ist noch offen. Sicher ist, dass auch eine Arduino Library veröffentlicht wird. Diese Bibliotheken liegen – wie das gesamte Projekt – als Open Source vor und werden den Usern zugänglich gemacht.

Wir haben die Artikel für Soft- und Hardware der Übersichtlichkeit wegen getrennt.

Der Software-Artikel befindet sich [HIER].



Kurzbeschreibung

Neben einer Anschlussmöglichkeit für eine externe Stromquelle (Akku, Netzgerät) kann der Hauptakku des RP6 zur Versorgung genutzt werden. Ebenso kann zwischen ArduIO-Boardeigenem 5V-Regler und der RP6-eigenen 5V-Versorgung gewählt werden.

Ein 3,3V-Regler mit bidirektionalen MOSFET-Pegelwandlern für den I2C-Bus gehören ebenso zur Ausstattung.

Die Erweiterung RP6-ArduIO enthält 48 IO-Pins (16mal für 3,3V-Pegel und 32mal für 5V-Pegel), 12 AD- sowie 3 DA-Wandler sowie einen 16fach 12bit-PWM-Treiber. Ein 5V-IO-Expander sowie vier der AD-Wandler können jumperbar verwendet werden, um einerseits Pegelstände eines eventuell angeschlossenen Arduino-Boards oder –Shields auszulesen, andererseits können die IO‘s ebenso genutzt werden, um ein nicht vorhandenes Arduino-Board zu emulieren, also nachzuahmen, wenn Arduino-Boards und –Erweiterungen ohne eigenes Shield angeschlossen sind. Des weiteren können Arduino-Boards und –Shields direkt mit dem RP6 kommunizieren und in einem Mehrkern-Verbund interagieren.

Der 16fach PWM-Treiber kann verwendet werden, um jumperbar 4 boardeigene LEDs sowie vier Dual-n-p-Channel Power-MOSFETs zu treiben. LEDs zeigen die Zustände der jeweiligen Channels an. Diese vier n- und vier p-Channel MOSFETs kommen auch beim RP6v2 als Motortreiber zum Einsatz, sind hier jedoch in erster Linie als Treiber für „normale“ ohmsche Verbraucher gedacht. Sollen sie als Motortreiber („H-Brücke“) genutzt werden, bitte den zugehörigen Artikel genau lesen und bei Bedarf weitere Literatur hinzuziehen.


Hardware

5V-IO-Expander #1:

RP6 ArduIO ADC#2

Baustein: PCA9535

Name auf Board: "IC8"

Pegel: 5V

Adresse: 0100-A2-1-A0, A2 und A0 wählbar

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C3" beträgt 100nF. Zwei 10polige Wannenstecker dienen als Pinherausführungen für je acht IOs sowie je einmal 5V und GND.

Datenblatt

Beschreibung: Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs sowie +5V und GND sind an Wannensteckern herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


5V-IO-Expander #2:

Baustein: PCA9535

Name auf Board: "IC13"

Pegel: 5V

Adresse: 0100-A2-1-A0, A2 und A0 wählbar

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C9" beträgt 100nF. Ein 2x8-Pin-Header (GPIOs 00 bis 07) sowie ein 2x6-Pin-Header (GPIOs 10 bis 15) dienen als Pinherausführungen und Jumper auf den Arduino-Sockel. Die GPIOs 16 und 17 sind auf einem 1x2-Pin-Header herausgeführt und stehen zur freien Verfügung, sind jedoch nicht an den Arduino-Sockel geführt.

Datenblatt

Beschreibung: Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs können an Jumperreihen abgegriffen oder über Jumper mit den jeweiligen Pins der Arduino-Aufnahme verbunden werden. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


3,3V-IO-Expander #3:

RP6 ArduIO ADC#2

Baustein: PCA9535

Name auf Board: "IC12"

Pegel: 3,3V

Adresse: 0100-A2-1-A0, A2 und A0 wählbar

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C6" beträgt 100nF. Zwei 10polige Wannenstecker dienen als Pinherausführungen für je acht IOs sowie je einmal 3,3V und GND.

Datenblatt

Beschreibung: Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs sowie +3,3V und GND sind an Wannensteckern herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Die IOs sind zwar für 3,3V-Pegel gedacht, sind dennoch 5V-Tolerant.


5V-AD-DA-Expander #1:

RP6 ArduIO ADC#2

Baustein: PCF8591

Name auf Board: "IC11"

Pegel: 5V

Adresse: 1001-A2-1-A0

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C7" beträgt 100nF. Der 10polige Wannenstecker dient als Pinherausführungen für die vier ADCs sowie für je einmal 5V und GND. Der DAC ist auf einem 1x2-Pin-Header bei "DAC1" herausgeführt. Zwei 100kOhm Widerstände, SMD 0805, messen die Batteriespannung an AD13 (AD-Wandler #1, AD-Eingang #3).

Datenblatt

Beschreibung: Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sowie +5V und GND sind an einen Wannenstecker herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist herausgeführt („DAC1“).

Am ADC3 dieses AD-Wandler-ICs liegt jumperbar (Jumper "AD-UB") die Batteriespannung über einen 2:1-Spannungsteiler (wie im RP6 einfach 2 100kOhm-Widerstände). Die Batteriespannung wird hier erst NACH der resettable Fuse "F2" gemessen, wodurch theoretisch auch softwareseitig ein Kurzschluss durch falsche Beschaltung der Leistungs-MOSFETs SP8M3 bemerkt werden kann, da dann die resettable Fuse abschaltet.


5V-AD-DA-Expander #2:

RP6 ArduIO ADC#2

Baustein: PCF8591

Name auf Board: "IC10"

Pegel: 5V

Adresse: 1001-A2-1-A0

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C8" beträgt 100nF. Der 10polige Wannenstecker dient als Pinherausführungen für die vier ADCs sowie für je einmal 5V und GND. Der DAC ist auf einem 1x2-Pin-Header bei "DAC2" herausgeführt.

Datenblatt

Beschreibung: Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sowie +5V und GND sind an einen Wannenstecker herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist an einem Einzelpin herausgeführt („DAC2“).


5V-AD-DA-Expander #3:

RP6 ArduIO ADC#2

Baustein: PCF8591

Name auf Board: "IC9"

Pegel: 5V

Adresse: 1001-A2-1-A0

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C11" beträgt 100nF. Die vier ADCs sind auf einem 2x4-Pin-Header herausgeführt, wodurch man diese vier ADCs jumperbar auf die A0- bis A3-Pins des Arduino-Sockels legen kann. Der DAC ist auf einem Einzelpin bei "DAC3" herausgeführt.

Datenblatt

Beschreibung: Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sind an Jumpern herausgeführt und können an die Eingänge der Arduino-Aufnahme angejumpert werden. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist an einem Einzelpin herausgeführt („DAC3“).


5V-PWM-Expander, 16fach, 12bit:

RP6 ArduIO ADC#2

Baustein: PCA9685

Name auf Board: "IC3"

Pegel: 5V

Adresse: 1000-A2-1-A0

Zubehör: Ein 2x3-Pin-Header dient als Adressjumper für die Adressen A0 und A2. Der Kondensator "C10" beträgt 10uF.

Datenblatt

Beschreibung: Dieser I2C-PWM-Expander steuert unter anderem vier LEDs und die Leistungs-MOSFETs (siehe unten) an. Die PWMs 12 bis 15 stehen zur freien Verfügung und sind an Einzelpins herausgeführt. Dabei können die PWMs 12 bis 14 an die PWM-Pins des Arduino-Sockels gelegt werden. Da im Arduino wahlweise 6 PWMs zur Verfügung stehen, sind hier dreifach-Jumper angebracht, wodurch je ein PWM auf einen oder zwei Arduino-Pin(s) gelegt werden können. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


LEDs

Die vier Status-LEDs "LED1" bis "LED4" können mittels PWMs 8 bis 11 des IC3 angesteuert werden.


MOSFETs

RP6 ArduIO ADC#2

Bausteine: 4x SP8M3, je dual ein n- und ein p-Channel

Namen auf Board: "IC4" bis "IC7"

Zubehör: 10poliger Wannenstecker, acht LEDs mit zugehörigen Vorwiderständen, 3 Stück 1x2-Jumper um die LEDs anzuschalten und um bei bedarf die resettable Fuse "F2" (mind. 4,5A) zu überbrücken. Der Kondensator "C14" (470uF) und die Drosselspule "L1" (10uH) dienen als LC-Schwingkreis gegen Spannungsspitzen.

Datenblatt

Beschreibung: Jeder dieser vier MOSFET-ICs enthält einen p- sowie einen n-Channel. Ihre Ausgänge sind zusammen mit der Batteriespannung (nach der resettable Fuse) und GND an den Wannenstecker herausgeführt. Sie werden durch den I2C-PWM-Expander (Ausgänge 0 bis 7) angesteuert und erreichen daher eine maximale Schaltfrequenz von 1kHz. Sie sind grundsätzlich für ohmsche Lasten ausgelegt, nicht für induktive (Motoren). Ihre Schaltzustände (On und Off) werden für jeden Kanal durch die LEDs 6 bis 9 (p-Channels 1 bis 4) und 10 bis 13 (n-Channels 1 bis 4) angezeigt. Diese LEDs können durch zwei Jumper komplett deaktiviert werden, ohne die MOSFETs zu deaktivieren.

Eine resettable Fuse ("F2") dient zum Schutz der MOSFETs vor zu starkem Stromfluss. Hier muss jedoch beachtet werden, dass diese vergleichsweise langsam schaltet und ein Auslösen unter Umständen unbemerkt bleiben kann. Sie funktioniert einfach dadurch, dass sie sich bei hohen Strömen ( >4,5A ) aufheizt und dann hochohmig, also nicht-leitend wird. Nach dem Abkühlen sinkt der Widerstand wieder und sie wird leitend.

Mit etwas Fachwissen können die MOSFETs schnell zu zwei Motortreibern, also H-Brücken umgebaut werden. Dafür müssen die Dioden D6 bis D9 sowie D2 bis D5 (richtig herum!) eingelötet werden. Diese sind als Rücklaufdioden für die in den Spulen der Elektromotoren gespeicherte elektrische Energie gedacht. Es handelt sich dabei um solche vom Typ BYM10-50. Darüber hinaus muss beachtet werden, dass die maximale PWM-Frequenz 1kHz beträgt. Diese Frequenz ist vom menschlichen Gehör spürbar, es kann also zur Geräuschentwicklung durch die angesteuerten Motoren kommen. Dies ist für die Motoren natürlich nicht von Nachteil, lediglich für den Zuhörer. Es muss jedoch unbedingt auf eine korrekte Beschaltung der MOSFETs geachtet werden, da sonst ein Kurzschluss droht. Wird ein p- und ein n-Channel-MOSFET an einem Motorkontakt angeschlossen und beide in den On-Status versetzt, wird ein Kurzschluss der Batteriespannung auf GND erzeugt. Die kann mehrere teils verehrende Folgen für dieses Board haben: Im besten Fall brennt die Hauptsicherung „F1“ durch oder die resettable Fuse „F2“ unterbricht den Kontakt. Im schlimmeren Fall könnten die MOSFET-IC-Bausteine Schaden nehmen oder sogar Zuleitungen platzen. Dann wird eine Reparatur sehr aufwändig. Also hier bitte nur mit dem nötigen Fachwissen rangehen! Es wird außerdem empfohlen, die MOSFETs bei Verwendung als H-Brücke mit einer eigenen Batterie zu versorgen, nicht mit dem Hauptakku des RP6 über den XBUS.

Der LC-Schwingkreis, bestehend aus einer 10uH-Spule (L1) und einem 470uF-Elko (C14), dient zur Abschwächung möglicher Störungen durch Motoren.


Arduino-Aufnahme

RP6 ArduIO ADC#2

An den mit „Arduino“ bezeichneten und eingerahmten Pinheadern können Arduino-Boards (von unten) und –Shields (von oben) aufgesteckt werden. Die Stromversorgung für das jeweilige Board kann über Jumper gewählt werden: Batteriespannung („UBat“), +5V oder +3,3V. Natürlich darf hier immer nur einer der drei Jumper gesteckt sein, sonst regeln zwei oder mehr Spannungsregler gegeneinander und können Schaden nehmen. Bei Verwendung von 3,3V muss natürlich auch der 3,3V-Regler durch den Jumper angeschaltet sein. Auch kann der Pegel des I2C-Busses, welcher an "A4" und "A5" der Arduinos anliegt, gewählt werden. Dies geschieht über zwei dreifach-Jumper. Hier ist jeweils der mittlere Pin mit "A4" bzw. "A5" des Arduino-Sockels verbunden und die beiden äußeren dann dementsprechend jeweils mit den Leitungen des I2C. Auf der linken Seite für den 3,3V-Pegel, auf der rechten für den 5V-Pegel.

Ein originaler Arduino-Prozessor würde neben ADCs und IOs auch bis zu 6 PWM-Ausgänge bereit stellen. Da das ArduIO-Board Arduino-Prozessoren emulieren kann, ist es möglich, drei der PWM-Ausgänge des PWM-Bausteins "IC3" für drei der sechs möglichen Arduino-PWMs zu verwenden. Dafür stehen wieder dreifach-Jumper bereit. In der Mitte sind die PWM-Ausgänge 13, 14 und 15 des "IC3" gelegt und diese können dann wahlweise auf die Pins 5 oder 6, 9 oder 10 sowie 11 oder 3 gejumpert werden.

Achtung: Bitte für diese Jumper die schwarzen, kurzen Jumper von den IOs benutzen! Denn sonst könnte das PWM-Signal mit einem IO-Signal kollidieren, dann droht ein Kurzschluss! Daher werden diese drei Jumper auch nicht mitgeliefert; es sollen die vorhandenen IO-Jumper genutzt werden.

Anschluss von externen Spannungsquellen

RP6 ArduIO ADC#2

An die Buchse „B1“, können externe Spannungsquellen (Netzgeräte, Akkus, etc) angeschlossen werden. Dadurch würde der GND-Kontakt der Buchse automatisch unterbrochen (bauteilebedingt). Dies ist jedoch über den langen, schwarzen Jumper "JP_LOAD" überbrückbar, wenn der RP6 etwa mit einem Netzgerät betrieben werden soll. Auch der Hauptakku des RP6 ist über den XBUS nutzbar; dies kann durch den gelben dreifachjumper "JP_UB" direkt neben der Hauptsicherung eingestellt werden. Schalter „S1“ schaltet die Stromversorgung (egal, ob über XBUS oder die Buchse "B1").

Ein Tipp: Will man nur Softwarearbeiten machen und muss der RP6 dabei sich nicht frei bewegen können, einfach eine dreifach-Brücke über den Dreifachjumper "JP_UB" legen und ein Netzgerät an die ArduIO anschließen. Dann wird über die dreifach-Brücke sowohl die ArduIO von diesem Netzgerät versorgt, als auch der RP6 über den XBUS. Natürlich sollte dafür auch im RP6 kein Akku angeschlossen sein.

Sicherung „F1“ und Verpolungsschutz

Die Sicherung "F1" dient natürlich der Sicherung vor Kurzschlüssen etc, jedoch in Verbindung mit der darunter liegenden Diode „D1“ auch dem Verpolungsschutz. Bei Verpolung schaltet die Diode auf Masse durch und die Sicherung schmilzt.


5V-Regler

Baustein: AP1117E50G

Name auf Board: "IC2"

Zubehör: 2x Kondensatoren 2uF ("C1") und 10uF ("C2"). LED mit Vorwiderstand ("LED14", "R14").

Datenblatt

Beschreibung: Der 5V-Regler kann für die Versorgung des ArduIO-Boards genutzt werden, ebenso jedoch (nicht empfohlen) der RP6-eigene 5V-Regler über den XBUS. Die Auswahl findet durch einen 3fach-Jumper statt. "LED5" zeigt den Zustand an.


3,3V-Regler

Baustein: LD1117AS33TR

Name auf Board: "IC1"

Zubehör: 2x Kondensatoren, 2,2uF ("C4") und 10uF ("C5"). LED mit Vorwiderstand ("LED5", "R5").

Datenblatt

Beschreibung: Der 3,3V-Regler kann jumperbar (langer, schwarzer Jumper) on/off geschaltet werden. „LED14“ zeigt den Zustand an.

3,3V-I2C

RP6 ArduIO ADC#2

Bausteine: BSN20, zwei Stück, und 2k2-Ohm Widerstände

Name auf Board: "Q1" und "Q2", "R15" und "R16"

Beschreibung: Zwei MOSFETs ("Q1" und "Q2") dienen als bidirektionale Pegelwandler. Natürlich muss der 3,3V-Regler aktiviert sein! Die Widerstände "R15" und "R16" dienen als Pullups. Diese sind notwendig, da die I2C-Leitungen stets Pullups besitzen sollen. Für den 5V-I2C sind diese Pullups auf dem RP6-Mainboard ( "Base" ) installiert.

Int-Leitungen #1 bis #3 des XBUS

Die Int-Leitungen "Int1", "Int2" sowie "Int3" finden auf diesem Board eine Verwendung und sind mit Pullup-Widerständen ausgestattet. "Int1" liegt am IO-Expander #2, "Int2" an IO-Expander #1 und "Int3" am IO-Expander #3. Alle Int-Leitungen sind dabei jumperbar und besitzen Pullup-Widerstände "R25", "R26" und "R27" (je 2k2 Ohm).


Scheinwerfer

RP6 ArduIO ADC#2
RP6 ArduIO ADC#2

Als kleine Überraschung haben wir dank Dirks Idee den Trapez-Ausschnitt in der RP6-Platine diesmal mit fünf kleinen LED-Platinchen gefüllt. Vier davon sind als Scheinwerfer gedacht. Je zwei davon sind spiegelverkehrt gemacht und enthalten zweimal je eine gelbe low-current LED und zwei rote low-current LEDs (für hinten: Blinker links/rechts und Licht/Bremslicht) sowie zweimal je gelbe low-current LED und zwei weiße superbright LEDs (für vorne: Blinker links/rechts und Standlicht/Abblendlicht). Dazu enthält eine letzte Platine zwei superbright Blaue LEDs, welche gegenüberstehend und gewinkelt aufgelötet werden und als Blaulicht fungieren. Sie teilen sich einen IO und sind daher gegeneinander gesetzt, wodurch bei High-Pegel die eine, bei Low-Pegel die andere LED leuchtet. Beim Toggeln zwischen High und Low hat man daher einen Blaulicht-Blinkeffekt.

Eine Möglichkeit der Verkabelung seht ihr rechts: Jede Platine benötigt GND, die vier Scheinwerfer dazu noch je drei IOs, wovon jedoch stets mehrere geteilt werden (BEIDE Blinker links, BEIDE Blinker rechts, etc). Die Blaulicht-Platine benötigt dazu noch +5V, da hier beide LEDs gegenpolig an einem einzelnen IO angeschlossen sind, auf der anderen Seite geht die eine LED auf GND, die andere auf +5V. Dadurch bewirkt ein Tooglen des IOs ein abwechselndes Blinken der beiden LEDs.

ACHTUNG: Wenn all diese LEDs leuchten, also alle vier Front- und vier Heckscheinwerfer sowie alle vier Blinker und eine der blauen LEDs, so ziehen diese einen Strom von 4x20mA (weiß) + 1x30mA (blau) + 4x2mA (rot) + 4x2mA (gelb) = 126mA. Das ist für den IO-Expander nicht wenig und sollte bei weiteren Verbrauchern an den übrigen 8 IOs beachtet werden. Der zulässige Maximalstrom sollte nicht überschritten werden.

Jumper

RP6 ArduIO V1.0

Allgemein gilt für diese Platine:

- Grüne Jumper dienen der Adress-Einstellung der I2C-Teilnehmer

- Schwarze, kurze Jumper sind für die Weiterleitung von IOs, ADCs und PWMs gedacht

- Schwarze, lange Jumper sind für das An-/Abschalten von Komponenten gedacht (3,3V-Regler, ...)

- Gelbe Jumper sind bitte mit Vorsicht zu genießen; bei falscher Verwendung droht Schaden!

- Blaue Jumper sind für Sonstiges (Int-Weiterleitung, etc)

Eine Default-Jumperstellung seht ihr in dem Foto rechts und im Header-Foto ganz oben. So wird die Platine auch ausgeliefert: alle IOs für die Arduino-Aufnahme sind an die Arduino-Pins über schwarze, kurze Jumper gelegt, ebenso die vier ADCs. Will man PWMs auf die Arduino-Pins legen, einfach den zugehörigen kurzen, schwarzen Jumper vom jeweiligen IO abziehen und auf den jeweiligen PWM legen. Die vier PWM-Leitungen für die vier Board-LEDs sind ebenfalls über vier kurze, schwarze Jumper verbunden.

Die Blauen Jumper leiten die drei Int-Leitungen 1, 2 und 3 des XBUS auf die drei IO-Expander weiter. Außerdem aktivieren zwei weitere die LEDs, welche die Zustände der MOSFETs anzeigen. Ein letzter legt die Batteriespannung üner einen 1:1 Spannungsteiler auf den ADC#1.

Die beiden langen, schwarzen Jumper aktivieren den 3,3V-Regler und ermöglichen den Netzbetrieb, wenn an der Buchse B1 ein Akku oder Netzgerät angeschlossen ist.

Die gelben Jumper legen fest, dass die ArduIO den boardeigenen 5V-Regler sowie einen eigenen angeschlossenen Akku verwenden soll. Außerdem wird auf die Arduino-Pins 3,3V-Versorgungsspannung und der I2C-Bus mit 3,3V-Pegel gelegt. Das dient nur der Sicherheit! Bei 3,3V kann nichts kaputt gehen, wenn auch vielleicht ein 5V-Arduino-Board nicht funktionieren wird.

Weitere Jumperstellungen und Möglichkeiten finden sich unter dem Link - unten in den Weblinks!

Weblinks

-> [HIER] findet ihr Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung. Einfach das .zip runterladen, fertig.

-> [HIER] findet ihr den Software-Artikel.


LiFePO4 Speicher Test