Eingespanntes Werkzeug in einer Presse


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Multifunktions-Zeitrelais mit PIC10F200

Das Multifunktions-Zeitrelais, das wir jetzt mit der folgenden Schaltung kreieren werden, soll insgesamt vier Zeitfunktionen zur Verfügung stellen. Je nachdem wie die Parameter eingestellt werden, sollen die Funktionen Einschaltverzögerung oder Ausschaltverzögerung benutzt werden können. In drittem Modus sollen die beiden Funktionen gleichzeitig einstellbar sein. Und schließlich soll es möglich sein, dass die Schaltung als Impulsgeber fungiert.
Die Parametrierung erfolgt extern. Die zentrale Rolle der Schaltung übernimmt der Mini-Mikrocontroller PIC10F200. Der Chip stellt vier „Beinchen“ zur Verfügung. Drei von ihnen werden in der Schaltung als Eingänge in Anspruch genommen. Das vierte „Beinchen“ definieren wir als Ausgang.
Zwei Eingänge sind Parameter-Eingänge. Je nachdem, wie die beiden Eingänge verdrahtet sind, steht eine bestimmte Zeitfunktion zur Verfügung. Die Parameter bestimmen folgende möglichen Modi der Schaltung:
– Einschaltverzögerung
– Ausschaltverzögerung
– Ein- und Ausschaltverzögerung
– Impulsgeber.
Mit dem Ausgang wird ein Transistor geschaltet, an dem ein Relais angeschlossen wird. Das Relais stellt einen potenzialfreien Wechsler-Kontakt zur Verfügung. Mit dem Relais kann man dann beliebige Abnehmer, die auch andere Spannungen benötigen, schalten. In unserer Testschaltung übernimmt die Rolle eines Abnehmers eine Leuchtdiode, der zur Strombegrenzung ein Vorwiderstand vorgeschaltet wird.

PIC10F200

PIC10F200

Der Mikrocontroller PIC10F200 verfügt über sechs aktive Pins. Davon stehen uns vier als Eingänge oder Ausgänge zur Verfügung. In dieser Schaltung werden alle vier Pins verwendet. Von den acht Pins des Bausteins sind zwei ohne Funktion.

PIC10F200

Relais JS-5N-K

Das Printrelais JS5N-K ist ein monostabiles Relais mit einem Wechsler-Kontakt. Die Spulenspannung beträgt 5VDC.

Relais JS5N-K



Technische Daten:
Nennspannung Spule: 5 VDC
Widerstand der Spule: 112 Ω
Kontaktart: 1 Wechsler
Schaltspannung: 150 VDC, 400 VAC
Schaltstrom (max.): 10 A
Min. Temperatur: -40 °C
Max. Temperatur: +85 °C
Länge: 29 mm
Breite: 10 mm
Höhe: 12.5 mm

Relais JS5N-K, Pinbelegung, Ansicht von unten

Pinbelegung, Ansicht von unten


Transistor BD135-16

Transistor BD135-16

Für die hier gestellte Aufgabe ist der Transistor BD135-16 stark überdimensioniert. Er kann Abnehmer bis zu 1,5 A schalten. Möchte man tatsächlich solche Ströme mit dem Transistor bedienen, wäre ein Kühlkörper notwendig.

Transistor BD135-16

Der Schaltplan

Der Schaltplan

Der Schaltplan

Das Programm

// ***************************************************************************
// Multifunktions-Zeitrelais mit PIC10F200
// MPLAB X IDE v6.00
// XC8-Compiler 2.4
// ***************************************************************************
             
#include <xc.h>
#include <stdbool.h>

                                           // PIC10F200 Konfiguration  
#pragma config WDTE = OFF                  // Watchdog Timer 
#pragma config CP = OFF                    // Code Protect  
#pragma config MCLRE = OFF                 // Master Clear (GP3/MCLR) 

#define CLEAR_BIT(Var,BitNr) ((Var) &= ~(1 << BitNr))

#define _XTAL_FREQ 4000000                 // Taktfrequenz 
#define Relais_Ausgang  GPIObits.GP0       // GP0 ist Relais-Ausgang 
#define Schalter_Ein_Aus  GPIObits.GP1     // GP1 ist Ein-Aus-Schalter 
#define Codierschalter_1  GPIObits.GP2     // GP2 ist Codierschalter 1 
#define Codierschalter_2  GPIObits.GP3     // GP2 ist Codierschalter 2 

_Bool Schaltung_Aktiv;                     // Hilfsmerker Schaltung wurde aktiviert 
unsigned char Modus;                       // gewählter Modus (Codierschalter) 
                                           // 00, Modus=0 --> Einschaltverzöegerung 
                                           // 01, Modus=1 --> Ausschaltverzögerung 
                                           // 10, Modus=2 --> Ein- und Ausschaltverzögerung 
                                           // 11, Modus=3 --> Impulsgeber 

