Bei unserem Wettkämpfen im Feuerwehrsport nutzen wir verschiedene Stoppuhren, um die Zeiten in den einzelnen Disziplinen zu stoppen. Man kann sich dafür bei verschiedenen Herstellern Equipment kaufen. Für die Zuschauer ist es natürlich auch schön, wenn sie während eines Wertungslaufes die fortschreitende Zeit sehen können und nach dem Lauf die elektronisch gestoppte Zeiten der Bahnen sofort sehen. Bisher fehlte diese Anzeigetafel für die Stoppuhr, welche von anderen Kameraden mit einem Atmega 8 gebaut wurde. Dies wollte ich in einem Winterprojekt ändern. Es folgt eine kurze Zusammenfassung.
Ziele
- So wenig wie möglich Kosten
- Einfaches Protokoll über vorhandene RS232-(Serielle)-Schnittstelle
- Akkubetrieb möglich
- Spritzwassergeschützt
- Halbwegs anschaulich
Begründung
Gerade das erste Ziel „die Kosten“ hat es in sich. So kostet eine Anzeigetafel ohne Stativ bei einem Feuerwehrsport-Ausstatter 2600 €, bei einem anderen ein ähnliches Modell 1000 €. Eine erhebliche Summe, die es definitiv zu schlagen galt. In der Nachbetrachtung konnten die Kosten locker geschlagen werden. Insgesamt sollten weniger als 150 € in dem Projekt stecken – allerdings kommen unzählige Stunden für die Bearbeitung hinzu. Diese haben sich aber in Form von Wissenszuwachs relativiert.
Entwurf
Um die Kosten für das Gehäuse gering zu halten, versuchte ich ein fertiges zu bekommen. Dafür bekam ich von meinem Bruder einen Kasten von einem alten Schaltschrank, der sonst auf den Müll gelandet wäre. Dieser hatte zwar in der Front eine zu breite Scheibe, aber ich hatte erstmal was. Daraufhin entschloss ich mich, die Anzeige auf zwei Zeilen aufzuteilen. Die Ziffernhöhe war somit vorgegeben. Mit Hilfe verschiedener Youtube-Videos konnte ich auch die Aufteilung auf mehrere Ziffern lösen. Die Platinen jeder Ziffer sind identisch und man verbindet nur einen Jumper, um der Platine mitzuteilen, um welche Position es sich handelt. Die Ziffern werden in einer Matrix angesteuert. Es blinken immer jeweils eine Ziffer pro Zeile gleichzeitig. Das menschliche Auge ist aber zu langsam und sieht alles gleichzeitig leuchten.
Ziffern und Platinen
Die Platinen habe ich dann mit KiCad entworfen und bei einem chinesischen Platinenhersteller bestellt. Dafür habe ich unzählige Videos geguckt. Vom Entwurf das Schaltplans bis hin zum Bestellen auf der chinesischen Webseite – für alles findet man passende Videos. Im Nachhinein muss ich sagen, dass ich hier mehre Fehler gemacht habe:
- Ich hätte den Bestückungsdruck größtenteils weglassen sollen. Es hätte von der Optik ein besseres Bild gegeben.
- Die Leiterbahnen sind teilweise zu dünn. Erst später habe ich in KiCad die Funktion des Querschnittberechnen kennengelernt.
- Das Verbinden der Platinen untereinander habe ich mittels Lötverbindungen vorgesehen. Dies war aber eine sehr anstrengende Fummelarbeit. In Zukunft würde ich das mit einem Flachbandkabel und Wannensteckern lösen. Das ist zwar ein klein wenig teuer, aber spart Unmengen von Zeit. Und es erleichtert im Fehlerfall sogar die Fehlersuche.
- Und der größte Fehler: Ich habe + und – vertauscht. Da ich für die Hauptplatine und die Ziffern separate Schaltpläne gemacht habe, ist mir dieser Fehler erst beim Zusammenlöten aufgefallen. Ich habe dann die LEDs einfach verkehrt herum eingelötet.
An sich ist es aber sehr einfach Platinen bei JLCPCB zu bestellen. Der Versand war teurer als das Herstellen der Platinen. Insgesamt 22 €. Die Widerstände habe ich in SMD-Form gewählt. Die LEDs sind in der verdrahteten Variante. Wenn man Geduld hat, lohnt sich die Warterei. Die Ergebnisse sind definit besser als selbstgeäzte Platinen (siehe unten).
Hauptplatine
Bei der Hauptplatine hatte ich am Anfang den Ansatz, dass ich die Eingangsspannung mit einem Festspannungsregler auf 9V normiere und dann damit einen Arduino-Nano speise. Dieser hat auf dem Board einen Stepdown-Wandler auf 5V. Diese 5V nutzte ich dann auch für die restlichen ICs. Außerdem habe ich von den 9V über einen Stepup-Wandler die Spannung auf circa 14 V angehoben, um die LEDs zu versorgen. Das habe ich in KiCad alles vorbereitet und dann auf eine Lochrasterplatine übertragen. Es zeigte sich, dass der 9V-Regler sehr heiß wurde. Meine Schaltung war so also nicht sehr sinnvoll.
Um mir Hilfe zu holen, fragte ich beim Rostocker Hackspace nach. Dort bekam ich ausführliche Hilfe und wurde mit ein paar neuen Buzzwords auf neue Sichtweisen gestoßen. Ich wählte eine andere Schaltreihenfolge und baute noch zusätzlich ein paar Kondensatoren ein. Auf der anderen Seite verzichtete ich auf andere Elemente. Die hatte zur Folge, dass ich jetzt nur einen 5V-Spannungsregler verbaut habe. Dieser hat nur wenige Milliwatt zu versorgen und wird dementsprechend nicht heiß. Die Eingangsspannung leite ich nun direkt an die LEDs. Bei Batteriebetrieb (Autobatterie 12V), leuchten die LEDs ein klein wenig schwächer, als bei Netzteilbetrieb (14V).
Um die Hauptplatine schön zu bekommen, wollte ich versuchen, sie selber zu ätzen. Ich guckte auch dafür wieder dutzende Videos und las Beschreibungen von vielen Webseiten durch. Dann hatte ich mich für die Toner-Übertragung-Variante entschieden. Beim Designen in KiCad war ich auch schon geübter und konnte sogar unterschiedliche Leiterbahnenbreiten nutzen. Als Rohlinge, hatte ich mir Restbestände von Pollin gekauft. Hier ist der einzige Nachteil, dass nur doppelseitige Platinen dabei waren. Ich schruppte also von einer Seite viel Kupfer ab, bevor ich sie in die Säure war. Hier ein paar Sachen, die ich beim nächsten Mal anders machen werden:
- Ätzen bei höheren Temperaturen (Ich habe im Schuppen geätzt. Draußen waren circa -5°C. Das Ätzbad sollte aber 45°C haben. Es war sehr schwierig, es so warm zu halten.)
- Leiterbahnen und Abstände so groß wie möglich. An einigen Stellen hatte die Säure schon fast die ganze Leiterbahn weggefressen, obwohl an anderer Stelle noch nichtmal angefangen war.
- Lötpads größer machen. Ich habe fast nur die vorgegebenen Footprints verwendet. Allerdings waren die Lötpads teilweise so klein, dass mein 0,8mm-Bohrer sie von der Platine löste. Sie hingen dann nur noch an der Leiterbahn (ist auf dem Fotos zu sehen).
- Aussparungen zum Festschrauben im Design aufnehmen.
Das Bohren und Löten hatte dann super geklappt. Beim nächsten Mal würde ich aber IC-Fassungen verwenden. Ich hatte zweimal das Problem, dass ein IC kaputt war. Diesen dann wieder auszulöten, dauert und macht wenig Spaß.
Gehäuse
Der nächste Schritt war dann das Zusammenbringen aller Teile. Dafür habe ich mir ein paar Aluwinkel mitbringen lassen. Für die Platinen schnitt ich dann Gewinde an die entsprechenden Stellen. Nach dem Verschrauben verlötetet ich die Platinen untereinander. Dann bemerkte ich, dass der Kasten doch doof ausgesehen hat. Er war viel zu breit für die Anzeige. Ich entschied man also doch, diesen zu kürzen. Mit Stichsäge auf langsamster Stufe ging das ganz gut. Ich klebte dann die Wände neu zusammen und setzte die Alu-Winkel ein. Zusätzlich kamen noch die Schalter und Steckverbindungen ins Gehäuse. Für die Rückseite hatte ich dann noch ein großes Plasteteil übrig. Allerdings mit einem Schönheitsfehler an einer Stelle. Dort sägte ich dann ein Fenster aus – somit kann man meine Platinenarbeit von hinten bewundern.
Für die Software musste ich dann noch ein wenig meine C-Kenntnisse auffrischen. Die Ansteuerung der Taster löste ich mit Callbacks, welches ich zum letzten Mal in der Uni in C geschrieben hatte. Auch hier hatte ich dann noch ein paar Probleme beim Testen. Ich war schon kurz vor dem Verzweifeln, aber dann merkte ich, dass mein RS232-USB-Adapter anscheinen defekt ist. Es führte immer wieder zu komischen Ergebnissen und einem heißen IC.
Zu Hause funktioniert der Kasten nun. Es fehlt noch ein Test mit der richtigen Stoppuhr, den werde ich im Sommer nachreichen. Ich habe viel gelernt und würde bei einer größeren Variante ein paar Sachen anders machen:
- Erst Gehäuse, dann Platinen – mein jetzigen Gehäuse geht zwar, aber es könnte hübscher, robuster und wasserfester sein.
- Anstatt Matrix lieber zustandsbehaftete Ziffern. Jede Ziffer würde dann ein eigenes Schieberegister bekommen.
- Microcontroller auf Platine. Statt eines Entwicklungs-Boards (Arduino Nano), könnte man den ESP auch direkt auf die Platine packen.
Links
- KiCad- und Software-Dateien des Projekts auf Github
- Hackspace Rostock
- Toner-Transfer-Methode – Layout auf eine Platine übertragen
- Platinen ätzen – Ätzmittel
- Platinen ätzen mit Video
- KiCad Tutorial für Anfänger #16 – Designrules, Routen, Durchkontaktierung und Kupferplanes – YouTube
- Eigene Platinen entwerfen – KiCAD-Grundlagen | haus-automatisierung.com – YouTube
- Digitaluhr selber gebaut, Modulbauweise, DIY – YouTube
- BitBastelei #177 – 7-Segment-„Cloud“-Anzeige (1/2) – YouTube
1 thought on “LED-Stoppuhr für Wettkämpfe”