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.
Components and supplies
1
Arduino Nano
Apps and platforms
1
rogerbit.
Project description
Code
Source code
c
1int led3 = 3; 2int led4 = 4; 3int led5 = 5; 4int led6 = 6; 5int led7 = 7; 6int led8 = 8; 7int led9 = 9; 8int led10 = 10; 9int led3estado = 0; 10int led4estado = 0; 11int led5estado = 0; 12int led6estado = 0; 13int led7estado = 0; 14int led8estado = 0; 15int led9estado = 0; 16int led10estado = 0; 17byte com = 0; 18int estadoBoton11 = 0; 19int estadoBoton12 = 0; 20int estadoBotonA5 = 0; 21int estadoBotonA0 = 0; 22int estadoBotonA1 = 0; 23int estadoBotonA2 = 0; 24int estadoBotonA3 = 0; 25int estadoBotonA4 = 0; 26 27int estado11 = 0; 28int estado12 = 0; 29int estadoA5 = 0; 30int estadoA0 = 0; 31int estadoA1 = 0; 32int estadoA2 = 0; 33int estadoA3 = 0; 34int estadoA4 = 0; 35//Pulsadores 36int botonPin11 =11; 37int botonPin12 =12; 38int botonPinA5 =A5; 39int botonPinA0 =A0; 40int botonPinA1 =A1; 41int botonPinA2 =A2; 42int botonPinA3 =A3; 43int botonPinA4 =A4; 44void setup() 45{ 46Serial.begin(9600);//Velocidad a la que trabaja el módulo de reconocmiento de voz 47pinMode(led3, OUTPUT); // Establece el led3 como una salida 48pinMode(led4, OUTPUT); // Establece el led4 como una salida 49pinMode(led5, OUTPUT); // Establece el led5 como una salida 50pinMode(led6, OUTPUT); // Establece el led6 como una salida 51pinMode(led7, OUTPUT); // Establece el led6 como una salida 52pinMode(led8, OUTPUT); // Establece el led6 como una salida 53pinMode(led9, OUTPUT); // Establece el led6 como una salida 54pinMode(led10, OUTPUT); // Establece el led2 como una salida 55digitalWrite(3,HIGH); 56digitalWrite(4,HIGH); 57digitalWrite(5,HIGH); 58digitalWrite(6,HIGH); 59digitalWrite(7,HIGH); 60digitalWrite(8,HIGH); 61digitalWrite(9,HIGH); 62digitalWrite(10,HIGH); 63delay(2000); 64//Pines como entradas para los pulsadores 65pinMode(botonPin11, INPUT_PULLUP); 66pinMode(botonPin12, INPUT_PULLUP); 67pinMode(botonPinA5, INPUT_PULLUP); 68pinMode(botonPinA0, INPUT_PULLUP); 69pinMode(botonPinA1, INPUT_PULLUP); 70pinMode(botonPinA2, INPUT_PULLUP); 71pinMode(botonPinA3, INPUT_PULLUP); 72pinMode(botonPinA4, INPUT_PULLUP); 73//Comando para cambiar al modo compacto 74Serial.write(0xAA); 75Serial.write(0x37); 76delay(1000); 77// Importa el grupo 1 78Serial.write(0xAA); 79Serial.write(0x21); 80} 81void loop() // Correr una y otra vez 82{ 83estadoBoton11 = digitalRead(botonPin11);//Leemos el pulsador para ver su estado 84estadoBoton12 = digitalRead(botonPin12);//Leemos el pulsador para ver su estado 85estadoBotonA5 = digitalRead(botonPinA5);//Leemos el pulsador para ver su estado 86estadoBotonA0 = digitalRead(botonPinA0);//Leemos el pulsador para ver su estado 87estadoBotonA1 = digitalRead(botonPinA1);//Leemos el pulsador para ver su estado 88estadoBotonA2 = digitalRead(botonPinA2);//Leemos el pulsador para ver su estado 89estadoBotonA3 = digitalRead(botonPinA3);//Leemos el pulsador para ver su estado 90estadoBotonA4 = digitalRead(botonPinA4);//Leemos el pulsador para ver su estado 91///Botón 11 precionado/// 92if (estadoBoton11 == LOW) { 93//Leemos el estado del pin 3 94led3estado = digitalRead(led3); 95 // Si el led está apagado se cumple esta condición 96 if (led3estado == LOW) { 97 // Y enciende el led 3 98 digitalWrite(led3, HIGH); 99 } else { 100 // Por el contrario lo apaga 101 digitalWrite(led3, LOW); 102 } 103delay(350);//Delay antirrebote 104} 105///Botón 12 precionado/// 106if (estadoBoton12 == LOW) { 107//Leemos el estado del pin 4 108led4estado = digitalRead(led4); 109 // Si el led está apagado se cumple esta condición 110 if (led4estado == LOW) { 111 // Y enciende el led 4 112 digitalWrite(led4, HIGH); 113 } else { 114 // Por el contrario lo apaga 115 digitalWrite(led4, LOW); 116 } 117delay(350);//Delay antirrebote 118} 119///Botón A5 precionado/// 120if (estadoBotonA5 == LOW) { 121//Leemos el estado del pin 5 122led5estado = digitalRead(led5); 123 // Si el led está apagado se cumple esta condición 124 if (led5estado == LOW) { 125 // Y enciende el led 5 126 digitalWrite(led5, HIGH); 127 } else { 128 // Por el contrario lo apaga 129 digitalWrite(led5, LOW); 130 } 131delay(350);//Delay antirrebote 132} 133///Botón A0 precionado/// 134if (estadoBotonA0 == LOW) { 135//Leemos el estado del pin 6 136led6estado = digitalRead(led6); 137 // Si el led está apagado se cumple esta condición 138 if (led6estado == LOW) { 139 // Y enciende el led 6 140 digitalWrite(led6, HIGH); 141 } else { 142 // Por el contrario lo apaga 143 digitalWrite(led6, LOW); 144 } 145delay(350);//Delay antirrebote 146} 147///Botón A1 precionado/// 148if (estadoBotonA1 == LOW) { 149//Leemos el estado del pin 7 150led7estado = digitalRead(led7); 151 // Si el led está apagado se cumple esta condición 152 if (led7estado == LOW) { 153 // Y enciende el led 7 154 digitalWrite(led7, HIGH); 155 } else { 156 // Por el contrario lo apaga 157 digitalWrite(led7, LOW); 158 } 159delay(350);//Delay antirrebote 160} 161///Botón A2 precionado/// 162if (estadoBotonA2 == LOW) { 163//Leemos el estado del pin 8 164led8estado = digitalRead(led8); 165 // Si el led está apagado se cumple esta condición 166 if (led8estado == LOW) { 167 // Y enciende el led 8 168 digitalWrite(led8, HIGH); 169 } else { 170 // Por el contrario lo apaga 171 digitalWrite(led8, LOW); 172 } 173delay(350);//Delay antirrebote 174} 175///Botón A3 precionado/// 176if (estadoBotonA3 == LOW) { 177//Leemos el estado del pin 9 178led9estado = digitalRead(led9); 179 // Si el led está apagado se cumple esta condición 180 if (led9estado == LOW) { 181 // Y enciende el led 9 182 digitalWrite(led9, HIGH); 183 } else { 184 // Por el contrario lo apaga 185 digitalWrite(led9, LOW); 186 } 187delay(350);//Delay antirrebote 188} 189///Botón A4 precionado/// 190if (estadoBotonA4 == LOW) { 191//Leemos el estado del pin 10 192led10estado = digitalRead(led10); 193 // Si el led está apagado se cumple esta condición 194 if (led10estado == LOW) { 195 // Y enciende el led 10 196 digitalWrite(led10, HIGH); 197 } else { 198 // Por el contrario lo apaga 199 digitalWrite(led10, LOW); 200 } 201delay(350);//Delay antirrebote 202} 203////Lectura de datos desde módulo de reconocimiento de voz 204while(Serial.available()) 205{ 206//Captura los caracteres del puerto serial y se los asigna a la variable "com" 207com = Serial.read(); 208//Se compara la variable "com" 209switch(com)//Estructura de control switch, case 210{ 211case 0x11://Si el valor es 0x11 212led3estado = digitalRead(led3);//Leemos el estado del pin 3 213 // Si el estado es igual a LOW 214 if (led3estado == LOW) { 215 // Enciende el led 216 digitalWrite(led3, HIGH); 217 } else { 218 // Por el contrario lo apaga 219 digitalWrite(led3, LOW); 220 } 221break; 222case 0x12://Si el valor es 0x12 223led4estado = digitalRead(led4);//Leemos el estado del pin 4 224 // Si el estado es igual a LOW 225 if (led4estado == LOW) { 226 // Enciende el led 227 digitalWrite(led4, HIGH); 228 } else { 229 // Por el contrario lo apaga 230 digitalWrite(led4, LOW); 231 } 232break; 233case 0x13://Si el valor es 0x13 234led5estado = digitalRead(led5);//Leemos el estado del pin 5 235 // Si el estado es igual a LOW 236 if (led5estado == LOW) { 237 // Enciende el led 238 digitalWrite(led5, HIGH); 239 } else { 240 // Por el contrario lo apaga 241 digitalWrite(led5, LOW); 242 } 243break; 244case 0x14://Si el valor es 0x14 245led6estado = digitalRead(led6);//Leemos el estado del pin 6 246 // Si el estado es igual a LOW 247 if (led6estado == LOW) { 248 // Enciende el led 249 digitalWrite(led6, HIGH); 250 } else { 251 // Por el contrario lo apaga 252 digitalWrite(led6, LOW); 253 } 254break; 255case 0x15://Si el valor es 0x15 256led7estado = digitalRead(led7);//Leemos el estado del pin 7 257 // Si el estado es igual a LOW 258 if (led7estado == LOW) { 259 // Enciende el led 260 digitalWrite(led7, HIGH); 261 } else { 262 // Por el contrario lo apaga 263 digitalWrite(led7, LOW); 264 } 265break; 266} 267} 268}
Comments
Only logged in users can leave comments