Помагите разобраться с радиоуправлением на основе модуля приемника и пульта на 433МГц

via06
Offline
Зарегистрирован: 30.12.2014

Имеется пару модулей приемников на 433МГц, а так же имеется пульт от люстры на 433МГц, коды с кнопок мне удалось прочесть с изпользованием библиотеки RCSwitch, но я хотел бы реализовать управление 4 реле с помощью этого пульта, приемника и ARDUINO, весь гугл перерыл, но рабочего скетча по этой теме я так и нашел 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Читаете код, сравниваете с известным, включаете/отключаете реле. Что тут сложного? Давайте код того как читали коды, попытаемся из него сделать управление реле.

via06
Offline
Зарегистрирован: 30.12.2014

#include <RemoteReceiver.h>

// Connect the receiver to digital pin 2.-пин 2.это вход для Радиоприёмника

void setup() {

Serial.begin(9600);

RemoteReceiver::init(0, 3, showCode);

}

void loop() {

}

void showCode(unsigned long receivedCode, unsigned int period) {

Serial.print("Code: ");

Serial.print(receivedCode);

Serial.print(", period duration: ");

Serial.print(period);

Serial.println("us.");

}

via06
Offline
Зарегистрирован: 30.12.2014

Эх... если бы для меня было легко, я бы не спрашивал где только можно

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013
#include <RemoteReceiver.h>
//Пины реле
#define RELE1 4
#define RELE2 5
#define RELE3 6
#define RELE4 7
// Коды кнопок
#define CODE1 000001
#define CODE2 000002
#define CODE3 000003
#define CODE4 000004

// Connect the receiver to digital pin 2.-пин 2.это вход для Радиоприёмника

void setup() {
	Serial.begin(9600);
	RemoteReceiver::init(0, 3, showCode);
	pinMode(RELE1, OUTPUT);
	pinMode(RELE2, OUTPUT);
	pinMode(RELE3, OUTPUT);
	pinMode(RELE4, OUTPUT);
	// инициализируем статус реле
	digitalWrite(RELE1, HIGH);
	digitalWrite(RELE2, HIGH);
	digitalWrite(RELE3, HIGH);
	digitalWrite(RELE4, HIGH);
}
void loop() {
}

void showCode(unsigned long receivedCode, unsigned int period) {
	Serial.print("Code: ");
	Serial.print(receivedCode);
	Serial.print(", period duration: ");
	Serial.print(period);
	Serial.println("us.");
       //Переключаем реле с нужным кодом
	switch(receivedCode){
		case CODE1:
			digitalWrite(RELE1,!digitalRead(RELE1));
			break;
		case CODE2:
			digitalWrite(RELE2,!digitalRead(RELE2));
			break;
		case CODE3:
			digitalWrite(RELE3,!digitalRead(RELE3));
			break;
		case CODE4:
			digitalWrite(RELE4,!digitalRead(RELE4));
			break;
	}
   delay(500); //антидребезг
}

Вот как то так

via06
Offline
Зарегистрирован: 30.12.2014

Ругается на ошибку

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

ну там очепятки были. А если бы я вам вирус написал??? Вы бы так же не проверив сделали копировать/вставить ))))

via06
Offline
Зарегистрирован: 30.12.2014

у меня антивирус стоит, я ему доверяю