Dual Synchronized Radio Frequency Control for Motor Lights and more
In this tutorial we will see how to do a synchronized radio frequency control, since one control can control the other. With APC220 modules, which according to the manufacturer can reach a distance of up to one kilometer, under appropriate conditions, are transparent radio modules, since everything that it sends through the serial port, is what will be transmitted. As the brains of the project we will use a couple of arduinos mini pro.
Plates and modules used in this project
Arduino mini pro

The Arduino Pro Mini is a microcontroller board based on the ATmega328.
It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, an integrated resonator, a reset button and holes to mount pin headers. A six-pin header can be connected to an FTDI cable or Sparkfun connection board to provide USB power and communication to the board.
The Arduino Pro Mini is designed for semi-permanent installation in objects or exhibitions. The board comes without pre-assembled headers, allowing the use of various types of connectors or direct cable welding. The pin design is compatible with the Arduino Mini.
There are two versions of the Pro Mini. One runs at 3.3V and 8 MHz, the other at 5V and 16 MHz.
microcontrollerATmega328 *Board power supply3.35-12 V (3.3 V model) or 5-12 V (5 V model)Circuit operating voltage3.3V or 5V (depending on model)Digital I/O Pins14PWM pins6 6Uart1Spi1I2C1Analog input pins6 6External outages2DC current per I/O pin40 mAFlash memory32 KB of which 2 KB used by the bootloader *Sram2 KB *Eeprom1 KB *Clock speed8 MHz (3.3V versions) or 16 MHz (5V versions)
Module Apc220
The APC220 radio data module is a high-power and highly versatile radio solution, it is easy to set up and integrate into any project that requires a wireless RF link. It is perfect for robotic applications if you need wireless control. You can connect one of these modules to your MCU via the TTL interface, and connect to your PC with another APC220 module via a TTL/USB converter.
specification
Working frequency: 420 MHz to 450 MHz
Power: 3.5-5.5V
Current: <25-35mA
Working temperature: -20oC + 70oC
Range: 1200 m (1200 bps)
Interface: UART/ TTL
Transmission speed: 1200-19200 bps
Transmission speed (air): 1200-19200 bps
Receive buffer: 256 bytes
Size: 37mm × 17mm × 6.6mm
Weight: 30g
PinOut

pinDefinitiondetail1SetSet parameters (low)2AuxUART signal- Transmission (low) Transmission (high)3TXDUART TX4RXDUART RX5isTurn off the device when <0.5 V. Enable the device when you leave it offline or apply> 1.6 V6Vdc3.3V-5.5V power7GndEarth 0V
Download RF-Magic
APC22X_V12A
Datasheet
APC220_Datasheet
Run APC22X_V12A.exe (RF-Magic) as an administrator if your system is not Windows XP.

NOTE: In the software you will recognize the APC220 module and COMX serial port automatically once we open it. Check in Device Manager to verify the correct COM port.
Configure RF-magic as in the red square frame below (default setting), and click Write W to enter your settings, then click Read R to read the parameters you have set.

configuration

Writing and reading settings
parameterrankdefaultRF frequency1KHz resolution, 100Hz ± accuracy434MHzTRx RF Rate1200, 2400, 4800, 9600, 19200 bps9600bpsRF power0-99Serial rate1200, 2400, 4800, 9600, 19200, 38400, 57600bps9600bpsNET ID0-65535 (16-bit)12345NODE ID123456789012Patity SeriesDisable, the strange Patity, even Patitydisable
Configure the other APC220 module in the same way, with the same parameter settings.
8-channel Relay rele module

Operating Voltage: 5V DC
Control Signal: TTL (3.3V or 5V)
Relays No.: 8 CH
Max capacity: 10A/250VAC, 10A/30VDC
Max current: 10A (NO), 5A (NC)
Action time: 10 ms/5 ms
To activate output NO: 0 Volts
2 Jumper

16 3mm Led

