∇ [[ schuelerpraktikum:laufschrift:ov-laufschrift| Titelseite Laufschrift ]] ∇\\
★ [[schuelerpraktikum:laufschrift:einfuehrung:ov-einfuehrung|Einführung mit LED und dem URI]] ★ [[schuelerpraktikum:laufschrift:display:ov-display|Das Displayboard]] ★ [[schuelerpraktikum:laufschrift:steuerboard:ov-steuerboard|Steuerboard]] ★ [[schuelerpraktikum:laufschrift:skanner:ov-skanner|Der Skanner]] ★ [[schuelerpraktikum:laufschrift:skannreflektiv:ov-skannreflektiv| Skanner reflektiv]]★ [[schuelerpraktikum:laufschrift:programmierstreifen:ov-programmierstreifen|Der Programmierstreifen]] ★ [[schuelerpraktikum:laufschrift:steuerboardersatz:ov-steuerboardersatz|Ersatzsteuerboard-simpel]] ★ [[schuelerpraktikum:laufschrift:ersatz2:ersatz2#ansteuerschema |Ersatzsteuerboard]] ★
====== Ersatzsteuerbord mit Arduino ======
★ [[schuelerpraktikum:laufschrift:ersatz2:l-ersatz2:l-ersatz2|Layout Ersatzsteuerboard]] ☛
Das hier gestellte Ersatzsteuerbord stellt eine Alternative zu dem aus diskreten Bauelementen aufgebauten. Es zwei eine Ausbaustufen:
- **Minimalausbaustufe:** Textansteuerung allein aus dem fixen ARDUINO-Code. Nur 11 Signale nötig: "Zeile1-7", "A0-3". KEINE Testbrücke auf Displayboard! ((Wenn gesetzt direkte Übergabe vom Skanner an Display nur für Testzwecke!)) Brücke auf Steuerboard statt Transiever einsetzten.
- **Vollausbaustufe:** Der Text wird über den Skanner in den externen Speicher abgelegt und nach Durchgang des Programmierstreifens arduinogesteuert aus dem Speicher sich wiederholend abgerufen. KEINE Brücken! ((Transiver blockt wenn Zeilenvorgaben aus dem Speicher kommen!))
Der eingesetzte Speicherbaustein AS6C62256 ist ein "Static Random Access Memory" (SRAM), also ein statischer Speicher mit wahlfreiem Zugriff, d.h es kann eingeschrieben und ausgelesen werden. Der Speicher kommt nicht komplett ohne Spannung aus zum Halten der Werte, aber es reicht ein minimaler Strom von 1µA, um diese zu bewahren
===== Blockschaltbild =====
| {{:schuelerpraktikum:laufschrift:ersatz2:laufschriftersatzsteuerung-bild.png?direct&600|Schema}}\\ ############################################################# | Das angeschlossene Skannermodul gibt bei einem eingeschobenen Programmierstreifen das Signal "Skan!" mit "H" vor: Dadurch werden die Daten des Programmierstreifens in den nicht flüchtigen Speicher geschrieben. Sobald der Streifen durchgelaufen ist ist das Signal "Skan!" nicht mehr aktiv und der das Steuerbord geht in den zyklischen Lesemodus.\\ Das Schreiben in das SRAM geschieht, wenn sowohl /WE als auch /CE low sind. Das kann zeitlich auf zwei Arten ausgeführt werden, je nachdem welches von Beiden als Erstes low gesetz wird. Hier wird der "WRITE CYCLUS 2" gewählt, wo /WE zuerst auf low gezogen wird und bei stehenden Eingangsdaten dann mit zusätzlichem /CE eingeschrieben wird! \\ {{:schuelerpraktikum:laufschrift:ersatz2:steuerbits.png?direct|Steuerbits}}\\ \\ Das /WE am Speicher schaltet am Speicher dominant zwischen Lesen und Schreiben um. **Um aber __ausserhalb__ des Speichers Lesen und Schreiben klar zu definieren, wird /OE als "Skan!" dauerhaft auf "H" gelegt -- Umgekehrt ist dann ein "L" der Wiedergabezustand, zum Beispiel wenn gar kein Skanner angeschlossen ist oder kein Programmierstreifen präsent ist!**\\ Das Auslesen aus dem Speicher erfolgt adressgesteuert ohne speziellen Steuerbefehl.\\ \\ Achtung: Anders als beim transflektiven Skanner mit Beleuchtung von oben sind beim reflektiven Skanner alle Signale auf "L", wenn kein Programmierstreifen vorhanden ist. Dieses "L", direkt weitergegeben, würde aber unkontrolliert den Speicher überschreiben. Deshalb wird das "Eingabe"-Signal mit einem Inverter invertiert bevor es an den "Whrite enable" /WE Eingang geführt wird: Dann ist "Ausgabe" der Grundzustand ohne Streifen! |
===== Schaltplan =====
| {{:schuelerpraktikum:laufschrift:ersatz2:ersatzsteuerboard.pdf|Schaltplan.pdf}}\\ {{:schuelerpraktikum:laufschrift:ersatz2:ersatzsteuerbord.png?direct&1000|Schaltplan}} | |
==== Logikpegel auf dem Board ====
Die folgende Tabelle beschreibt den Grundzustand ohne eingeführten Skannerstreifen bzw. überhaupt angeschlossenen Skanner:
{{:schuelerpraktikum:laufschrift:ersatz2:logikpegel_und_zustaende_auf_dem_board-ausgabe.png?direct&800|Ausgabezustand}}
Und umgekehrt hier die Zustände beim Einlesen mittels Skanner:
{{:schuelerpraktikum:laufschrift:ersatz2:logikpegel_und_zustaende_auf_dem_board-skan.png?direct&800|Skan!}}
===== Ardino-Code =====
Der Laufschriftcode für das Steuerboard mit Arduino __und__ Speicher muss noch geschrieben werden: Ausgangspunkt kann der [[schuelerpraktikum:laufschrift:steuerboardersatz:ov-steuerboardersatz|☛ Code aus der Minimalansteuerung (oder auch Steuerboard simpel ☚)]] sein. **Aber die an den Arduino geführten Zeilen geben nun nicht mehr den Anzeigeinhalt vor - der wird ja hier aus dem Speicher abgerufen!** D.h. Die vormals als Ausgänge definierten Pins für Zeilensignale müßen nun Eingänge werden. Das Mitlesen von Informationen geschieht dort nur informativ: beispielsweise könnten die eingelesenen Daten über eine der vier seriellen Schnittstellen des Arduino an eien Computer weitergegeben werden. Das zyklische Aktivieren der 15 Spalten am Display kann aus dem bestehenden Code übernommen werden. Eine neue in den Code einzubauende Aufgabe muss es sein, die Adressen zyklisch vorzugeben, deren Speicherinhalt dann auf dem Display zur Anzeige gebracht werden soll. Damit das richtig geschieht muss der Arduino die Anzahl der angesprochenen Adrressen beim Einlesen des Programmierstreifen mit zählen, oder aber das erste übergebene Spaltendatum ist die Anzahl der folgenden Spalten.