Christians Webseite        << zurück        vor >>

Module zum Basteln

Bei vielen meiner Bastelprojekte benötige ich immer wieder irgendeine Schnittstellen zur Aussenwelt. Ein typisches Beispiel ist eine USB-Schnittstelle. Technisch ist es häufig kein grosses Problem sowas selbst auf der Platine zu realisieren, die ICs, Steckverbinder etc, sind leicht zu bekommen. Es ist aber wesentlich schneller, einfacher und deutlich billiger fertige Module dafür zu verwenden. Die Inbetriebnahme und Fehlersuche vereinfacht sich weil man diese Blöcke (erstmal) als Fehlerquelle ausschliessen kann. Bei komplexeren Modulen ist der (Hobby-)Selbstbau zudem praktisch unmöglich.
Eine kleine Auswahl ist nachfolgend zu sehen.

module module
module module module
module module
module
Die meisste Elektronik wird heutzutage im asiatischen Bereich gefertigt, sehr häufig in China. Auch diese Module sind sehr wahrscheinlich dort produziert worden. Es ist sehr billige Massenware die "irgendwo zusammengenagelt" wird. Höchste Qualität und bullet-proof Design sollte man daher nicht erwarten, für Hobbyzwecke ist es aber mehr als ausreichend.

Ähnliche Module findet man auch in den diversen "Arduino-Shops", häufig auch auf ein sog. "shield" Erweiterungsboard gesetzt. Ich wette die wurden ebenfalls in Asien gefertigt ..

Viele der Module sind "namenlos", existieren in unterschiedlichen Varianten und haben nur die verwendeten ICs gemeinsam. Ein Hersteller ist sehr oft nicht angegeben. Die Anbieter bei ebay sind oft "kurzlebig", eine Bezugsquelle anzugeben ist daher sinnlos. Am besten orientiert man sich an der Optik und den verbauten ICs.

Die mitgelieferten Beschreibungen und Anleitung sind meist rudimentär. Gute erste Quellen sind die Datenblätter der Chip-Hersteller. Bevor man ein Modul "schnell mal an einen Arduino anstöpselt" sollte man unbedingt für alle Ports überprüfen ob die Spannungspegel zueinander passen.

Besonders bei Funk-Modulen sollte man auch bedenken dass die abgestrahlte HF erheblich in die eigene Elektronik einstreuen kann. Jede Leitung wirkt unbeabsichtigt auch als Antenne.

USB auf UART Umsetzer

module module
module module

Dieses Modul ist ein Umsetzer von USB auf RS232(UART). Basis ist ein IC von Silicon Labs CP2102. Der UART arbeitet mit 3.3V TTL Pegel. Es ist kein "echter" RS232 (dafür fehlt die Pegelinvertierung und die Umsetzung auf +/-12V). Das ist aber eher von Vorteil, weil die meistens Mikroprozessoren sowieso mit TTL-Pegel arbeiten. Die I/O Pins sind 5V tolerant (max 5.8V), eine nachfolgende 5V-Elektronik benötigt daher keine Pegelwandler.

Passende (PC-)SW-Treiber finden sich überall im Internet. Das Device registriert sich als virtueller COM-Port. Auf beiden Seiten ist es sehr einfach anzusprechen. Als Bonus bekommt man noch die USB-5V geliefert, damit kann man Elektroniken mit wenig Strombedarf direkt versorgen.

Es gibt diese Module in vielen Varianten mit identischer oder sehr ähnlicher Funktionalität. Häufig verwendet werden z.B. die folgenden Chips: PL2303(Prolific), FT232(FTDI), CH340(WCH?).

Update: Das Modul mit dem CP2102 läuft unter Windows 10 (Treiber-Stand 5/2020) nur bedingt zuverlässig. Kurze Tx-Sequenzen sind okay, aber grössere Datenmengen (z.B. Binärübertragung von Files) führen meistens zu einem Absturz/Einfrieren. Auch das Durchprobieren aller denkbaren (USB-)Parameter bringt keine Verbesserung.
Ein Modul mit einem FT232R Chipsatz läuft auf dem gleichen Rechner völlig problemlos.

Li-Ion Akku Laderegler und Step-Up Wandler

module module
module module

Dieses Modul kombiniert 2 Funktionen:
- eine Laderegelung für einen 3.7V Li-Ion Akku
- einen Step-Up Wandler bis max. 28V

Der Laderegler basiert auf einem TP4056 (NanJing Top Power ASIC Corp.?). Der klassische Einsatz ist die Akku-Ladekontrolle für Geräte die über USB geladen werden.
Der Ladestrom kann (muss) durch einen Widerstand an den verwendeten Akku angepasst werden. 2 LEDs signalisieren den Status.
Einige Varianten benutzen einen LTC4054 als IC. Bei diesem ist der Schalttransistor nicht enthalten und extern zugeschaltet.

