Voor vragen, commentaar, tips enz, mail me op ronald@ronaldwilmink.nl

3. Het schakelen van een relais

Magneet-artikelen zoals wissels en (meestal) armseinen gebruiken vrij veel stroom tijdens het omschakelen.
In elk geval meer dan de maximaal 25mA die de MCP23017 kan leveren.
Met behulp van een mini-relais kan dat wel.
Op mijn modelspoorbaan gebruik ik lichtseinen. Om een sein te schakelen gebruik ik een bi-stabiel relais.
Met zo'n relais kan eenvoudig zowel de rijstroom als de verlichting worden geschakeld.
Voor het omzetten van een wissel zijn twee relais nodig; met de ene zet je de wissel recht, met de andere 'krom'.

De eenvoudigste manier

Het makkelijkst is 5V relais' te nemen die maximaal 25mA gebruiken. Deze zijn rechtstreeks, zonder verdere electronica, via een uitgang van de MCP23017 te schakelen.

De iets moeilijkere manier

relais schakelen met RPi Voor het schakelen van relais die meer stroom verbruiken is een transistor-schakeling nodig.
De transistor is een BC140, de weerstand 2K2, en de terugloop diode een 1n4148.

Zie hiernaast het schema.

Relais schakeling testen

De MCP23017 heeft 16 poorten die voor invoer en uitvoer kunnen worden gebruikt, verdeeld over twee blokken van 8, nl. GPA en GPB.

Voor output zijn met GPA deze twee registers van elk 8 bits verbonden:

  • Het 'richting'-register. Hierin wordt aangegeven welke poorten In (1) en Out (0) zijn.
    Naam: IODIRA, Adres: 00h
  • Het output register. Hierin betekent een bit op 1: uitgang hoog, bit op 0: uitgang laag.
    Naam: OLATA, Adres: 14h

Eerst moeten we de MCP23017 vertellen dat hij poort GPA0 als output-port moet gebruiken:
sudo i2cset -y 1 0x20 0x00 0xFE (0x20 was het adres gevonden met i2cdetect, 0x00=IODIRA, 0xFE=11111110
Dan maken we GPA0 hoog (relais aan):
sudo i2cset -y 1 0x20 0x14 0x01 (0x14=OLATA, 0x01=00000001)
En tenslotte maken we GPA0 weer laag (relais uit):
sudo i2cset -y 1 0x20 0x14 0x00 (0x14=OLATA, 0x00=00000000)
Het relais nogmaals aan- en uit doen kan zonder dat eerst IODIRA weer wordt ingesteld.

<<<<< vorige blz volgende blz>>>>>