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.