Der zweite Teil der Platine ist ein Step-Up Wandler der die 3.7V des Akkus auf eine bliebige höhere Spannung umsetzt (max 28V). Das IC hat die Bezeichung SDB628. Je nach Hersteller kann auch ein kompatibler Typ verbaut sein. MT3608, FP6291, SX1308, AX5523, LT1935, LTC3426, HM1549, A848, .. scheinen alle weitgehend funktionsgleich zu sein.

Allen Designs gemeinsam ist die dicke Spule (im Bild mit dem Aufdruck 4R7). Über das kleine Poti kann die Ausgangsspannung eingestellt werden, bei Varianten mit fixer Ausgangsspannung wird es durch 2 Festwiderstände ersetzt. Dies ist auch anzuraten um nicht versehentlich die Spannung zu ändern.

Von der Qualität der Regelung und der spektralen Reinheit sollte man keine Wunder erwarten. Wenn möglich oder nötig sollte ein (Low-Drop-)Spannungsregler zusätzlich dahinter geschaltet werden.

Dieses Kombi-Modul ist sehr praktisch wenn man portable Geräte aufbauen möchte.
Ein grober "Schönheitsfehler" ist allerdings vorhanden: Akku und Step-Up sind permanent miteinander verbunden. Selbst wenn das folgende Gerät ausschaltet zieht der Step-Up permanent seinen Idle-Strom. Den Ein-Schalter platziert man daher am besten zwischen Akku und Step-Up, die entsprechende Leiterbahn auf der Platine muss dazu unterbrochen werden.

RTC, Echtzeituhr

module module
module module

Auf diesem Modul sitzt ein "alter Bekannter", der DS3231 von Maxim. Diese IC ist eine sog. real-time clock, quasi eine Armbanduhr für Mikroprozessoren. Einmal gestartet und eingestellt liefert es immer die korrekte Zeit und das aktuelle Datum. Bei Stromausfall sorgt die eingebaute Batterie für den Erhalt der Daten. Als Bonus ist noch ein kleines Eeprom vorhanden in dem man ein paar Daten abspeichern kann.

Die Versorgungsspannung darf im Bereich 2.3 .. 5.5V liegen, wobei das Eeprom eventuell nur bis runter auf 2.8V spezifiziert ist.

Die Ansteuerung erfolgt über einen I2C-Bus (aus patentrechtlichen Gründen teilweise auch als TWI / 2-wire Serial Interface bezeichnet).

Der RTC-Baustein selbst benötigt prinzipiell nur sehr wenig Strom. Wer ein Low-Power System plant sollte die Hinweise im folgenden Link beachten und anwenden:
https://thecavepearlproject.org/2014/05/21/using-a-cheap-3-ds3231-rtc-at24c32-eeprom-from-ebay/

RFM95W LoRa Funkmodul

module module
module module

Der Hersteller dieser Module ist "Hope Microelectronics", oft auch als "Hope RF" bezeichnet. Der Chipsatz ist ein SX1276 von Semtech. "LoRa" steht für Long Range, eine Funktechnologie die auf Spread Spectrum basiert. Mit 2 Modulen kann man eine Funkverbindung aufbauen. Die Module gibt es für unterschiedliche (freie) Frequenzen: 433, 866, 915 und 923MHz, je nach geographischer Region. Die LoRa Alliance hat sich zum Ziel gesetzt mit dieser Technology ein weltweites Netzwerk aufzubauen (LoRaWAN), an dem man teilhaben kann.

Für die Arduino-Umgebung gibt es eine C++ Bibliothek:
https://github.com/jgromes/RadioLib

Auch vom Hersteller selbst (Semtech) gibt es diverse Infos:
https://www.semtech.com/products/wireless-rf/lora-transceivers/sx1276#downloads

Für den Einsatzfall als simple, drahtlose UART-Verbindung ist dieser Baustein nur bedingt geeignet. Er benötigt zusätzlich einen Prozessor zur Konfiguration und das Protokoll-Handling. Diesen Aufwand kann man sich sparen wenn man z.B. einen HC-12 benutzt. Mit dem Nachteil dass die Reichweite nicht ganz so gross ist (FSK-Modulation gegenüber Spread-Spectrum).

GPS Empfänger

module module
module module

Hersteller ist die Firma Beitian. Das Modul hat die Kennung BN-180. Chipsatz ist ein UBX-M8030-KT von u-blox. Es unterstützt die Standards GPS, GLONASS, Galileo und BeiDou. Versorgungsspannung 3.0 .. 5.5V, 50mA. Der Ausgang ist ein UART mit TTL-Pegel, das Protokoll nennt sich NMEA. Es basiert auf ASCII-Zeichen und ist leicht auszuwerten.

