Aufbau der Stoppuhr

Die Hardware gliedert sich in folgende Bestandteile:
  • Display
  • Buttons mit Start/Stop und Attention
  • Hauptplatine mit Spannungsteiler, Piepser und (nur in der ersten Version) Interface zum C64 Drucker
  • Arduino Mega-Board – auf die Hauptplatine aufgesteckt
Features:
Natürlich - die Anzeige der laufenden Zeit. Und: in der History die letzten vier gemessenen Runden. Im Menü können verschiedene Einstellungen gemacht werden, wie Piepser an/aus, Polarität der Lichtschranke, usw. die im EEPROM des Atmega-Controllers automatisch gespeichert werden.

Ursprünglich sollte das Logging jeder Zeit an einem alten C64 Drucker (Citizen IDP-560) ausgegeben werden. Diese Funktionalität ist noch im Code enthalten, wird jedoch in zukünftigen Versionen entfallen, da diese Aufgabe die PC Software übernommen hat. Den Schaltplan habe ich der Vollständigkeit halber mit dokumentiert. Die Quelle dazu hier: www.rantakokko.net

Die erste Version der Stoppuhr wurde auf Lochrasterplatinen aufgebaut. Für die Weiterentwicklung sind Platinenlayouts in Arbeit, der Aufbau soll im Winter 2015 erfolgen. Zum Einsatz kommt die neue Uhr als redundates System, um einen zweiten Pfad im Falle von Hardwarefehlern oder unentdeckten Softwarefehlern zu haben.

Buttons Board

Die Taster SW3 bis SW7 sind zur Steuerung des Menüs. Welche Taste gedrückt ist, wird durch Messung der Spannung V_Button am ADC bestimmt.

SW1 und SW2 sind direkt an den Controller angeschlossen und lösen bei Betätigung einen Interrupt aus.

LCD Backplane

Um Leitungen und damit auch Controller-Pins zu sparen, kommt ein Schieberegister zum Einsatz, welches an der SPI hängt. Lediglich die Enable und Register Select Lines sind direkt an den Controller angeschlossen.

Kabel und Buchsen

Am Gehäuse sind DIN-Buchsen verbaut, um die Lichtschranke anzuschließen und am Test-Port messen zu können. Der Test-Port bietet die Möglichkeit verschiedene Signale zu messen und bestimmte Pins zu debugging Zwecken über die Software anzusteuern. Standardmäßig ist das Heartbeat-Signal nach außen geführt, welches bei Eintritt in den Timer 2 umgeschalten wird und daher in der halben Frequenz schwingt.

Schnittstelle für CBM64 Drucker

Wie schon erwähnt sollte an einem Kassenzetteldrucker jede gemessene Zeit geloggt werden. Ich hatte noch einen Citizen IDP-560 Drucker aus der C64 Zeit im Keller, der für diese Aufgabe geeiget schien. Das Interface besteht aus einem Inverter, dem 7406. Erwähnenswert ist nur dass die bidirektionale Data-In/Out Leitung des IEC-Busses auf zwei Leitungen am Arduino aufgeteilt sind.

Buttons_board


Mainboard

Nichts besonderes, im Wesentlichen stellt es die Verdrahtung des Arduino-Boards an die Stecker dar. Die Pegel der Lichtschranke werden über einen Spannungsteile angepasst. Bei 10V Eingangsspannung liegen am Pin ca. 2.8V an.
Der Buzzer BU1 wird beim Start jeder Messung über Q1 kurz durchgeschalten.
Zum Vergleich mit einer zweiten Uhr, wie z.B. einer (alten) Armbanduhr steht der Anschluß „Extern Watch“ als open Drain zur Verfügung. Bei Unterbrechung der Lichtschranke 1 wird Q2 für einige ms durchgeschalten.
Ist ein Netzteil mit einer Spannung größer 8V an das Arduino Board angeschlossen zeigt D1 die Bereitschaft der Lichtschranke an. Grundsätzlich funktionieren die SICK Lichtschranken bis zu einer Spannung von 7V, wie Versuche gezeigt haben. Um jedoch eine robuste Funktion zu gewährleisten sollte die Versorgungsspannung nicht unter 10V liegen.

Typsilandscape Gallery Home Projects Garage Archive