Relé-Modulok
BMZxxTN Többcsatornás MOSFET IO-kártya
A kártya relék helyett MOSFET-ekkel végzi a kapcsolást, csatornánként opto-val izolált. A bemeneti oldal lehet 5/12/24 Voltos, a kimeneti oldal típusfüggő, 3.3/5/12/24 voltos lehet (a választott érték szerint kell rendelni). A csatornék száma is választható, 4/8/12/16 csatornás kivitelben (BMZ4TN, BMZ8TN, BMZ12TN, BMZ16TN) építik ezeket a modulokat. Az egység működhet NPN vagy PNP irányban is. A modul kinézete civilizált, szekrényben kalapsínre installálható. Én a banggood-ról rendeltem a modult, innen.
Technikai adatok
- Tápfeszültség: DC3.3 .. 24V
- Üzemi áramfelvétel: 5 .. 10mA
- Kimenet: optoval leválasztott, izolált
- Maximális kimeneti áram: 6A
- Kimeneti oldali feszültség: DC5V .. DC24V (fix)
- Kapcsolási idő: legfeljebb 1 ms
- Maximális kapcsolási frekvencia: 2000 Hz
- Installáció: szabványos sín (kalapsín)
Bekötés
Az SS láb bekötéséval határozható meg, hogy a modul NPN vagy PNP irányban működik. Ha az SS lábra rákötjük a tápfeszültséget, ami lehet a konfigurációtól függően 5, 12 vagy 24 volt, akkor a modul PNP irányban fog működni:
HK4100F relé
A kínai gyártmányú, nagyon gazdaságos HK4100F relécsalád az Arduinoknál – mind direkt, mind kátryákon – a leggyakrabban felbukkanó relétípus. Faék egyszerűségű, alapvelően megbízható, vezetékezése a fenti ábrán látható. Alapvetően 3 típusát gyártják, ezeknek a tekercsfeszülsége: 5V DC, 12V DC, 24V DC. Szekunderkörön mind AC, mind DC kapcsolására alkalmas.
Technikai adatai:
- Érintkező anyaga: Ezüst ötvözet
- Szekunderkör jellemzői: 3A 250V AC / 3A 30V DC
- Maximális kapcsolási feszültség: 300V AC / 60V DC
- Maximális kapcsolási áram: 3 A
- Maximális kapcsolási teljesítmény: 750 VA / 90 W
- Érintkező ellenállás: 100 mΩ (1A 6V DC)
- Impedancia: 120Ω +/- 10%
- Tekercsteljesítmény: 0.2W
- Névleges feszültség: DC 5V / DC 12V / DC 24V
- Működési hőmérséklet: -25 ℃ - 70 ℃
4 csatornás "klasszikus" relévezérlés
A klasszikus relémodulok 1-2-4-8 csatornás kivitelben kaphatók az Arduinokhoz. Csatornánként 15-20 mA szükséges a relék vezérléséhez. A relék optokkal vannak leválasztva a bemenetektől, és állapotukról LED visszajelzést is kapunk.
A kimeneti oldalon egyenáram esetén maximum 30V 10A, váltóáram esetén 250V 10A kapcsolható. A kimeneti oldalon NO és NC kimenet is található.
A modul alkalmazásával nekem vannak negatív tapasztalataim. Nagy terhelés esetén többször tapasztaltam, hogy nem azonnal, de egy idő után furcsa működést produkál az Arduino-val. Az egész kapcsolás elkezd ki-be kapcsolgatni, olyan másodperces ciklusban, és ebből a hibából csak teljes áramtalanítással lehet kivenni.
Ezt a problémát valószínűleg az Arduino pinjének a túlterhelése okozza, ami után a board resetelni próbál, de mivel a terhelés továbbra is fennáll, a felfutás után ismét leállást okoz. A fő probléma ezzel a jelenséggel az, hogy nem lehet tudni, hogy mikor fog bekövetkezni. Elkerüléséhez, megoldásához érdemes nem relés kapcsolást alkalmazni (pl. MOFSET, solid state,..).
JD jumper
A JD jumperen/csatlakozón keresztül megvalósítható a relémodul teljes elektromos szeparálása az Arduino-tól:
Ha a jumper VCC állásban van, akkor a relé meghajtását az Arduino-tól kapott VCC végzi. Ha a JD-VCC állásba külső megtáplálást csatolunk, akkor a VCC teljesen le lesz választva a relétől. Ebben az esetben így érdemes a mudult az Aurdino-hoz csatolni:
Relémodul példa
kép forrása: randomnerdtutorials.com
Ebben az összeállításban a PIR mozgásérzékelő egy 230V-os lámpát kapcsolgat 10 másodperces késleltetéssel. A JD jumper itt VCC állásban van, a relé a tápját az Arduino-tól kapja. A példaprogram:
// Relay pin is controlled with D8. The active wire is connected to Normally Closed and common int relay = 8; volatile byte relayState = LOW; // PIR Motion Sensor is connected to D2. int PIRInterrupt = 2; // Timer Variables long lastDebounceTime = 0; long debounceDelay = 10000; void setup() { // Pin for relay module set as output pinMode(relay, OUTPUT); digitalWrite(relay, HIGH); // PIR motion sensor set as an input pinMode(PIRInterrupt, INPUT); // Triggers detectMotion function on rising mode to turn the relay on, if the condition is met attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING); // Serial communication for debugging purposes Serial.begin(9600); } void loop() { // If 10 seconds have passed, the relay is turned off if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){ digitalWrite(relay, HIGH); relayState = LOW; Serial.println("OFF"); } delay(50); } void detectMotion() { Serial.println("Motion"); if(relayState == LOW){ digitalWrite(relay, LOW); } relayState = HIGH; Serial.println("ON"); lastDebounceTime = millis(); }
Mondjuk ha már 230V-ot kapcsolgatunk, akkor lehet, hogy érdemes volna az optók előnyeit kihasználva az Arduino-t szeparálni a reléktől, az alábbi kiegészítéssel (lásd, a fenti JD jumperes pont):
kép forrása: howtomechatronics.com