Da kauft man nichtsahnend deutlich billigere MAX7219 bei Ebay und wundert sich dann über das Äußere …
fake Exemplare des Max7219
Irgendwas war anders beim Original, was nicht mehr im Haus ist und von dem auf meiner Festplatte keine Fotos existieren. Ein wenig Googlen bringt die Lösung:
Es steht anhand des Aussehens: Foto vom AS1107 stark zu vermuten, dass unter der Fake-Haube AS1107 stecken. Die sind allerdings durchaus brauchbar, wie auch der Tester bei tronixstuff herausfindet.
Dieses vierstellige rot leuchtende LED-Display mit zusätzlichen Symbolen und gemeinsamer Kathode ist häufiger Bestandteil des Pollin-LED-/LCD-Sortimentes.
Nominell sollen die LED rot sein, es ist aber eher ein rötlich-oranges Leuchten. Die äußeren Abmaße sind 36 mm x 11 mm (B x H). Die Ziffern sind 6,2 mm hoch. Die Pins sind als DIL angeordnet und im normalen Raster (2,54 mm).
Maße aus dem Datenblatt
Die LEDs (zumindest die vier Ziffernstellen) sind nur per Multiplex mit gemeinsamer Kathode betreibbar.
Pinout aus dem Datenblatt
Die elektrischen und optischen Parameter sind der folgenden Tabelle zu entnehmen:
characteristics from datasheet
Schaltungen für das Multiplexen von LED-Anzeigen gibt es zu hauf im Internet zu finden, benutzbar ist z. B. ein MAX7219.
Ich habe interessehalber eine andere Variante ausprobiert. Gleich vorweg, diese kann ich nicht zur Nachahmung empfehlen. Da ich schon öfter gelesen hatte, dass man eine LED zwischen zwei Pins eines Mikrocontrollers ohne Vorwiderstand betreiben kann, habe ich dies mit diesem Display ausprobiert.
Aufbau
Die Nachteile dieses Verfahrens sind jedoch offensichtlich. Je mehr Segmente und Ziffern eingeschaltet sind, desto dunkler wird die Anzeige. Die Helligkeit hängt also sehr stark vom angezeigten Inhalt ab. Außerdem haben die Exemplarstreuungen sowohl bei der Anzeige als auch beim Controller deutlichen Einfluß auf die Helligkeit. Auf den Fotos ist das nicht so deutlich erkennbar, wenn man die Anzeige jedoch vor sich hat, ist dieser Effekt sehr deutlich ausgeprägt.
Anzeige
Unter ungünstigen Umständen (z. B. höhere Temperatur) kann der Controllerausgang mit dem LED-Strom überlastet werden.
Dieses Board ist mit dem STM8S103F3P6 ausgestattet:
stm8s103f3 Pinout
Leider ist das eine etwas anders ausgestattete Version des STM8S im Vergleich zum weit verbreiteten STM8-discovery-Board. Das heißt auch, dass die meisten im Internet verfügbaren Programme angepasst werden müssen. Hinzu kommt, dass es drei verschiedene Compiler für die Prozessorserie von ST gibt. Nächste Erschwernis ist, dass in den Beispielen eine von ST verfügbar gemachte Firmware-Bibliothek benutzt wird. Diese ist allen auf der ST-Seite downloadbaren Beispielen beigefügt. Ein mit den genannten Eigenschaften versehenes tutorial für das discovery-Board findet sich unter benryves.com.
Für IAR gibt es deutlich weniger Beispiele, dabei ist auch diese Entwicklungsumgebung bis 8kByte-Flashspeicher frei, mit einem sehr guten Debugger ausgestattet, dem Hörensagen nach unheimlich gut im Optimieren und auch für wirklich große Projekte geeignet:
IAR embedded workbench
Benötigt wird weiterhin ein ST-Link/V2, den man sehr preiswert kaufen kann, allerdings nur in China und als Klon. Etwas teurer, jedoch nicht so teuer wie die Originale, ist der bei roboterbausatz.de erhältliche Klon:
Dieser ist offensichtlich 100% kompatibel, da ST die Schaltung freigegeben hat. So ist der Klon mit der Originalfirmware von ST versehen und kann auch alle updates übernehmen.
Ein Beispielprojekt, welches per timer-PWM mit einer RGB-LED durch die Farben fadet, ist hier zum download Demoprojekt verfügbar. Es basiert auf einem firmware-Beispiel für die timer von ST. Dieses wurde mit einer huetoRGB-Funktion aus einem Arduino-Buch erweitert, um Farbwechsel zu generieren.
Der Hardware-Aufbau auf einem kleinen Steckbrett ist trivial:
Heute war ein einfacher Machbarkeitstest mit den im Titel genannten Komponenten dran. (Entferntes) Ziel ist die Entwicklung eines autonomen Temperatur- und Luftfeuchtigkeits-Datensammlers.
Meine Vorstellung geht dahin, dass im autonomen Modus des Gerätes der ATMega zu vorab eingestellten Zeiten (bzw. präziser: in voreingestellten Zeitabständen) aufwacht, Messungen vornimmt und sich wieder schlafen legt. Die Messergebnisse werden in einem nichtflüchtigen Speicher gesammelt und bei seriellem Abruf an einen PC ausgeliefert. Auf dem LCD sind nach Tastendruck für 20 Sekunden die jeweils letzten Messungen zu sehen. Danach schaltet es wieder ab. Programmiert wird das Gerät mit zwei Tasten und dem LCD als Benutzeroberfläche. Eine wichtige Rolle wird die Wahl eines passenden Gehäuses spielen.
Soviel zum fernen Ziel … 😉
Die Arduino-Oberfläche eignet sich wegen der simplen und spielerischen Art, Programme schnell anzupassen, in hervorragender Weise dazu, die Benutzeroberfläche bzw. das Menü zu entwickeln.
Auf dem Foto sind die Bestandteile zusammengesteckt, wegen des WAF 🙂 ist noch eine (für das Ziel nutzlose) RGB-Leuchtdiode mit drauf, die nacheinander alle Farben durchläuft.
Testaufbau mit Arduino, DHT11, UC121902 und RGB-LED h bedeutet humidity, t steht für temperature
Aus purer Langeweile und aufgrund eines interessanten Beitrages im Mikrocontroller-Forum: alte DDR-Lichtschachtanzeigen VQBxx tunen habe ich heute eins dieser Displays, die in Massen dem Pollin LED-LCD-Sortiment beiliegen, zerlegt.
VQE21 zerlegt
VQE21 zerlegt Detail
Wie der Beitrag im Forum zeigt, ließe sich dieses Display mit modernen Einzel-LED nach-/aufrüsten. Das habe ich aber nicht mehr probiert.
Heute war eine Arduino-Spielerei fällig. Pollin verkauft derzeit ein ArduinoClone Pro Mini Board mit dem ATMega 168. Ein FTDI-breakout-Adapter von Watterott lag noch rum, ein DHT-11-Board ebenso. In weniger als 10 Minuten war die Software aus dem Internet heruntergeladen, alles zusammengesteckt und programmiert.
Ein paar Bilder:
FTDI breakout (USB-serial Adapter)
alles zusammengesteckt …
… und gestartet.
Hierfür benötigt man keine bzw. kaum Elektronik- oder Programmierkenntnisse. Es ist schon beeindruckend, was moderne Technik und entsprechende Abstraktion (Arduino-Konzept) möglich macht. Natürlich ist diese Schaltung so nicht praktisch nutzbar, aber auf die geschilderte Weise ist praktisch jederzeit ein schnelles proof of concept möglich. (mit z. B. anschließender klassischer Umsetzung per PCB- und Softwareentwicklung in C sowie Einbau in ein fertiges Gerät)
Da Schaltungen mit der Kombination 74HC595 und ULN2803A (oder ULN2003A) wohl sicher öfter vorkommen, werden auch öfter Prototypen gebaut werden. Hierfür gibt es auf Lochraster eine einfache Möglichkeit, mit sehr wenigen zusätzlichen Leitungen auszukommen. Die Idee kam beim Leiterplattenentwurf:
Layout in Eagle (hier mit ULN2003A)
Aufgrund der nahezu optimalen Pin-Belegung beider Bausteine können jeweils acht Pins beider Bausteine in je ein Loch der Lochrasterplatine gesteckt werden. Auf Fassungen muss allerdings verzichtet werden, da diese mit dem Kragen überstehen.
Details siehe Fotos:
Platine von oben (mit ULN2803A)
Platine von unten
Details von unten
Detail von unten
Ein gewichtiger Nachteil sollte nicht verschwiegen werden: im Fall des Defektes eines der beiden Chips ist die Konstruktion schwer zu reparieren. Das dürfte aber auch dann so sein, wenn man ohne Fassungen gearbeitet hat.
Heute war Zeit, mit dem launchpad etwas herumzuspielen. Vom letzten Pollin-Einkauf lag noch ein LCD herum, ein UC121902 mit einer SPI-artigen seriellen Schnittstelle. In mikrocontroller.net wurde für dieses Display eine Arduino-Bibliothek zur Verfügung gestellt, vielen Dank an den Autor. Damit war es ein Kinderspiel, die mitgelieferten Beispiele mussten nur geringfügig angepasst werden (verwendete Digital-Pins) und liefen dann sofort, siehe Beispielbilder:
launchpad mit dem angeschlossenen LC-Display
Ausgabe eines Demo-Programmes auf dem Display (Die ganz linke Stelle des Displays hat einen Segmentfehler)
Heute habe ich erste Versuche mit dem o. g. Launchpad und der Energia-IDE begonnen. Das Zip mit der Entwicklungssoftware mußte nur entpackt werden. Nachdem das Problem mit dem USB-Anschluss und den CDC-Treibern für das launchpad gelöst war, funktionierte die IDE auf Anhieb. Ich bin begeistert. Sehr übersichtlich, sehr einfach und problemlos zu bedienen. Man kann sofort loslegen und programmieren.
Energia IDE im Test
Die Beispiel sind gut kommentiert und übersichtlich, es gibt ein ausführliches tutorial im Verzeichnis, bei Bedarf dann noch mehr Information im Internet. Die PIN-Belegung des boards kann ausgedruckt werden:
und ist dann sehr hilfreich. Hier läuft gerade das Beispiel „fade“: