Sainsmart 16 relais module

De Sainsmart 16 relais module is eigenlijk voor de Arduino ontwikkeld. Maar met een kleine aanpassing ben je met de Raspberry Pi ook prima in staat met de relaismodule 16 verschillende apparaten zoals lampen te schakelen. De module wordt vaak gebruikt binnen de Domotica (huis automatisering). Ook in de industrie worden dergelijke modules gebruikt, aangestuurd door minicomputers. Dit project werkt erg goed in combinatie met het project GPIO-besturing via IR-afstandsbediening. Als je ‘zware’ apparaten zoals motoren of grote halogeen spots wilt aansturen wordt een stuur- & lastrelais combinatie geadviseerd.

De Relaismodule wordt met een 12V voeding verbonden en levert (!) zelf een 5V spanning. Het voordeel hiervan is dat de Raspberry Pi de module niet hoeft te voeden en alleen het GPIO-stuursignaal hoeft aan te bieden. Vergeet daarbij niet dat de ground (GND) van zowel de Raspberry Pi als de relaismodule met elkaar verbonden moeten worden.

Bijzonder is dat de module met een LAAG (LOW) signaal aangestuurd wordt, zie afbeelding hieronder. Dat heeft gevolgen voor de programmering omdat we gewend zijn apparaten aan te sturen met een HOOG (HIGH) signaal.

Ingangspin 6 verbonden met de ground (GND). Relais gaat AAN.

Python 2 script
In principe is het Python script hetzelfde voor een LED als voor een relais. Om een relais van de module in te schakelen kun je het volgende script gebruiken.

import RPi.GPIO as GPIO
from time import sleep
pin=40
pauze=1
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(pin,GPIO.OUT)
sleep(pauze)
GPIO.output(pin,GPIO.HIGH)
sleep(pauze)
GPIO.output(pin, GPIO.LOW)
sleep(pauze)
GPIO.cleanup()

Niet wat we gewend zijn.
Als je van de Raspberry GPIO 21 (pin 40) met bijv. pin 1 van de relaismodule en beide grounds (GNDs) met elkaar verbindt en je in het Pythonscript de GPIO pin initialiseert met GPIO.setmode(GPIO.BOARD), dan gaat het relais op de module al AAN. Dit komt omdat de relaismodule met LAAG geschakeld wordt. Het relais gaat weer uit bij het commando GPIO.cleanup(), dat de GPIO poort schoont.

De commando’s HOOG GPIO.output(pin,GPIO.HIGH) en LAAG GPIO.output(pin, GPIO.LOW) hebben geen effect op de relaismodule omdat de signaalniveaus van de Raspberry Pi net niet voldoen om de module te laten schakelen.

Hoe lossen we dit op?

Naast het signaalniveau probleem wil ik dat het relais op de module aangaat bij HOOG, i.p.v. LAAG. Om dit te bewerkstelligen heb ik een klein circuitje gemaakt. Ik noem het de ‘inverter’. Het maakt van HOOG LAAG en andersom. Bovendien zorgt het ervoor dat het signaalniveau goed is.

1-kanaals inverter

Probeer het circuitje uit op je breadboard en sluit er een kanaal op de relaismodule mee aan. Als je een beetje handig bent bouw je een inverter voor de 16 relais module, net als ik.

16-kanaals inverter.

Eenmaal aangesloten werkt het als volgt.

Python – testscript

De software die je in het filmpje ziet kun je hier downloaden.

Veel succes ermee!

Geef als eerste een reactie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd.


*