Релейный модуль ГрандМагистр РМ-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); } }
Всем удачи! )