void main(void) {
    
    Relais_Ausgang = 0;                    // Relais AUS 
    TRIS = 0b00001110;                     // GP0=Ausgang, GP1=GP2=GP3=Eingang 
    
    Modus = 3;                             // Modus vorbelegen 
    if (Codierschalter_1 == false) CLEAR_BIT(Modus,0);    // Modus bestimmen, Bit 0 löschen 
    if (Codierschalter_2 == false) CLEAR_BIT(Modus,1);    // Modus bestimmen, Bit 1 löschen 

    Start:                                 // Sprungziel für goto Anweisung 
    if (Schaltung_Aktiv == 0) {            // Programm-Ablauf inaktiv?  
        if (Schalter_Ein_Aus == 0) {       // Schaltung mit Ein-Aus-Schalter aktiviert ? 
            Schaltung_Aktiv = 1;           // Programm läuft 
            if (Modus == 1) {              // Ausschaltverzögerung eingestellt ? 
                Relais_Ausgang = true;     // Relais unverzögert einschalten 
                goto Schritt_2; }          // Sprung zum Schritt_2 (ohne Verzögerung) 
            __delay_ms(2500);              // Einschaltverzögerung 
            Relais_Ausgang = true;         // Relais Ein 
        }
    }
    
    Schritt_2:                             // Sprungziel Schritt_2 
    if (Schaltung_Aktiv == true) {         // Programm-Ablauf aktiv? 
        if (Schalter_Ein_Aus == 1) {       // Ein-Aus-Schalter abgeschaltet? 
            Schaltung_Aktiv = 0;           // Programmablauf auf beendet vorbelegen 
            if (Modus == 0) {              // Einschaltverzöegerung eingestellt? 
                Relais_Ausgang = false;    // dann, Relais sofort Aus 
                goto Start;                // Zurück, auf Neustart warten 
            }
            __delay_ms(5000);              // Ausschaltverzögerung abwarten 
            Relais_Ausgang = false;        // relais Aus 
        }    
        if (Schalter_Ein_Aus == 0) {       // Ein-Aus-Schalter An? (Impulsgeber) 
            if (Modus == 3) {              // Impulsgeber Modus eingestellt ? 
                Schaltung_Aktiv = 0;       // Merker vorbelegen 
                __delay_ms(5000);          // Zeit (in diesem Fall Ein-Zustand) 
                Relais_Ausgang = false;    // Relais Aus 
            }
        }        
    }
    
    goto Start;                            // Abfragen und Schritte wiederholen 
}        

         

Die Testschaltung

Testschaltung

Multifunktions-Zeitrelais mit PIC10F200 - Testschaltung

Die wichtigste Variable, die im Programm berücksichtigt werden muss, ist die Variable „Modus“. Sie bestimmt, was die Schaltung machen soll. Die Variable kann vier Werte (0 bis 3) annehmen. Der gewünschte Modus, also auch der Wert der Variable „Modus“, wird mit den beiden Codierschalter S2 und S3 festgelegt. Im nicht betätigten Zustand stehen die Eingänge, an die die Schalter angeschlossen sind, dank der Pull-Up-Widerständen auf HIGH. Sobald ein Schalter betätigt wird, ändert sich der Zustand des jeweiligen Eingangs auf LOW. In diesem Moment wird im Programm auch das entsprechende Bit der Variable „Modus“ genullt und so ihr Wert verändert.
Die Variable „Modus“ wird beim Start des Programms mit dem Wert 3 vorbelegt. Binär betrachtend stehen die zwei ersten Bits der Variable (von rechts nach links betrachtend) auf 1 (0b11). Wenn der Schalter S2 eingeschaltet wird, geht das erste Bit der Variable auf 0. Jetzt hat sie den Wert 2 (0b10). Usw. Die möglichen Modi, die mit den Schaltern S2 und S3 eingestellt werden können, sind:
00 – Einschaltverzögerung (Modus = 0)
01 – Ausschaltverzögerung (Modus = 1)
10 – Ein- und Ausschaltverzögerung (Modus = 2)
11 – Impulsgeber (Modus = 3)
Weitere Variable „Schaltung_Aktiv“ hilft, den Ablauf zu steuern und verhindert, dass die gleichen Schritte im ungewünschten Moment wiederholt werden. Die Ein- und Ausschaltverzögerungszeiten werden via Software eingestellt. Ein Merkmal der Schaltung ist zu beachten: Im aktivierten Modus „Impulsgeber“ (Variable Modus = 3) steht die Einschaltverzögerung-Zeit für Relais-AUS, die Ausschaltverzögerung-Zeit für Relais-AN.

Kurzvideo zur Schaltung

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz