Start
Experimente
Grundlagen
Produkte
- ES-M32
-- Erster Test
-- USB
-- Bascom
-- RAM
-- ADC
-- Ports
-- Relais -- Morsen -- Datenlogger -- SIOS -- ASCII -- mV-Logger -- I/O12/24 V -- Bootloader
Neues
Impressum
|
ES-M32
Ansteuerung des Relais-Interface
Für eine Mikrocontrollersteuerung mehrerer Motoren wurden Leistungsausgänge benötigt. Das Relais-Interface
wird mit einer seriellen Schnittstelle mit 9600 Baud im Normalfall
direkt durch einen PC gesteuert. Das Protokoll ist der Hilfedatei des
Programms Relais.exe
beschrieben. Da das ES-M32 ebenfalls eine serielle Schnittstelle
besitzt liegt es nahe, das Relais-Interface als Leistungsmodul für
den Mikrocontroller zu verwenden. Die Ansteuerung ist nicht aufwendig.
Man sendet fünf Bytes, darunter die eingestellte Adresse und ein
Datenbyte für alle acht Relais. Damit die Ansteuerung im
Hauptprogramm jedes Relais einzeln behandeln kann wurde ein Array
Rel(8) gebildet. Die Sub Ausgabe steuert das Relaisinterface und
parallel dazu die Ausgänge an Port C.
|
Baud = 9600 Dim Daten As Byte Dim Rel(8) As Byte
Declare Sub Ausgabe
Sub Ausgabe Daten = 0 If Rel(1) = 1 Then Daten = Daten + 1 If Rel(2) = 1 Then Daten = Daten + 2 If Rel(3) = 1 Then Daten = Daten + 4 If Rel(4) = 1 Then Daten = Daten + 8 If Rel(5) = 1 Then Daten = Daten + 16 If Rel(6) = 1 Then Daten = Daten + 32 If Rel(7) = 1 Then Daten = Daten + 64 If Rel(8) = 1 Then Daten = Daten + 128 'Ausgabe Relais-Interface Adresse 1 Print Chr(27); Print Chr(1); Print Chr(64); Print Chr(daten); Print Chr(0); 'Zusätzlich Direktausgabe an Port C Portc = Daten Waitms 10 End Sub
Das Hauptprogramm zeigt ein Beispiel
für die Verwendung der Relais. Für die Bedienung werden die
Tasten S1 bis S4 auf dem ES-M32 eingesetzt. S1 und S2 lösen
jeweils einen Impuls von einer Sekunde an Relais 1 und Relais 2 aus. S3
und S4 steuern einen Motor über Relais 3 (vorwärts) und
Relais 4 (rückwärts). Die Position wird durch ein Poti
gemeldet und über ADC0 überwacht. Der Motor führt jeweils bis zu einem vorgegebenen Grenzwert.
|
Do 'S1 shaltet Relaus 1 für 1 s If S1 = 0 Then Rel(1) = 1 Ausgabe Waitms 500 Rel(1) = 0Do 'S1 shaltet Relaus 1 für 1 s If S1 = 0 Then Rel(1) = 1 Ausgabe Waitms 500 Rel(1) = 0 Ausgabe End If 'S2 shaltet Relais 2 für 1 s If S2 = 0 Then Rel(2) = 1 Ausgabe Waitms 500 Rel(2) = 0 Ausgabe End If 'S3 schaltet Relais 3 bis Endwert > 900 If S3 = 0 Then Rel(3) = 1 Ausgabe Timeout = 0 Do Analogwert = Getadc(0) 'Position messen Timeout = Timeout + 1 If Timeout = 5000 Then Analogwert = 1000 Waitms 1 Loop Until Analogwert > 900 'ca. 4,5 V Rel(3) = 0 Ausgabe End If 'S4 schaltet Relais 4 bis Endwert < 100 If S4 = 0 Then Rel(4) = 1 Ausgabe Timeout = 0 Do Analogwert = Getadc(0) 'Position messen Timeout = Timeout + 1 If Timeout = 5000 Then Analogwert = 0 Waitms 1 Loop Until Analogwert < 100 'ca. 0,5 V Rel(4) = 0 Ausgabe End If Loop
Das Beispielprogramm steuert
gleichzeitig alle acht Relais und die Ausgänge am Port C. Wenn
für eine Anwendung nur ein Relais benötigt wird bietet sich
das universelle Umschaltrelais
an. Der Eingang "PC" kann direkt von einem Controller-Port gesteuert
werden. Das verwendete Relais verfügt über einen zweifachen
Umschaltkontakt.
|
Über die serielle Schnittstelle könnte man auch ds RD30
an das ES-M32 anschließen , sogar zusammen mit dem
Relais-Interface. Prinzipiell kann der Mikrocontroller Aufgaben
übernehmen, die zurvor mit einem PC gelöst wurden. Die
Umsetzung eines vorhanden VB- Programmbeispiels in eine entsprechendes
Bascom-Programm ist nicht schwierig.
|
|