Jun 152013
 

Allgemeines

Auf dem PiFace befinden sich zwei Relais (siehe Bild). Alle Relais haben die Funktion eines Schalters. Dieser spezielle Schalter lässt sich elektrisch steuern. Wenn man aber etwas einschalten möchte, muss man diesen Schalter mit dem Verbraucher und einer Quelle in Reihe schalten. Möglicher Aufbau: Spannungsquelle in Reihe mit einem Motor in Reihe mit einem Relais.

Die blauen Pfeile zeigen, welche Pins im nichtbetätigten Zustand miteinander verbunden sind, die grünen hingegen, wenn das Relais geschaltet wurde.

Die Relais sind auf dem PiFace intern mit den ersten beiden LEDs verbunden. D.h. wenn man die erste LED einschaltet, dann schaltet man auch gleichzeitig das erste Relais. Dabei hört man auch ein klicken.

 Relais

Testprogramm

#include <wiringPi.h>
#include <piFace.h>
#include <softPwm.h>

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#define PIFACE    200
#define BUTTON1 200
#define BUTTON2 201
#define BUTTON3 202
#define BUTTON4 203
#define LOW        0
#define HIGH    1
#define LED1 200    //Relais1
#define LED2 201    //Relais2
#define LED3 202
#define LED4 203
#define LED5 204
#define LED6 205
#define LED7 206
#define LED8 207

 

int main (void)
{
    int i, r1=LOW,r2=LOW;
   
    printf(“RELAIS TESTPROGRAMM\n”);

      wiringPiSetup();
      piFaceSetup(PIFACE);

// Enable internal pull-ups & start with all off
      for(i=LED1;i<=LED8;i++)
      {
        pullUpDnControl(i,PUD_UP);
        digitalWrite(i,LOW);
      }
    delay(100);

//INFO
    printf(“(Button1 befindet sich am Rand)\n”);
    printf(“Button1 schaltet das 1. Relais ein und aus\n”);
    printf(“Button2 schaltet das 2. Relais ein und aus\n”);
    printf(“Buttton3 schaltet beide Relais um\n”);
    printf(“Button4 schaltet das Programm aus\n”);
    while(digitalRead(BUTTON4)!=LOW)
    {
        if(digitalRead(BUTTON1)==LOW)
        {
            r1^=1;
            digitalWrite(LED1,r1);
            delay(200);
        }
        if(digitalRead(BUTTON2)==LOW)
        {
            r2^=1;
            digitalWrite(LED2,r2);
            delay(200);
        }
        if(digitalRead(BUTTON3)==LOW)
        {
            r1^=1;
            r2^=1;
            digitalWrite(LED1,r1);
            digitalWrite(LED2,r2);
            delay(200);
        }
    }
//Ausschalten der Relais zum Schuluss
    for(i=LED1;i<=LED2;i++)
        digitalWrite(i,LOW);

  return 0 ;
}

 Posted by at 9:35 pm
  • Danke, habe schon ganze Zeit nach so einem Code für das piFace gsucht!

Optimization WordPress Plugins & Solutions by W3 EDGE