TWI (I2C) 8 relés panel kezelése

 

2020-05-30

Már tavaly beszereztem egy 8 relés panelt Arduinóhoz. Kb. 4 USD-t is volt képük a kínaiaknak elkérni érte :). Akinek nem szükséges ennyi, lehet 1-2-4-8 relés panelt kapni, de van szilárdtest relés is. Az most nem tárgyalnám ki, hogy itthon mit lehet 1500 HUF körül kapni. Kínálta magát, hogy egy portbővítővel dugjam össze.

Nagyon korrekt panel, a relék kimenő érintkezője körül van marva, hogy biztosítva legyen a megfelelő hosszú kúszóút, merthogy 10A/250VAC kapcsolható velük. A kimenetük Morse érintkezős, vagyis átkapcsolós, és mindhárom érinkező ki van vezetve. Minden relé előtt van egy optó/tranzisztor/LED meghajtó áramkör. Mondjuk az optót nem értem minek bele, a relé fogja biztosítani az elválasztást a nagyfeszültségű résztől. A LED világít, ha a relé vezérlést kap. És igen, úgy tervezték az áramkört, hogy illeszkedik a port bővítőnkhöz, a bemenetek LOW aktívak, vagyis amelyiket be akarjuk kapcsolni, az ahhoz tartozó lábat földre kell kötni. A port lábakon kívűl kell egy GND-t meg egy VCC-t (5V) adni a panelnek.

Az alábbi képen már össze van bogozva az összes szükséges komponens, és minden müxik. A szép új, előszőr használt vezetékeimből az egyik kontakt hibás volt, az a fehér szál a csereszál.

Annyi történt még, hogy a mátrix billentyűzet kezelésénél bemutatott kt_pcf8574 osztály kikerült egy library-be, ami tovább egyszerűsítette a programot. Bocsi, azt már megtartom magamnak, bár nem egy nagy etvasz. Aki gondolja, a szükséges részeket másolja át ide.


/******************************************************************************
*   Author       -  Kiraly Tibor
*                   http://www.tkiraaly.hu
*   Date         -  2020.05.30.
*   Chip         -  Arduino, PCF8574, 8 relay panel
*   Compiler     -  Arduino IDE 1.8.12
*
*   PCF8574 rele panel teszt
*    
******************************************************************************/

#include "kt_pcf8574.h"


kt_pcf8574 x= kt_pcf8574( 0x20);


void setup()
{
   Serial.begin( 9600);
   Serial.println( "kt_pcf8574 relays");
   if( x.error())
   {
      Serial.print( "PCF8574 chip not ready!");
      while( 1);
   }
   Serial.println();
}


void loop()
{
   x.write( B01111111);
   delay( 500);
   x.write( B10111111);
   delay( 500);
   x.write( B11011111);
   delay( 500);
   x.write( B11101111);
   delay( 500);
   x.write( B11110111);
   delay( 500);
   x.write( B11111011);
   delay( 500);
   x.write( B11111101);
   delay( 500);
   x.write( B11111110);
   delay( 500);
}

Ennyi az egész, itt a vége, fuss el véle.