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
-
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...
-
Turn on Light with Reyax RYLR896 LoRa Modules with Acknowledgement In this tutorial, you will learn how to use the Reyax RYLR896 LoRa modules to wirelessly and reliabl...
-
Laser controlled by joystick servos and Arduino More info and updates in https://rogerbit.com/wprb/2023/06/laser-controlado-x-joystick/In this tutor...
-
Non-contact high temperature alarm using TS01 sensor The TS01 non-contact sensor high temperature alarm is a system designed to detect and alert about da...
-
Capture photos with esp32-cam, SD card with motion detection Capture photos with esp32-cam, SD card with motion detectionIn this exciting tutorial, we'll show yo...
-
5 in 1 sensor: temperature, humidity, pressure, altitude and light intensity More info and updates in https://rogerbit.com/wprb/2023/11/sensor-5-en-1/The 5-in-1 Sensor is a comb...
-
Beeper with telegram bot and esp32 More info and updates in https://rogerbit.com/wprb/2024/06/beeper/In this tutorial, you will learn h...
-
8-channel light control with ps/2 keyboard and arduino The 8-Channel Lighting Control System with PS/2 Keyboard and Arduino is a project that combines the ...
-
Electronic scale with Arduino with HX711 module and tare function More info and updates in https://rogerbit.com/wprb/2024/03/balanza-electronica/In this tutorial, you...
-
Capacimeter with Arduino A Capacimeter is an instrument used to measure the capacitance of a capacitor. In this tutorial, we ...
-
Start of section with fingerprint module and arduino micro Project descriptionMore info and update in $ https://rogerbit.com/wprb/2023/08/inicio-seccion-finger...
-
Frequency meter with alarm A frequency meter is a device that measures the frequency of a periodic signal. In combination with ...
-
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...
-
Control lights by voice commands and keys
79 0 0 -
3 phase Motor and Phase Sequence Indicator / Rotation Tester
97 0 1 -
Stepper motor control x bluetooth and app
59 0 0 -
-
DFplayermini x bluetooth mp3 player control
107 0 0 -
-
-