Beispiele

Es folgt eine kleine Liste von Beispielen, damit die Funktionsweise verständlicher wird.
Wir veröffentlichen auch gerne Beispiele, die wir zugeschickt bekommen...

Hier nochmal der Hinweis:
Bevor Bauteile aus der Bibliothek plaziert werden können, muss einmalig das ULP ('init-msps.ulp') ausgeführt werden.
Ansonsten kommt es zu der Fehlermeldung "Bauteil xyz hat kein Package"...

 

Einfache Logik-Verknüpfung

Logik1

Erläuterung:

Wenn Eingang#0 UND Eingang#1 auf '1' sind, ist Ausgang#0 auf '1'. (UND)

Wenn Eingang#0 NICHT GLEICH Eingang#1 ist, ist ist Ausgang#1 auf '1'. (XOR)

 

Einstellbare PWM-Ausgabe

 

pwm1

Erläuterung:

Der Wert von Analogeingang#0 (0-1023) wird durch 10 geteilt und als PWM ausgegeben.
(Werte > 100% werden von der PWM auf 100% begrenzt)

Der VALUE von MATH1 bestimmt die Rechenoperation (hier A/B).

 

LCD-Ausgabe

 

lcd

Erläuterung:

Dies ist eine Erweiterung des vorherigen Beispiels.

Der PWM-Wert wird zusätzlich periodisch auf dem LC-Display ausgegeben.

Der VALUE von LCD-1 bestimmt die Ausgabe:
$P100_ --> alle 100*10ms = jede 1 sek eine Ausgabe
$L0_0 -->Position (Spalte [0-15], Zeile [0-1] )auf dem LC-Display
$W --> Zahlenwert (16Bit Wert)

 

Variables Lauflicht

lauflicht

Erläuterung:

Der Dekadenzähler CNT1 steuert jeweils eine LED an (Q0 - Q7).

Ist Q7 bzw. Q0 erreicht, schaltet sich die Zählrichtung um (DIR).

Der Oszillator OSZ1 bestimmt das gesammte Timing.
Die Pulsdauer kann durch VAR1 verändert werden.

Man kann also mit den DigEing#0 & DigEing#1 die Geschwindigkeit des Lauflichts einstellen.

Auf dem LC-Display wird die Geschwindigkeit (LCD-2) und der Zählerstand (LCD-1) angezeigt.

 

Steuerung Garagentor

Dies komplexere Beispiel zeigt eine Motor-Steuerung für ein Garagentor.

Die Steuerung kennt 3 Zustände (AUF, AB, STOPP).
Durch einen Taster an DigEin#0 kann zwischen den Zuständen gewechselt werden.
Dies geschieht in der Reihenfolge: AUF, STOPP, AB, STOPP

Die max. Fahrdauer beträgt 10 Sekunden.

Wird der Endschalter betätigt, stoppt der Motor sofort.

Garage

Erläuterung:

Alle Zeitglieder (EAFG1-5) werden hier als Ausschaltverzögerung betrieben,
d.h. eine pos. Flanke an Tr erzeugt eine '1' an Q für eine eingestellte Zeit.
EAFG1-2 haben als Zeitbasis Sekunde (VALUE = 'sek'),
EAFG3-5 haben 10ms Zeitbasis (VALUE = 'nichts' ) (Default)

Der Dekadenzähler CNT1 dient als State-Machine.

Jede pos. Flanke an CNT von CNT1 ergibt einen anderen Betriebszustand an Q0-Q3.
Q0 = STOPP, Q1 = AUF, Q2 = STOPP, Q3 = AB

Eine entsprechende pos. Flanke wird erzeugt durch:
- den Eingangstaster
- den Endschalter
- max. Fahrdauer erreicht

Die Zustände Q0 & Q2 erzeugen ein 100ms Resetimpuls für EAFG1 & EAFG2.

Der jeweilige Zustand wird auf dem LC-Display angezeigt (2. Display-Zeile)
Zusätzlich wird auch der Zählerstand dargestellt (1. Display-Zeile)

 

Ampelsteuerung - State-Machine

Beispiel einer State-Machine an Hand einer Ampelsteuerung.

Es werden zwei Ampeln angesteuert.

Mit DigEing#0 und DigEing#1 kann die Schaltgeschwindigkeit beeinflusst werden.
DigEing#2 stoppt den internen Taktgeber.

 

ampel

 

Erläuterung:

Das Funktionsprinzip ähnlich wie beim Lauflicht-Beispiel.
Der Dekadenzähler CNT1 bestimmt den jeweiligen Betriebszustand,
die Logikgatter an den Ausgängen schalten die entsprechenden LEDs.

Zustände:
Q0 = Ampel 1 RT - Ampel 2 RT
Q1 = Ampel 1 RT/GE - Ampel 2 RT
Q2 = Ampel 1 GN - Ampel 2 RT
Q3 = Ampel 1 GE - Ampel 2 RT
Q4 = Ampel 1 RT - Ampel 2 RT
Q5 = Ampel 1 RT - Ampel 2 RT/GE
Q6 = Ampel 1 RT - Ampel 2 GN
Q7 = Ampel 1 RT - Ampel 2 GE

Infrarot-Empfänger (RC5-Code) auswerten

Mit der microSPS lässt sich sehr einfach eine Auswertung des RC5-Codes implementieren. (ab V0.51)

Im folgenden Beispiel wechselt der Zustand von DigitalAusgang#0 mit jedem Drücken der 'Power'-Taste der Fernbedienung.

 

rc5

Erläuterung:

Das Symbol IR1 stellt den Infrarot-Empfänger dar. Als Ausgang gibt dieser u.a. die RC5-Geräteadresse (ADR) und das RC5-Kommando (CMD) aus.
Das VALUE kann als Gerätefilter benutzt werden. (hier 0 = TV). So lassen sich leicht Empfänger für unterschiedliche Geräte einbinden...

Der CMD-Ausgang wird durch CMP1 mit dem Wert 12 (Power) verglichen. Bei Gleichheit wird das Stromstossrelais S1 getriggert, welches den Ausgang kippen lässt.

Komplexes Beispiel: Heizungssteuerung

Die Kesseltemperatur wird nach der Aussentemperatur gefahren:

Aussen kalt --> Kessel heiss

Aussen Warm --> Kessel kalt

Automatische Nachtabsenkung

Partyschaltung

 

rc5

Hinweis:

Die Steuerung greift elektrisch auf die Heizung zu, wie hier beschrieben.

 

 

Warning: include(../php/commenter/commenter.php): failed to open stream: No such file or directory in /var/customers/webs/hisystems/mc.mikrocontroller.com/de_sps/beispiele.php on line 143 Call Stack: 0.0001 228304 1. {main}() /var/customers/webs/hisystems/mc.mikrocontroller.com/de_sps/beispiele.php:0 Warning: include(): Failed opening '../php/commenter/commenter.php' for inclusion (include_path='.:/usr/share/php/:/usr/share/php5/') in /var/customers/webs/hisystems/mc.mikrocontroller.com/de_sps/beispiele.php on line 143 Call Stack: 0.0001 228304 1. {main}() /var/customers/webs/hisystems/mc.mikrocontroller.com/de_sps/beispiele.php:0