Diese Module laufen umgangssprachlich unter der Bezeichung GPS-Empfänger. Eigentlich ist GNSS die korrektere Bezeichung weil mittlerweile noch 3 weitere Standards hinzugekommen sind. GPS war aber das erste verfügbare System, daher der Name.

Bestimmte GPS Module zu beschreiben ergibt kaum Sinn weil sie im Markt sehr kurzlebig sind. Die Chipsätze werden fast im Jahrestakt erneuert und es gibt dutzende von Modulherstellern. Ein üblicher Standard ist aber durchgängig das NMEA Protokoll.

HC-12 Funkmodul

module module
module module

Diese Module sind für drahtlose UART-Verbindungen im freien 433MHz-Band per FSK gedacht. Hersteller ist vermutlich DSD Tech. Auf der Rückseite ist die Typenbezeichnung "GT-38" aufgedruckt. Der HF-Chipsatz ist ein Si4438 der Firma Silicon Labs, der Mikroprozessor ein N76E003AT20 von Nuvoton (8051 kompatibel). Die Reichweite wird mit bis zu 1000m angegeben, abhängig von der gewählten Übertragungsgeschwindigkeit. Laut Datenblatt ist der Si4438 speziell für den chinesischen Smart-Meter Markt ausgelegt.

Das Modul ist ähnlich dem weiter oben beschriebenen LoRa Modul. Die Verwendung ist aber deutlich vereinfacht weil der Prozessor bereits die low-level Kontrolle des HF-Chips übernimmt und einen UART bereitstellt.

Die Inbetriebnahme ist extrem einfach. Nach dem Anlegen der Versorgungsspannung ist das Modul direkt betriebsbereit. Als Default sind 9600 Baud, Kanal 100, 20dBm Sendeleistung und Übertragungsmodus FU3 (siehe Datenblatt) eingestellt. Die zu übertragenden Daten werden einfach an den UART-Eingang geschickt, genau wie bei einer seriellen RS232-Schnittstelle.

Der SET-Pin bleibt normalerweise unbeschaltet (offen, interner Pull-up). Wenn er auf Masse gezogen wird kann man die internen Einstellungen durch senden sog. AT-Kommandos verändern. Syntax siehe Datenblatt.

Als Frequenzbereich wird 433.4 .. 473.0MHz angegeben, mit 100 Kanälen im 400KHz Abstand. Das 433-ISM-Band (Europa) liegt im Bereich 433.05 .. 434.79MHz. Theoretisch dürfen daher nur die unteren 4 Kanäle benutzt werden.
https://emf3.bundesnetzagentur.de/pdf/ISM-BNetzA.pdf

Ein wenig Aufmerksamkeit bedarf die Einstellung der Baudrate und die Wahl des FU-Modes. Mit der Wahl der UART-Baudrate wird automatisch auch die Luft-Schnittstelle passend gesetzt (Bandbreite, Protokoll, Packet Handling, etc). Und je höher die Baudrate desto geringer ist die Empfindlichkeit = Reichweite.

Im FU3-Mode mit 9600 Baud (default) werden -111dBm an Empfindlichkeit erreicht. Bei 1200 oder 2400 Baud sind es -116dBm. Mit 115200 Baud sinkt der Wert auf -100dBm. Eine Veränderung von ~8dB entspricht einer Halbierung/Verdoppelung der Reichweite.

Im FU4-Mode, mit fixen 1200 Baud, steigt die Empfindlichkeit auf -126dBm an. Allerdings zu einem Preis. Die Übertragung auf der Luftschnittstelle ist erheblich langsamer als die UART-Baudrate. Pro Byte muss eine Wartezeit von 1..2 Sekunden einkalkuliert werden.

Der weiter oben beschriebene USB-UART Konverter (CP2102) kann direkt angeschlossen werden. Er versorgt gleichzeitig das Modul mit Strom. In Summe eine einfache und schnelle Lösung wenn "mal eben" Daten seriell übertragen werden sollen.

module

Es gibt auch HC-12 Module mit abweichender IC Bestückung, Si4463(HF) und STM8S003F3P6(Prozessor). Vermutlich ist es eine Vorgängerversion, oder schlicht ein zweiter Hersteller.
module

Der Si4463 scheint der "grosse Bruder" des Si4438 zu sein. Er hat einen grösseren möglichen Frequenzbereich und eine zusätzliche Modulationsart. Beides ist allerdings in dieser Anwendung nicht relevant weil nicht verwendet. In den Funktionen scheinen beide Modulvarianten identisch zu sein.
Der zum Foto zugehörige Blog liegt hier:
https://quadmeup.com/hc-12-433mhz-wireless-serial-communication-module-configuration/

Weitere Infos und SW-Code-Schnipsel sind auf der Herstellerseite(?) zu finden:
http://www.hc01.com/productdetail?productid=201902121600
Die Abbildung der Platine dort ist wieder leicht abweichend zu den vorhergehenden, offensichtlich wurde der Prozessor durch eine kleinere Ausführung ersetzt.

