^

Minimal-Steuerprogramm in Q-Basic

 


    4 Zeilen Zeitsteuerung in Q-Basic (so einfach ist das!):
    Das Programm steuert eine Relaiskarte, die an die parallele Schnittstelle (LPT 1) angeschlossen ist.

      OUT 888, 1
      DO
      LOOP UNTIL TIME$ = "12:34:56"
      OUT 888, 0

    Wie arbeitet das Programm?

    Zeile 1

    An die Portadresse 888 (dort befindet bei den meisten PCs das Datenregister von LPT 1) wird ein Byte mit dem Wert 1 ausgegeben. Das bewirkt das Schließen von Relais 1 und Öffnen der Relais 2 - 8. Hinweis: 888 ist in hexadezimaler Schreibweise = 378.

    Zeile 2

    Beginn einer Schleife

    Zeile 3

    So lange zum Beginn der Schleife springen bis die Zeit (von der Funktion TIME$ geliefert) gleich 12:34:56 ist.

    Zeile 4

    Ein Byte mit dem Wert 0 an das Datenregister von LPT 1 ausgeben; Relais 1 öffnet.

    Wozu könnte das Programm dienen?
    Angenommen, wir besitzen ein einfaches Ladegerät ohne automatische Abschaltung. In das Ladekabel wird Relais 1 eingeschleift. Unser PC zeigt eine Uhrzeit von 18:00 Uhr. Nach 14 Stunden soll die Ladung beendet werden. Wir ändern 12:34:56 in 08:00:00. Um 8:00 Uhr wird der Ladestromkreis unterbrochen.
    ACHTUNG: Das Programm verzeiht keine Fehler. Bei 8:00:00 wird nie abgeschaltet (führende Null fehlt) ebenso bei 08:10:62.

    Wie können wir das Programm ausbauen?

    • Benutzerabfrage der Abschaltzeit (einfach).
    • Anzeige von aktueller Zeit und Abschaltzeit (einfach).
    • Möglichkeit zum Abbrechen (einfach).
    • Kontrolle der Portadresse(n) (schon etwas schwieriger).
    • Abfangen von Eingabefehlern (etwas aufwendiger).
    • Mausbedienung (???; andere Baustelle).

    Wo können wir mehr erfahren?
    ... im Tutorial, über die Ansteuerung der seriellen und parallelen Schnittstelle.

    Wie komme wir an eine Relaiskarte?
    Für weniger als 5 Euro können wir sowas selber bauen: Die ausführliche Bauanleitung für die Einfach-Relaiskarte zeigt, wie es geht!


Zur Startseite

 

Haftungsausschluss    Datenschutzerklärung    Impressum

© Frank Steinberg