Релейный модуль ГрандМагистр РМ-4 распиновка
- Войдите на сайт для отправки комментариев
Чт, 19/03/2015 - 23:07
Выкладываю, может кому-то пригодится )
Микросхемы на плате - 74HC595 и ULN2003.
Стоимость такого блока в районе 400р.
Сам собираюсь светом управлять через него, минусом является необходимость 2х напряжений, хотя это решается при помощи LM7805.

Продублирую текстом, на случай пропадания картинки:
Если смотреть на модуль со стороны контактной группы, положив релюхами вверх, слева направо сверху:
Питание реле +12в, питание микросхем +5в, SH_CP (CLK), снизу: GND (земля), ST_CP(latch), DS (data).
// Скетч Arduino для проверки работы релейного модуля ГрандМагистр РМ-4
// Команды 1,2,3,4 - включают соответствующие реле, а q,w,e,r - отключают.
// Достаточно подключиться через любой терминал к ком порту, к которому подключен Ваш контроллер.
int latchPin = 8; //Pin подключенный к ST_CP микросхемы 74HC595
int clockPin = 12; //Pin подключенный к SH_CP микросхемы 74HC595
int dataPin = 11; //Pin подключенный к DS микросхемы 74HC595
byte state = B00000000; // Байт для хранения состояния всех реле, используются нижние 4 бита
void setup()
{
Serial.begin(9600); // Устанавливаем соединение через сериальный (COM) порт:
pinMode(latchPin, OUTPUT); // Настраиваем пины как выходные:
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
digitalWrite(latchPin, LOW); // на время записи "выключаем задвижку"
shiftOut(dataPin, clockPin, MSBFIRST, state ); // устанавливаем первоначальное состояние реле путем побитовой отправки нашего байта
digitalWrite(latchPin, HIGH);
}
void loop() {
char Ch;
// Проверяем, есть ли данные от компьютера:
if (Serial.available()) {
// читаем байт из буфера (значение будет в промежутке от 0 до 255):
Ch = Serial.read();
switch (Ch) { // Включаем или выключаем соответствующие биты логическими командами
case '1':
state = state | B00000001; // предыдущее состояние "or" новое значение
break;
case '2':
state = state | B00000010;
break;
case '3':
state = state | B00000100;
break;
case '4':
state = state | B00001000;
break;
case 'q':
state = state & B11111110; // предыдущее состояние "and" новое значение
break;
case 'w':
state = state & B11111101;
break;
case 'e':
state = state & B11111011;
break;
case 'r':
state = state & B11110111;
break;
}
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, state); // вывод текущего состояния всех реле
digitalWrite(latchPin, HIGH);
}
}
Всем удачи! )