Und noch ein weiterer Link mit Infos:
https://www.allaboutcircuits.com/projects/understanding-and-implementing-the-hc-12-wireless-transceiver-module/

Zu möglichen Übertragungsproblemen gibt dieser Link einen Hinweis:
https://www.mikrocontroller.net/topic/453846
Demnach sind die Quarze möglicherweise nicht immer innerhalb der Spezifikation.

Als Antenne kann ein Stück Draht mit einer Länge von Lambda/4 verwendet werden, also ~17cm. Dann sollte aber idealerweise eine hinreichend grosse Massefläche als "Gegenpol" vorhanden sein. Die Fläche des Moduls selbst ist dafür viel zu klein, ein Metallgehäuse zu verwenden wäre gut. Die mitgelieferte gewickelte Antenne ist möglicherweise nicht so empfindlich, habe ich nicht überprüft. Für absolut maximale Reichweite sollte man eine "richtige" Antenne verwenden, das Modul hat extra einen Stecker dafür.

HC-05 Bluetooth Funkmodul

module module
module module

Das HC-05 bietet eine Bluetooth SPP (Serial Port Protocol) Verbindung nach V2.0+EDR Standard mit 3Mbps Modulation. Der Chipsatz ist ein BC417 von CSR. Der Empfänger auf der Gegenseite kann ein PC, Smartphone oder ein anderes Bluetooth-Modul sein. Auf dem PC, als Beispiel, wird ein virtueller COM-Port eingerichtet. Das SPP ist nur für simple (UART-)Datenübertragung gedacht, nicht für Sprache oder sonstige Funktionen.

Die Versorgungsspannung muss im Bereich 1.7 .. 3.6V liegen, ein Arduino mit 5V Logik kann nicht direkt angeschlossen werden.

Die Module werden als HC-05 (Master/Slave) und als HC-06 (Slave only) angeboten. Ein Slave kann eine Verbindung nicht selbstständig initiieren.

Das HC-05/HC-06 funktioniert NICHT mit iOS (Apple) Geräten. Diese benötigen mindestens den Bluetooth-Standard 4.0 oder höher. Die Variante AT-09 ist dafür passend.

Nach dem Pairing ist die UART-Schnittstelle direkt benutzbar.

Bluetooth Stereo-Audio Modul

module module
module module

Das XS3868 ist ein Bluetooth Audio Device dass die Profile A2DP und AVRCP unterstüzt. Der Chip ist ein OVC3860 der Firma OminVision Technologies. Man kann damit z.B. einen Bluetooth Stereo-Lautsprecher oder ein Headset bauen oder einen MP3-Adapter für eine HiFi-Anlage. Es hat 2 Ausgänge für Lautsprecher, einen Mikrofon-Eingang, unterstützt 5 Bedientasten zur Wiedergabesteuerung (am Smartphone) und eine Ladeschaltung für Li-Ion Akkus.

Das Modul ist für den Betrieb mit Akkus oder Batterien vorbereitet, offensichtlich für Stand-alone Geräte gedacht die über USB geladen werden. Damit vermeidet man auch eventuelle Brumm-Schleifen (beim Anschluss an eine HiFi-Anlage) die durch ein Netzteil hervorgerufen werden können.

Der Anschluss per Chinch an den Aux-in einer HiFi-Anlage ist leider nicht soo trivial. Die Lautsprecher-Ausgänge sind balanciert (2 Endstufen im Gegentakt). Um potentialfrei auf Chinch zu kommen ist eigentlich noch ein Differenzverstärker-IC notwendig. Es geht notfalls aber auch single-ended.

Bei meinen Versuchen hat das Modul gut funktioniert. Allerdings muss man etwas experimentieren um Brummen und Rauschen zu minimieren. Die Hinweise in den Beiträgen in den Links waren sehr hilfreich.

Zum Ändern der Konfiguration (z.B. um den Bluetooth-Namen zu ändern) gibt es ein Tool:
https://www.instructables.com/id/XSOVC3868-Configuration/
oder
http://www.etechpath.com/how-to-program-xs3868-audio-bluetooth-module-using-usb-ttl-module/
Ein UART-Adapter wird dafür benötigt und an Tx/Rx angeschlossen. Das Tool funktioniert nur an COM1! Der Adapter muss daher vorher auf diesen Port umkonfiguriert werden.

Ein paar weitere Links (teilweise wird ein sehr ähnliches Modul verwendet):
https://www.eevblog.com/forum/beginners/bluetooth-audio-someone/
http://waihung.net/bluetooth-audio-mod-on-car-cassette-player/
https://www.electrodragon.com/w/images/6/60/PKB_schematic.jpg
https://www.electrodragon.com/w/PKB