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 shared platform and we are not responsible for any design issues.
- Comments(0)
- Likes(0)
- 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
- 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...
- Emular mouse y teclado con arduino muy fácil En este tutorial, aprenderemos cómo utilizar un Arduino para emular tanto un mouse como un teclado e...
- Control of apc220 modules with smartphone and app Controlling APC220 modules using a smartphone and an app involves connecting via a serial USB adapte...
- Exploring the potential of the SI5351 module in electronic projects In this tutorial, you will dive into the depths of this amazing device and discover its limitless po...
- Gas leak detector alarm system with arduino nano In this tutorial we will see how to assemble a gas leak detector alarm system with arduino nano. We ...
- Build your own long-range weather station with Lora GPS anemometer module In this tutorial we will see how to create a weather station, for places where there is no internet ...
- 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...
- Object lifter with servo and Arduino Nano Does your waist or back hurt when you bend down? So this invention, it's for you and it can help you...
- 8-channel dual light ignition system, infrared and pushbuttons In this tutorial we will put together a dual light ignition system, since we can control the ignitio...
- How to turn on lights with telegram and esp32 from anywhere in the world In this tutorial we will see how to make a system that allows us to turn on lights with telegram, fr...
- Motion detector with light, esp32 and telegram notifications In this tutorial we will see how to make a motion detector system, with a PIR sensor, a relay module...
- Alcoholimeter with MQ3 sensor and arduino nano (Includes printed circuit) In this tutorial we will see how to make a breathalyzer, simple economical and easy to make. We’ll s...
- GPS tracker without cellular network with LORA module In this tutorial we will see how to make a tracker to GPS tracker, with LORA and Arduino module. We ...
- Build a meter with integrated circuit KA2284 KA2284 integrated circuit featuresHigh gain rectifier amplifier included (Gv = 26dB)Low radiation no...
-
-
-
Open Source Very Large Stick - Freejoy & MMjoy2 breakout board
654 0 0 -
RF Control training board for students based on ESP32 C3
838 0 2 -
Aquarius+ Computer, Standard PCB
1105 0 7 -
KINETIC COASTERS with a TWIST! Laser or 3D Print some DIY Magic
705 0 2 -
RPI - 8 IO PLC With ATTiny85 Watch Dog
606 0 1