carlosvolt
Published © LGPL

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 module from geeetech.

IntermediateProtip136
Control lights by voice commands and keys

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1

Story

Read more

Code

Source code

C/C++
Source code
int led3 = 3; 
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
int led3estado = 0;
int led4estado = 0;
int led5estado = 0;
int led6estado = 0;
int led7estado = 0;
int led8estado = 0;
int led9estado = 0;
int led10estado = 0;
byte com = 0; 
int estadoBoton11 = 0;
int estadoBoton12 = 0;
int estadoBotonA5 = 0;
int estadoBotonA0 = 0;
int estadoBotonA1 = 0;
int estadoBotonA2 = 0;
int estadoBotonA3 = 0;
int estadoBotonA4 = 0;
 
int estado11 = 0;
int estado12 = 0;
int estadoA5 = 0;
int estadoA0 = 0;
int estadoA1 = 0;
int estadoA2 = 0;
int estadoA3 = 0;
int estadoA4 = 0;
//Pulsadores
int botonPin11 =11; 
int botonPin12 =12;
int botonPinA5 =A5;
int botonPinA0 =A0;
int botonPinA1 =A1;
int botonPinA2 =A2;
int botonPinA3 =A3;
int botonPinA4 =A4;
void setup()
{
Serial.begin(9600);//Velocidad a la que trabaja el módulo de reconocmiento de voz
pinMode(led3, OUTPUT); // Establece el led3 como una salida
pinMode(led4, OUTPUT); // Establece el led4 como una salida
pinMode(led5, OUTPUT); // Establece el led5 como una salida
pinMode(led6, OUTPUT); // Establece el led6 como una salida
pinMode(led7, OUTPUT); // Establece el led6 como una salida
pinMode(led8, OUTPUT); // Establece el led6 como una salida
pinMode(led9, OUTPUT); // Establece el led6 como una salida
pinMode(led10, OUTPUT); // Establece el led2 como una salida
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
delay(2000);
//Pines como entradas para los pulsadores
pinMode(botonPin11, INPUT_PULLUP);
pinMode(botonPin12, INPUT_PULLUP);
pinMode(botonPinA5, INPUT_PULLUP);
pinMode(botonPinA0, INPUT_PULLUP);
pinMode(botonPinA1, INPUT_PULLUP);
pinMode(botonPinA2, INPUT_PULLUP);
pinMode(botonPinA3, INPUT_PULLUP);
pinMode(botonPinA4, INPUT_PULLUP);
//Comando para cambiar al modo compacto
Serial.write(0xAA);
Serial.write(0x37);
delay(1000);
// Importa el grupo 1
Serial.write(0xAA);
Serial.write(0x21);
}
void loop() // Correr una y otra vez
{
estadoBoton11 = digitalRead(botonPin11);//Leemos el pulsador para ver su estado
estadoBoton12 = digitalRead(botonPin12);//Leemos el pulsador para ver su estado
estadoBotonA5 = digitalRead(botonPinA5);//Leemos el pulsador para ver su estado
estadoBotonA0 = digitalRead(botonPinA0);//Leemos el pulsador para ver su estado
estadoBotonA1 = digitalRead(botonPinA1);//Leemos el pulsador para ver su estado
estadoBotonA2 = digitalRead(botonPinA2);//Leemos el pulsador para ver su estado
estadoBotonA3 = digitalRead(botonPinA3);//Leemos el pulsador para ver su estado
estadoBotonA4 = digitalRead(botonPinA4);//Leemos el pulsador para ver su estado
///Botón 11 precionado///
if (estadoBoton11 == LOW) {
//Leemos el estado del pin 3
led3estado = digitalRead(led3);
  // Si el led está apagado se cumple esta condición
  if (led3estado == LOW) {
    // Y enciende el led 3
    digitalWrite(led3, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led3, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón 12 precionado///
if (estadoBoton12 == LOW) {
//Leemos el estado del pin 4
led4estado = digitalRead(led4);
  // Si el led está apagado se cumple esta condición
  if (led4estado == LOW) {
    // Y enciende el led 4
    digitalWrite(led4, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led4, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A5 precionado///
if (estadoBotonA5 == LOW) {
//Leemos el estado del pin 5
led5estado = digitalRead(led5);
  // Si el led está apagado se cumple esta condición
  if (led5estado == LOW) {
    // Y enciende el led 5
    digitalWrite(led5, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led5, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A0 precionado///
if (estadoBotonA0 == LOW) {
//Leemos el estado del pin 6
led6estado = digitalRead(led6);
  // Si el led está apagado se cumple esta condición
  if (led6estado == LOW) {
    // Y enciende el led 6
    digitalWrite(led6, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led6, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A1 precionado///
if (estadoBotonA1 == LOW) {
//Leemos el estado del pin 7
led7estado = digitalRead(led7);
  // Si el led está apagado se cumple esta condición
  if (led7estado == LOW) {
    // Y enciende el led 7
    digitalWrite(led7, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led7, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A2 precionado///
if (estadoBotonA2 == LOW) {
//Leemos el estado del pin 8
led8estado = digitalRead(led8);
  // Si el led está apagado se cumple esta condición
  if (led8estado == LOW) {
    // Y enciende el led 8
    digitalWrite(led8, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led8, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A3 precionado///
if (estadoBotonA3 == LOW) {
//Leemos el estado del pin 9
led9estado = digitalRead(led9);
  // Si el led está apagado se cumple esta condición
  if (led9estado == LOW) {
    // Y enciende el led 9
    digitalWrite(led9, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led9, LOW);
  }
delay(350);//Delay antirrebote 
}
///Botón A4 precionado///
if (estadoBotonA4 == LOW) {
//Leemos el estado del pin 10
led10estado = digitalRead(led10);
  // Si el led está apagado se cumple esta condición
  if (led10estado == LOW) {
    // Y enciende el led 10
    digitalWrite(led10, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led10, LOW);
  }
delay(350);//Delay antirrebote 
}
////Lectura de datos desde módulo de reconocimiento de voz
while(Serial.available())
{
//Captura los caracteres del puerto serial y se los asigna a la variable "com"
com = Serial.read();
//Se compara la variable "com"
switch(com)//Estructura de control switch, case 
{
case 0x11://Si el valor es 0x11
led3estado = digitalRead(led3);//Leemos el estado del pin 3
  // Si el estado es igual a LOW
  if (led3estado == LOW) {
    // Enciende el led
    digitalWrite(led3, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led3, LOW);
  }
break;
case 0x12://Si el valor es 0x12
led4estado = digitalRead(led4);//Leemos el estado del pin 4
  // Si el estado es igual a LOW
  if (led4estado == LOW) {
    // Enciende el led
    digitalWrite(led4, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led4, LOW);
  }
break;
case 0x13://Si el valor es 0x13
led5estado = digitalRead(led5);//Leemos el estado del pin 5
  // Si el estado es igual a LOW
  if (led5estado == LOW) {
    // Enciende el led
    digitalWrite(led5, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led5, LOW);
  }
break;
case 0x14://Si el valor es 0x14
led6estado = digitalRead(led6);//Leemos el estado del pin 6
  // Si el estado es igual a LOW
  if (led6estado == LOW) {
    // Enciende el led
    digitalWrite(led6, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led6, LOW);
  }
break;
case 0x15://Si el valor es 0x15
led7estado = digitalRead(led7);//Leemos el estado del pin 7
  // Si el estado es igual a LOW
  if (led7estado == LOW) {
    // Enciende el led
    digitalWrite(led7, HIGH);
  } else {
    // Por el contrario lo apaga
    digitalWrite(led7, LOW);
  }
break;
}
}
}

Credits

carlosvolt
34 projects • 4 followers

Comments