16 1KOhm Led

Female pins

16 Pushbuttons

Male pins

2 sockets for Arduino mini pro

Pcb
//Variables
String cadena;
int pul2 = 0;
int pul3 = 0;
int pul4 = 0;
int pul5 = 0;
int pul6 = 0;
int pul7 = 0;
int pul8 = 0;
int pul9 = 0;
int estado2 = 0;
int estado3 = 0;
int estado4 = 0;
int estado5 = 0;
int estado6 = 0;
int estado7 = 0;
int estado8 = 0;
int estado9 = 0;
int estCadena2=0;
int estCadena3=0;
int estCadena4=0;
int estCadena5=0;
int estCadena6=0;
int estCadena7=0;
int estCadena8=0;
int estCadena9=0;
//Pines para las luces
int luz10 = 10;
int luz11 = 11;
int luz12 = 12;
int luz13 = 13;
int luzA0 = A0;
int luzA1 = A1;
int luzA2 = A2;
int luzA3 = A3;
void setup () {
Serial.begin(9600);// setea la velocidad del puerto serial debe conincidir con la del módulo apc220
//Seteamos los pines de los pulsadores como entradas y activamos resistores de pullup
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
//Seteamos los pines como salidas para encender led o activar relay
pinMode(luz10, OUTPUT);
pinMode(luz11, OUTPUT);
pinMode(luz12, OUTPUT);
pinMode(luz13, OUTPUT);
pinMode(luzA0, OUTPUT);
pinMode(luzA1, OUTPUT);
pinMode(luzA2, OUTPUT);
pinMode(luzA3, OUTPUT);
//Activamos estas lineas si usamos módulos relay con lógica invertida (activa en con LOW y desactiva con HIGH)
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
delay(10);
}
void loop () {
//leemos los caractres que ingresan al puerto serie y obtenemos una cadena
if (Serial.available()) {
cadena = String("");
while (Serial.available()) {
cadena = cadena + char(Serial.read());
delay(1);
}
}
//Lectura de botones, si hemos apretados un pulsador asignamos un LOW a la variable
pul2 = digitalRead(2);
pul3 = digitalRead(3);
pul4 = digitalRead(4);
pul5 = digitalRead(5);
pul6 = digitalRead(6);
pul7 = digitalRead(7);
pul8 = digitalRead(8);
pul9 = digitalRead(9);
//*********************
//Enciende o apaga la luz
if (pul2 == LOW) {//Si el pulsador 2 está precionado se cumple esta condición
pul2 = digitalRead(2);//Leemos el estado del botón nuevamente
if(estado2 ==0){//Si la variable estado2 es igual a 0 se cumple esta condición
Serial.print("luz2on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado2 =1;//Asignamos el valor 1 a la variable "estado2"
} else{
Serial.print("luz2off");//Enviamos esta cadena para apagar la luz
estado2 =0;
}
while(pul2 == LOW){
pul2 = digitalRead(2);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul3 == LOW) {//Si el pulsador 3 está precionado se cumple esta condición
pul3 = digitalRead(3);//Leemos el estado del botón nuevamente
if(estado3 ==0){//Si la variable estado3 es igual a 0 se cumple esta condición
Serial.print("luz3on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado3 =1;//Asignamos el valor 1 a la variable "estado3"
} else{
Serial.print("luz3off");//Enviamos esta cadena para apagar la luz
estado3 =0;
}
while(pul3 == LOW){
pul3 = digitalRead(3);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul4 == LOW) {//Si el pulsador 4 está precionado se cumple esta condición
pul4 = digitalRead(4);//Leemos el estado del botón nuevamente
if(estado4 ==0){//Si la variable estado4 es igual a 0 se cumple esta condición
Serial.print("luz4on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado4 =1;//Asignamos el valor 1 a la variable "estado4"
} else{
Serial.print("luz4off");//Enviamos esta cadena para apagar la luz
estado4 =0;
}
while(pul4 == LOW){
pul4 = digitalRead(4);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul5 == LOW) {//Si el pulsador 5 está precionado se cumple esta condición
pul5 = digitalRead(5);//Leemos el estado del botón nuevamente
if(estado5 ==0){//Si la variable estado5 es igual a 0 se cumple esta condición
Serial.print("luz5on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado5 =1;//Asignamos el valor 1 a la variable "estado5"
} else{
Serial.print("luz5off");//Enviamos esta cadena para apagar la luz
estado5 =0;
}
while(pul5 == LOW){
pul5 = digitalRead(5);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul6 == LOW) {//Si el pulsador 6 está precionado se cumple esta condición
pul6 = digitalRead(6);//Leemos el estado del botón nuevamente
if(estado6 ==0){//Si la variable estado6 es igual a 0 se cumple esta condición
Serial.print("luz6on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado6 =1;//Asignamos el valor 1 a la variable "estado6"
} else{
Serial.print("luz6off");//Enviamos esta cadena para apagar la luz
estado6 =0;
}
while(pul6 == LOW){
pul6 = digitalRead(6);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul7 == LOW) {//Si el pulsador 7 está precionado se cumple esta condición
pul7 = digitalRead(7);//Leemos el estado del botón nuevamente
if(estado7 ==0){//Si la variable estado7 es igual a 0 se cumple esta condición
Serial.print("luz7on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado7 =1;//Asignamos el valor 1 a la variable "estado7"
} else{
Serial.print("luz7off");//Enviamos esta cadena para apagar la luz
estado7 =0;
}
while(pul7 == LOW){
pul7 = digitalRead(7);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul8 == LOW) {//Si el pulsador 8 está precionado se cumple esta condición
pul8 = digitalRead(8);//Leemos el estado del botón nuevamente
if(estado8 ==0){//Si la variable estado8 es igual a 0 se cumple esta condición
Serial.print("luz8on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado8 =1;//Asignamos el valor 1 a la variable "estado8"
} else{
Serial.print("luz8off");//Enviamos esta cadena para apagar la luz
estado8 =0;
}
while(pul8 == LOW){
pul8 = digitalRead(8);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul9 == LOW) {//Si el pulsador 9 está precionado se cumple esta condición
pul9 = digitalRead(9);//Leemos el estado del botón nuevamente
if(estado9 ==0){//Si la variable estado9 es igual a 0 se cumple esta condición
Serial.print("luz9on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado9 =1;//Asignamos el valor 1 a la variable "estado9"
} else{
Serial.print("luz9off");//Enviamos esta cadena para apagar la luz
estado9 =0;
}
while(pul9 == LOW){
pul9 = digitalRead(9);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
delay(50);
//**************
//--------------------------------------------------------------------
if (cadena == "luz2on" && estCadena2 == 0) {//Compara el valor de la cadena obetinada y estCadena2 vale 0
digitalWrite (luz10,LOW);//Encendemos el relay (si que es de lógica invertida), pero el led se apaga
Serial.print("luz2on");//Envía esta cadena
estCadena2 = 1;
estado2 =1;
}
if (cadena == "luz2off" && estCadena2 == 1) {//compara el valor de la cadena obetinada y estCadena2 vale 1
digitalWrite (luz10,HIGH);//Apagamos el relay (si que es de lógica invertida), pero el led se enciende
Serial.print("luz2off");//Envía esta cadena
estCadena2 = 0;
estado2 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz3on" && estCadena3 == 0) {
digitalWrite (luz11,LOW);
Serial.print("luz3on");
estCadena3 = 1;
estado3 =1;
}
if (cadena == "luz3off" && estCadena3 == 1) {
digitalWrite (luz11,HIGH);
Serial.print("luz3off");
estCadena3 = 0;
estado3 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz4on" && estCadena4 == 0) {
digitalWrite (luz12,LOW);
Serial.print("luz4on");
estCadena4 = 1;
estado4 =1;
}
if (cadena == "luz4off" && estCadena4 == 1) {
digitalWrite (luz12,HIGH);
Serial.print("luz4off");
estCadena4 = 0;
estado4 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz5on" && estCadena5 == 0) {
digitalWrite (luz13,LOW);
Serial.print("luz5on");
estCadena5 = 1;
estado5 =1;
}
if (cadena == "luz5off" && estCadena5 == 1) {
digitalWrite (luz13,HIGH);
Serial.print("luz5off");
estCadena5 = 0;
estado5 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz6on" && estCadena6 == 0) {
digitalWrite (luzA0,LOW);
Serial.print("luz6on");
estCadena6 = 1;
estado6 =1;
}
if (cadena == "luz6off" && estCadena6 == 1) {
digitalWrite (luzA0,HIGH);
Serial.print("luz6off");
estCadena6 = 0;
estado6 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz7on" && estCadena7 == 0) {
digitalWrite (luzA1,LOW);
Serial.print("luz7on");
estCadena7 = 1;
estado7 =1;
}
if (cadena == "luz7off" && estCadena7 == 1) {
digitalWrite (luzA1,HIGH);
Serial.print("luz7off");
estCadena7 = 0;
estado7 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz8on" && estCadena8 == 0) {
digitalWrite (luzA2,LOW);
Serial.print("luz8on");
estCadena8 = 1;
estado8 =1;
}
if (cadena == "luz8off" && estCadena8 == 1) {
digitalWrite (luzA2,HIGH);
Serial.print("luz8off");
estCadena8 = 0;
estado8 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz9on" && estCadena9 == 0) {
digitalWrite (luzA3,LOW);
Serial.print("luz9on");
estCadena9 = 1;
estado9 =1;
}
if (cadena == "luz9off" && estCadena9 == 1) {
digitalWrite (luzA3,HIGH);
Serial.print("luz9off");
estCadena9 = 0;
estado9 =0;
}
}
Source Code (Relay module without reverse logic)
//Variables
String cadena;
int pul2 = 0;
int pul3 = 0;
int pul4 = 0;
int pul5 = 0;
int pul6 = 0;
int pul7 = 0;
int pul8 = 0;
int pul9 = 0;
int estado2 = 1;
int estado3 = 1;
int estado4 = 1;
int estado5 = 1;
int estado6 = 1;
int estado7 = 1;
int estado8 = 1;
int estado9 = 1;
int estCadena2=1;
int estCadena3=1;
int estCadena4=1;
int estCadena5=1;
int estCadena6=1;
int estCadena7=1;
int estCadena8=1;
int estCadena9=1;
//Pines para las luces
int luz10 = 10;
int luz11 = 11;
int luz12 = 12;
int luz13 = 13;
int luzA0 = A0;
int luzA1 = A1;
int luzA2 = A2;
int luzA3 = A3;
void setup () {
Serial.begin(9600);// setea la velocidad del puerto serial debe conincidir con la del módulo apc220
//Seteamos los pines de los pulsadores como entradas y activamos resistores de pullup
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
//Seteamos los pines como salidas para encender led o activar relay
pinMode(luz10, OUTPUT);
pinMode(luz11, OUTPUT);
pinMode(luz12, OUTPUT);
pinMode(luz13, OUTPUT);
pinMode(luzA0, OUTPUT);
pinMode(luzA1, OUTPUT);
pinMode(luzA2, OUTPUT);
pinMode(luzA3, OUTPUT);
//Activamos estas lineas si usamos módulos relay con lógica invertida (activa en con LOW y desactiva con HIGH)
// digitalWrite(10, HIGH);
// digitalWrite(11, HIGH);
// digitalWrite(12, HIGH);
// digitalWrite(13, HIGH);
// digitalWrite(A0, HIGH);
// digitalWrite(A1, HIGH);
// digitalWrite(A2, HIGH);
// digitalWrite(A3, HIGH);
delay(10);
}
void loop () {
//leemos los caractres que ingresan al puerto serie y obtenemos una cadena
if (Serial.available()) {
cadena = String("");
while (Serial.available()) {
cadena = cadena + char(Serial.read());
delay(1);
}
}
//Lectura de botones, si hemos apretados un pulsador asignamos un LOW a la variable
pul2 = digitalRead(2);
pul3 = digitalRead(3);
pul4 = digitalRead(4);
pul5 = digitalRead(5);
pul6 = digitalRead(6);
pul7 = digitalRead(7);
pul8 = digitalRead(8);
pul9 = digitalRead(9);
//*********************
//Enciende o apaga la luz
if (pul2 == LOW) {//Si el pulsador 2 está precionado se cumple esta condición
pul2 = digitalRead(2);//Leemos el estado del botón nuevamente
if(estado2 ==0){//Si la variable estado2 es igual a 0 se cumple esta condición
Serial.print("luz2on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado2 =1;//Asignamos el valor 1 a la variable "estado2"
} else{
Serial.print("luz2off");//Enviamos esta cadena para apagar la luz
estado2 =0;
}
while(pul2 == LOW){
pul2 = digitalRead(2);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul3 == LOW) {//Si el pulsador 3 está precionado se cumple esta condición
pul3 = digitalRead(3);//Leemos el estado del botón nuevamente
if(estado3 ==0){//Si la variable estado3 es igual a 0 se cumple esta condición
Serial.print("luz3on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado3 =1;//Asignamos el valor 1 a la variable "estado3"
} else{
Serial.print("luz3off");//Enviamos esta cadena para apagar la luz
estado3 =0;
}
while(pul3 == LOW){
pul3 = digitalRead(3);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul4 == LOW) {//Si el pulsador 4 está precionado se cumple esta condición
pul4 = digitalRead(4);//Leemos el estado del botón nuevamente
if(estado4 ==0){//Si la variable estado4 es igual a 0 se cumple esta condición
Serial.print("luz4on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado4 =1;//Asignamos el valor 1 a la variable "estado4"
} else{
Serial.print("luz4off");//Enviamos esta cadena para apagar la luz
estado4 =0;
}
while(pul4 == LOW){
pul4 = digitalRead(4);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul5 == LOW) {//Si el pulsador 5 está precionado se cumple esta condición
pul5 = digitalRead(5);//Leemos el estado del botón nuevamente
if(estado5 ==0){//Si la variable estado5 es igual a 0 se cumple esta condición
Serial.print("luz5on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado5 =1;//Asignamos el valor 1 a la variable "estado5"
} else{
Serial.print("luz5off");//Enviamos esta cadena para apagar la luz
estado5 =0;
}
while(pul5 == LOW){
pul5 = digitalRead(5);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul6 == LOW) {//Si el pulsador 6 está precionado se cumple esta condición
pul6 = digitalRead(6);//Leemos el estado del botón nuevamente
if(estado6 ==0){//Si la variable estado6 es igual a 0 se cumple esta condición
Serial.print("luz6on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado6 =1;//Asignamos el valor 1 a la variable "estado6"
} else{
Serial.print("luz6off");//Enviamos esta cadena para apagar la luz
estado6 =0;
}
while(pul6 == LOW){
pul6 = digitalRead(6);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul7 == LOW) {//Si el pulsador 7 está precionado se cumple esta condición
pul7 = digitalRead(7);//Leemos el estado del botón nuevamente
if(estado7 ==0){//Si la variable estado7 es igual a 0 se cumple esta condición
Serial.print("luz7on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado7 =1;//Asignamos el valor 1 a la variable "estado7"
} else{
Serial.print("luz7off");//Enviamos esta cadena para apagar la luz
estado7 =0;
}
while(pul7 == LOW){
pul7 = digitalRead(7);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul8 == LOW) {//Si el pulsador 8 está precionado se cumple esta condición
pul8 = digitalRead(8);//Leemos el estado del botón nuevamente
if(estado8 ==0){//Si la variable estado8 es igual a 0 se cumple esta condición
Serial.print("luz8on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado8 =1;//Asignamos el valor 1 a la variable "estado8"
} else{
Serial.print("luz8off");//Enviamos esta cadena para apagar la luz
estado8 =0;
}
while(pul8 == LOW){
pul8 = digitalRead(8);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
//Enciende o apaga la luz
if (pul9 == LOW) {//Si el pulsador 9 está precionado se cumple esta condición
pul9 = digitalRead(9);//Leemos el estado del botón nuevamente
if(estado9 ==0){//Si la variable estado9 es igual a 0 se cumple esta condición
Serial.print("luz9on");// Enviamos esta cadena de caracteres x el puerto serial para encender la luz
estado9 =1;//Asignamos el valor 1 a la variable "estado9"
} else{
Serial.print("luz9off");//Enviamos esta cadena para apagar la luz
estado9 =0;
}
while(pul9 == LOW){
pul9 = digitalRead(9);//Se cumple esta condición mientras esté precionado el botón
}
}
//-----------------------------------------------------------------------------------
delay(50);
//**************
//--------------------------------------------------------------------
if (cadena == "luz2on" && estCadena2 == 0) {//Compara el valor de la cadena obetinada y estCadena2 vale 0
digitalWrite (luz10,LOW);//Encendemos el relay (si que es de lógica invertida), pero el led se apaga
Serial.print("luz2on");//Envía esta cadena
estCadena2 = 1;
estado2 =1;
}
if (cadena == "luz2off" && estCadena2 == 1) {//compara el valor de la cadena obetinada y estCadena2 vale 1
digitalWrite (luz10,HIGH);//Apagamos el relay (si que es de lógica invertida), pero el led se enciende
Serial.print("luz2off");//Envía esta cadena
estCadena2 = 0;
estado2 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz3on" && estCadena3 == 0) {
digitalWrite (luz11,LOW);
Serial.print("luz3on");
estCadena3 = 1;
estado3 =1;
}
if (cadena == "luz3off" && estCadena3 == 1) {
digitalWrite (luz11,HIGH);
Serial.print("luz3off");
estCadena3 = 0;
estado3 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz4on" && estCadena4 == 0) {
digitalWrite (luz12,LOW);
Serial.print("luz4on");
estCadena4 = 1;
estado4 =1;
}
if (cadena == "luz4off" && estCadena4 == 1) {
digitalWrite (luz12,HIGH);
Serial.print("luz4off");
estCadena4 = 0;
estado4 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz5on" && estCadena5 == 0) {
digitalWrite (luz13,LOW);
Serial.print("luz5on");
estCadena5 = 1;
estado5 =1;
}
if (cadena == "luz5off" && estCadena5 == 1) {
digitalWrite (luz13,HIGH);
Serial.print("luz5off");
estCadena5 = 0;
estado5 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz6on" && estCadena6 == 0) {
digitalWrite (luzA0,LOW);
Serial.print("luz6on");
estCadena6 = 1;
estado6 =1;
}
if (cadena == "luz6off" && estCadena6 == 1) {
digitalWrite (luzA0,HIGH);
Serial.print("luz6off");
estCadena6 = 0;
estado6 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz7on" && estCadena7 == 0) {
digitalWrite (luzA1,LOW);
Serial.print("luz7on");
estCadena7 = 1;
estado7 =1;
}
if (cadena == "luz7off" && estCadena7 == 1) {
digitalWrite (luzA1,HIGH);
Serial.print("luz7off");
estCadena7 = 0;
estado7 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz8on" && estCadena8 == 0) {
digitalWrite (luzA2,LOW);
Serial.print("luz8on");
estCadena8 = 1;
estado8 =1;
}
if (cadena == "luz8off" && estCadena8 == 1) {
digitalWrite (luzA2,HIGH);
Serial.print("luz8off");
estCadena8 = 0;
estado8 =0;
}
//--------------------------------------------------------------------
if (cadena == "luz9on" && estCadena9 == 0) {
digitalWrite (luzA3,LOW);
Serial.print("luz9on");
estCadena9 = 1;
estado9 =1;
}
if (cadena == "luz9off" && estCadena9 == 1) {
digitalWrite (luzA3,HIGH);
Serial.print("luz9off");
estCadena9 = 0;
estado9 =0;
}
}
Dual Synchronized Radio Frequency Control for Motor Lights and more
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(1)
-
Anthony Pedotto
Feb 22,2025
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by CarlosVolt Tutoriales
-
Infrared stepper motor control with speed control
More info and updates https://rogerbit.com/wprb/2024/09/motor-paso-a-paso-x-infrarrojo/In this proje...
-
Uploading BME280 Sensor Data to ThingSpeak Using ESP32
In this tutorial, we will show you how to connect a BME280 sensor to an ESP32 to read temperature, h...
-
Water pump control for irrigation via telegram and esp32
Water Pump Control by Telegram and ESP32 is an automated system that allows you to remotely control ...
-
Air conditioning on/off control via telegram and esp32
In this tutorial we will see how to control an air conditioner, with an esp32 and the telegram appli...
-
35 watt stereo amplifier
In this video we will see how to build an audio amplifier, with the TDA7377 integrated circuit, and ...
-
Laser alarm with RFID module
More info and updates in https://rogerbit.com/wprb/2024/08/alarma-laser-rfid/In this project, we bui...
-
Control lights by voice commands and keys
In this tutorial we will see how to create a device to control lights by voice commands, with a modu...
-
Stepper motor control x bluetooth and app
In this tutorial we will see a circuit, which controls a stepper motor, with an application made in ...
-
DFplayermini x bluetooth mp3 player control
More info and updates in https://rogerbit.com/wprb/2022/12/dfplayermini-x-bluetooth/In this tutorial...
-
Robot with WiFi control and servos driven by ESP32
More info and updates in https://rogerbit.com/wprb/2023/07/robot-wifi/A robot controlled by Wi-Fi, s...
-
How to make a water level meter with uln2803
In this tutorial we will see how to make a water level meter circuit with the built-in uln2803.The p...
-
Color Detector with Arduino and OLED display
In this tutorial we will show you how to build a color detector using the TCS3200 sensor and an SH11...
-
DTMF decoder for handy with arduino, control over several kilometers
In this tutorial we will see how to make a circuit to connect to our handy, in this case a Baofeng U...
-
Turn on light from thindspeak with esp32
In this tutorial, we will show you how to control lights over the Internet using an ESP32 and the Th...
-
MP3 player control with webserver using ESP32 WIFI
In this tutorial, you will learn how to build a web server using the ESP32 to control the YX5300 mod...
-
Time clock with fingerprint IoT module, uploading data to thingspeak
More info in and updates in https://rogerbit.com/wprb/2022/07/reloj-de-control-fingerprint/In this t...
-
Make your own logic tip (includes printed circuit board)
In this video tutorial we will see how to make a logic tip, on a printed circuit, with the integrate...
-
Coil or inductor meter with Arduino and OLED display
More info and updates in https://rogerbit.com/wprb/2022/06/medidor-inductores/In this tutorial we wi...
-
-
AEL-2011 Power Supply Module
543 0 2 -
AEL-2011 50W Power Amplifier
505 0 2 -
-
-
Custom Mechanical Keyboard
706 0 0 -
Tester for Touch Screen Digitizer without using microcontroller
335 2 2 -
Audio reactive glow LED wristband/bracelet with NFC / RFID-Tags
317 0 1 -
-
-







