Elektronik-Labor Notizen Projekte Labortagebuch
20.2.20:
LED-Kerze mit IR-Steuerung
Schon länger habe ich mich gefragt, wie man LED-Kerzen mit
Fernbedienung bauen kann, die so preiswert sind, dass man sie sogar in
Mengen an den Weihnachtsbaum hängt. Ich war schon in Versuchung, sowas
zu kaufen, aber der Gedanke an die vielen Batterien hat mich davon
abgehalten. Jetzt habe ich ein vergleichbares Teil in die Finger
bekommen, das allerdings sogar drei Farben hat, die man in
verschiedenen Mischungen und Verläufen fernschalten kann. Innen finden
sich ein IR-Empfänger, ein Mikrocontroller mit acht Beinchen, drei
Vorwiderstände und die Dreifarben-LED.
Die LED-Kerze stammt aus dem billigsten Laden unter den preiswertesten
Diskountern. Also muss auf dem Hersteller ein enormer Preisduck
gelastet haben. Wie hat er das wohl geschafft. Der Mikrocontroller
trägt keinerlei Beschriftung. Aber da kam mir ein Verdacht. In letzter
Zeit ist viel die Rede von den 3-Cent-Controllern der Firma Padauk.
Einige Maker haben schon damit experimentiert, und sogar der freie
C-Compiler SDCC wurde schon dafür angepasst. Mein Freund Rainer hat ihn
auch schon auf dem Tisch. Deshalb habe ich ihn gefragt, wo da die
Anschlüsse der Betriebsspannung liegen. Beim PMS154C passt alles genau,
VDD und GND an 1 und 8, drei PWM-Ausgänge an 5,6, und 7. Es gibt diese
Typen als Flash-Controller, als OTP-Controller und vermutlich in großen
Stückzahlen auch maskenprogrammiert. Wenn der Controller dann bei ca. 3
Ct liegt, ist er zumindest nicht das teuerste Teil in der Kerze.
Aber irgendwie könnte man mit der Platine auch ganz andere Sachen
machen als nur eine bunte LED steuern. Es ist praktisch eine
vollständige Dreikanal-Fernsteuerung. Sie könnte auch einen kleinen
Roboter steuern oder ein Radio, drei Relais oder noch ganz andere
Dinge. Es gibt immer noch was zu tun…
Lichterkette mit Timersteuerung, von Dirk Reismann
Das Bild habe ich in einer Lichterkette aufgenommen, die in den
Aldi-Filialen verkauft wurde. Hierbei könnte es sich auch um einen der
"3-Cent" Mikrocontroller handeln. Leider ist der Controller nicht
beschriftet. Da an dieser Schaltung nicht nur ein einfacher
Ein-Aus-Schalter, sondern auch noch eine Timer-gesteuerte Zeitschaltuhr
sitzt, könnte ich mir vorstellen, dass dort so ein Mikrocontroller
eingebaut wurde. Nach meinen Messungen mit dem Spannungsprüfer habe ich
an Pin 1 VCC und an Pin 8 GND gefunden. Unten Links (Pin 4) dürfte laut
Datenblatt eine Art "Reset" zu finden sein. Diese liegt wie im Bild zu
sehen auf GND (V-).
18.2.20:
Hardware- oder Softwarefehler
Kennen Sie das auch? Oft weiß man nicht, ob man einen
Hardware- oder einen Softwarefehler suchen soll. Gerade arbeite ich am
Spielekalender 2020 und versuche, die letzten kleinen Fehler aus der Firmware
zu entfernen. Dabei kommt es immer mal wieder zu Situationen, wo völlig unklar
ist, woher der Fehler kommt. Ach so, die Batterie ist leer, sodass der
Spannungswächter sporadisch zuschlägt! Das war also ein Hardware-Problem, da
kann ich ja lange im Quelltext suchen.
Ein weiteres Problem hat mich verfolgt und sich am Ende ebenfalls
als Hardwarefehler herausgestellt. Ich hatte nämlich zuerst den Aufbau auf
einem weißen Steckboard, den ich schon seit Jahren verwende. Inzwischen waren
aber die Kontakte schon so schlecht geworden, dass die Übergangswiderstände
einen Einfluss auf den Programmablauf nehmen konnten. Deshalb habe ich jetzt
alles auf einem neuen, gelben Steckboard neu aufgebaut. Und jetzt funktioniert
endlich alles, wie es soll. Die gelben Steckplatinen mit verbesserten Kontakten
waren speziell für die kritischen Radioprojekte ausgesucht worden. Aber hier
haben sie sich auch bei dem weniger kritischen Mikrocontroller bewährt.
14.2.20:
Serielle Signalanalyse
Auf
der Suche nach einem Timingfehler in einem Projekt mit einem FT232 und einem
Mega168 wollte ich die serielle Schnittstelle belauschen. Die Frage war, ob die
Zeichen schneller kommen, als sie verarbeitet werden können. Ein erster Versuch
mit dem Oszilloskop war nicht erfolgreich, weil zu viele Zeichen beteiligt
waren. Deshalb habe ich einen Arduino Uno mit Bascom zur Zeiterfassung
programmiert. Der Eingang RX wird mit dem RX-Eingang im Zielsystem verbunden,
um den Datenverkehr zu belauschen. Timer 1 wird als Zeitmesser verwendet und nach jedem empfangenen Zeichen
ausgelesen und dann auf Null gesetzt. Insgesamt werden 100 Bytes empfangen und
gespeichert. In einem zweiten Array werden die zugehörigen Zeiten abgelegt.
Nach 100 Bytes wird alles an das Terminal gesendet.
$regfile =
"m328def.dat"
'ATmega328p
$crystal =
16000000
'16 MHz
$baud = 115200
$hwstack = 16
$swstack = 16
$framesize = 64
Dim d As word
dim ch as byte
dim n as word
dim rs(100) as byte
dim dt(100) as word
Config Timer1 = Timer , Prescale = 64
OPEN "com1:" for binary as #1
start timer1
do
for n= 1 to 100
get #1, ch
dt(n) = timer1
timer1=0
rs(n) = ch
next n
for n= 1 to 100
d = 4 * dt(n) 'Verzögerun in µs
print " "; d;" ";
ch = rs(n)
put #1, ch 'Empfangenes Zeichen
next n
loop
Hier ein Ergebnis:
62172 k 196 a 104 x 136 120 2 112 9 120 2 112
Die
gesendeten Daten waren: "kax 292". Die gemessenen Zeiten zeigen,
dass im schnellsten Fall 112 µs zwischen zwei Bytes liegen. Das passt relativ
gut zur Übertragungsgeschwindigkeit 115200 Baud. Am Ende konnte ich übrigens
feststellen, dass kein Timingproblem existierte. Aber ich hatte einige unnötige
Zeilen im Programm, die zusätzliche Zeichen gesendet haben.
12.2.20:
Lautsprecher aus dem Smartphone
Wer ein altes Samsung-Smartphone zerlegt, stößt auf eine
integrierte Lautsprechereinheit mit Kopfhörerbuchse. Auf den
ersten Blick sieht es so aus, als wären alle Bauteile in Plastik
eingegossen. Aber heute ist mir zufällig ein kleiner Ritz aufgefallen.
Mit etwas Gewalt konnte ich zwei Hälften der Einheit trennen. Und da
kommt der eigentliche Lautsprecher zum Vorschein.
In der Vergrößerung erkennt man eine rechteckige Schwingspule und einen
rechteckigen Magneten. Die Membran ist wie bei einem großen
Lautsprecher federnd aufgehängt und hat nach oben und unten gleich viel
Bewegungsraum. Inzwischen konnte ich zwei Drähte anlöten. Der kleine
Lautsprecher hat einen guten Klang, wenn man ihn in eine Schallwand
oder eine Box einbaut.