Comunicación Serial con Arduino: Encender luces desde el teclado de nuestra computadora

32
54854

En esta entrega nos enfocaremos en encender un LED con las teclas de nuestra computadora, utilizando Comunicación Serial con Arduino.

Para encender el LED utilizaremos la tecla 1 del teclado alfanumérico (o bien del numérico) y cualquier otra tecla se encargará de apagar el LED.

Nos basaremos en el ejemplo que publiqué en mi anterior post.

El código es el siguiente:

 

A este código necesitamos agregarle algunas líneas para que funcione y cumpla con nuestros propósitos.

 

Como podemos apreciar, hemos agregado una estructura selectiva doble. El if nos ayuda a verificar el valor que tenga input. Cuando el valor que estemos tecleando sea 1, el LED se encenderá. Si el valor es diferente de uno (esto lo definimos con el else) entonces el LED se apagará.

Ahora que tenemos este código listo, podemos subirlo al microcontrolador y verificar si funciona o no.

Recuerden que deben colocar un LED con el ánodo en el Pin 13 de su Arduino y el cátodo en el pin GND de Arduino. No necesita resistencia de protección. Para más información consultar el post de Como encender un LED con Arduino.

Los comandos de encendido y apagado los enviaremos a Arduino utilizando el Monitor Serial. Cuando presionemos 1 y ENTER se encenderá el LED. Cuando presionemos cualquier otro caracter y ENTER se apagará.

Como podemos observar en el video, es muy sencillo lograr el resultado esperado. Esto supone una gran herramienta para cualquier persona que este interesada llevar a cabo proyectos de alto perfil. Este es el principio de un PLC o Control Lógico Programable.

Nosotros podríamos encender las luces de nuestra casa desde nuestra computadora si las conectamos a Arduino a través de un dispositivo de conmutación como un TRIAC (con su respectivo optoacoplador) para corriente alterna, o un transistor, dígase NPN o PNP para corriente directa. Las posibilidades con Arduino son inmensas y utilizando estas simples líneas de código que les he presentado en este post usted es capaz de abrirse a una infinidad de posibilidades.

0 0 votes
Article Rating
Suscríbete
Notify of
guest

32 Comments
newest
oldest most voted
Inline Feedbacks
View all comments
yakelin
yakelin
4 months ago

hola me gusta este tutorial, sigue adelante, que Dios te bendiga, mi pregunta es porque no corre el programa si en vez de int uso String

Laura
Laura
1 year ago

Para que sirve y para que se utiliza

Rey Valdés
Rey Valdés
1 year ago

Almacena en memoria un valor numérico, realiza también la colocación de 3 LED’s, usando los pines 10, 11 y 12, luego provoca la lectura de dicho valor, si el valor leído es igual a 0, que muestre en el monitor serial la frase «Qué frío» y todos los leds apagados. Si el valor leído es igual a 20 la frase «clima agradable» y deberá encenderse uno de los led. Si el valor leído es igual a 30, que muestre en el monitor serial la frase «Qué calor» y encender dos led. Si el valor leído es superior a 42, que… Read more »

Rey Valdés
Rey Valdés
1 year ago
Reply to  Rey Valdés

Puede ayudarme con mi ejercicio? ;(

JULIAN BETANCUR
JULIAN BETANCUR
2 years ago

COMO PUEDO PRENDER Y APAGAR UN LED CON LA MISMA LETRA, O CON EL MIS CARACTER.

Yeyo
Yeyo
2 years ago

La clásica es utilizar una variable boolena.
bool estadoLed = true;


bool alPrecionarCarcacter(){ //eventos
estadoLed = – estadoLed; //Se permuta entre true y false
}

Camilo Forero Q.
Camilo Forero Q.
2 years ago

Antony mil gracias, me funciono perfecto, me abre grandes posibilidades.
Un abrazo!

Camilo Forero Q.

Dante
Dante
3 years ago

como hago esto con texto

Julian
Julian
3 years ago

Hola. Ya hice todas las pruebas y no logro hacerlo andar. Cuando escribo 1 en el monitor serial, el led solo pestañea o sea prende y apaga en un segundo y no logro que quede encendido. Tengo el arduino uno. Ayuda porfa!!!

Mario
Mario
4 years ago

¿Como podría hacerle para utilizar mas de 2 caracteres?

isaac ortiz
isaac ortiz
4 years ago

se puede usar letras!!!
que con la letra «E»mayúscula ENCIENDA y con la «e» se apague!!!!

Ivan Barrios
Ivan Barrios
5 years ago

Como hago para controlar varios leds por puerto serial con pwm?, ayuda por favor.

Jose Velasco
Jose Velasco
6 years ago

Antony un saludo, podrias modificar el código para poder controlar 4 o 5 leds? o sea tecla 1 un led, tecla 2 otro led, etc. .. o dime qe hay que modificar en el código. GRACIAS

Antony García González
Antony García González
6 years ago
Reply to  Jose Velasco

Bueno, si lo que hicimos en este post es agregar una salida (pinmode) para el pin 13, debes agregar una para cada uno de los pines de salida que vayas a usar. Luego solo te limitas a agregar condiciones para los caracteres que recibas

Jose Velasco
Jose Velasco
6 years ago

al que le aparesca el error solo copia y pega esto.

int input;
void setup(){

pinMode(13, OUTPUT); // Declaramos que utilizaremos el pin 13 como salida

Serial.begin(9600);
}

void loop(){
if (Serial.available()>0){

input=Serial.read();

if (input==’1′){

digitalWrite(13, HIGH); //Si el valor de input es 1, se enciende el led

}

else

{

digitalWrite(13, LOW); //Si el valor de input es diferente de 1, se apaga el LED

}

}
}

Adrian Martinez
Adrian Martinez
6 years ago

como harias eso en CCS Pic Compiler y un pic18F4550?

Uriel Uribe
Uriel Uribe
9 years ago

@santiago… pq estas usando comillas dobles para un solo caracter se usa solo una comilla 😉 (‘1’)

felix vargas
felix vargas
9 years ago

amigos soy nuevo y tuve problemas con este codigo y lo pude corregir.. uso el arduino uno. primero quite las comillas y el numero uno por el valor ascii quedandome asi: if (input==49). me gusto el aporte… gracias.

antonygarciagonzalez
9 years ago
Reply to  felix vargas

Gracias por reportar el error

walo
walo
4 years ago
Reply to  felix vargas

Gracias, con tu corrección , si funciona

Lean
Lean
4 years ago
Reply to  felix vargas

Muchas gracias por la ayuda!!.

Santiago
Santiago
9 years ago

Los he estado probando en el arduino UNO pero al compilar me saca errores primero con las comillas «1» luego se las quite y enciende el led , pero nunca es capaz de apagarlo por mas que intente.

antonygarciagonzalez
9 years ago
Reply to  Santiago

Revisa el código que debe haber algo que este faltando

Victor Becerra
Victor Becerra
5 years ago
Reply to  Santiago

al teclear cualquier otra letra se debe apagar, ami me funciono bien

Victor Becerra
Victor Becerra
5 years ago
Reply to  Victor Becerra

int input;
void setup() {
pinMode(12,OUTPUT);
Serial.begin(9600);

}

void loop() {
if (Serial.available()>0) {
input=Serial.read();
if (input==’1′){
digitalWrite(12,HIGH);
Serial.println(input);

}
else
{
digitalWrite(12,LOW);
Serial.println(input);
}
}
}