0% encontró este documento útil (0 votos)
430 vistas6 páginas

Ejemplos Con Arduino

Este documento presenta tres ejemplos de código Arduino que utilizan estructuras de control como if, while y switch. El primer ejemplo muestra cómo recibir letras a través del puerto serie y ejecutar acciones condicionales basadas en la letra recibida. El segundo ejemplo enciende y apaga LED verde y amarillo dependiendo de un número enviado por el puerto serie, usando switch y if/else. El tercer ejemplo cuenta pulsaciones de un botón y muestra el recuento por el puerto serie, reiniciando cuando supere 20.

Cargado por

cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
430 vistas6 páginas

Ejemplos Con Arduino

Este documento presenta tres ejemplos de código Arduino que utilizan estructuras de control como if, while y switch. El primer ejemplo muestra cómo recibir letras a través del puerto serie y ejecutar acciones condicionales basadas en la letra recibida. El segundo ejemplo enciende y apaga LED verde y amarillo dependiendo de un número enviado por el puerto serie, usando switch y if/else. El tercer ejemplo cuenta pulsaciones de un botón y muestra el recuento por el puerto serie, reiniciando cuando supere 20.

Cargado por

cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

EJEMPLOS CON ARDUINO

EJEMPLO_1

SENTENCIA IF y while
Recibir comandos por un canal serie usando “while” e if
Una aplicación muy practica del ciclo “while” es poder recibir a través del canal serie (podría ser cualquier otro
canal de comunicación) es recibir varios caracteres seguidos uno tras de otro y formar palabras calve o
comandos.

Recibimos letras:

char letra;
void setup() {
 [Link](9800);
 pinMode(13,OUTPUT); //inicializamos el pin 13 como salida digital
}
void loop() {
 while([Link]()>0){
   /* Debemos de abrir el serial monitor del IDE para enviar comando.
    El bucle while terminará cuando presionemos la tecla enter.
    */
   letra=[Link]();// Se lee el carácter introducido
   delay(10);// El delay es necesario para no saturar el canal
 }
 if(letra=='A'){
   [Link]("El comando fue A");
 }
 if(letra=='B'){
   [Link]("El comando fue B");
 }
 if(letra=='C'){
   digitalWrite(13,HIGH);// enciende LED
  }
  If(letra=='D'){
   digitalWrite(13,LOW);//apaga LED
  }
}
EJEMPLO_2

SENTENCIA IF, WHILE, SWITCH


En este ejemplo, encenderemos o apagaremos dos LEDs dependiendo del contenido de un mensaje
enviado en el monitor serie al Arduino. El programa utiliza las siguientes estructuras de control:

 Switch Statement
 If-else if- else
 While Loop

LA PC DEBE DE ESTAR CONECTADO AL ARDUINO


Diagrama:

Los dos LEDs están conectados a dos pines de salida de Arduino, y el Arduino los enciende o apaga
usando declaraciones condicionales. Hay cuatro estados diferentes:

 Si el serial data == 1, sólo se encenderá el LED verde.


 Si el serial data ==2, sólo se encenderá el LED amarillo.
 Si el serial data ==3, ambos LEDs se encenderán.
 Si el serial data son iguales a cualquier otro valor, los LEDs se apagarán
Declaración de cambio por Switch

// USANDO SWITCH
const int green = 8; //led vede
const int yellow = 9; //led amarillo
char i; //variable auxiliar
void setup()
{
pinMode(green , OUTPUT); //como salidas
pinMode(yellow , OUTPUT);
[Link](9600); //para comunicación serie
}
void loop()
{
i = [Link](); // lectura del puerto serial
[Link](i); //escritura en el monitor serie
delay(50) ;
switch(i) // switch
{
case '1': //condición para el led verde
digitalWrite(green,HIGH);
digitalWrite(yellow,LOW);
delay(350);
break;
case '2': // condición para el led amarillo
digitalWrite(green,LOW);
digitalWrite(yellow,HIGH);
delay(350);
break;
case '3': //Condicion para ambos leds
digitalWrite(green,HIGH);
digitalWrite(yellow,HIGH);
delay(350);
break;
default: //leds apagados
digitalWrite(green,LOW);
digitalWrite(yellow,LOW);
break;
}
}
Usando declaraciones de If-Else
// Usando If - else
const int green = 8;
const int yellow = 9;
char i ;
void setup()
{
pinMode(green , OUTPUT); //salidas
pinMode(yellow , OUTPUT);
[Link](9600) ;
}
void loop()
{
i = [Link](); // lecturas del puerto serial
[Link](i);
delay(50);

//sentencias
if(i=='1') //si i es equivalente a 1
{
digitalWrite(green,HIGH);
digitalWrite(yellow,LOW);
delay(350);
}
else if(i=='2') //si i es equivalente a 2
{
digitalWrite(green,LOW);
digitalWrite(yellow,HIGH);
delay(350);
}
else if(i=='3') //si i es equivalente a 3
{
digitalWrite(green,HIGH);
digitalWrite(yellow,HIGH);
delay(350);
}
else //caso contrario
{
digitalWrite(green,LOW) ;
digitalWrite(yellow,LOW) ;
}
}
Usando while Loops
// Usando while Loop
const int green = 8 ;
const int yellow = 9 ;
char i ;
void setup()
{
pinMode(green , OUTPUT) ; //salidas
pinMode(yellow , OUTPUT) ;
[Link](9600) ;
}
void loop()
{
i = [Link]() ; // lectura del puerto serial- monitor serie
[Link](i) ;
delay(50) ;
digitalWrite(green,LOW) ;
digitalWrite(yellow,LOW) ;
while(i=='1') //ciclo while_mientras i sea equivalente a 1
{
digitalWrite(green,HIGH) ;
digitalWrite(yellow,LOW) ;
i = [Link]() ;
[Link](i) ;
delay(350) ;
}
while(i=='2') //ciclo while_mientras i sea equivalente a 2
{
digitalWrite(green,LOW) ;
digitalWrite(yellow,HIGH) ;
i = [Link]() ;
[Link](i) ;
delay(350) ;
}
while(i=='3') //ciclo while_mientras i sea equivalente a 3
{
digitalWrite(green,HIGH) ;
digitalWrite(yellow,HIGH) ;
i = [Link]() ;
[Link](i) ;
delay(350) ;
}
}
EJEMPLO_3

CONTADOR OPERADO POR UN PULSADOR DIGIITAL EN EL PIN 3 DEL ARDUINO UNO,


UTILIZANDO EL MONITOR SERIE PARA VISUALIZAR LOS DATOS DEL CONTEO_PARA
PROTEUS UTILIZAR EN INSTRUMENTOS – VIRTUAL TERMINAL (conectando al RX y TX del
arduino).

int entrada=3; //pin 3 del arduino

int cont=0;

int estado=0;

void setup() {
[Link](9600);
pinMode(entrada,INPUT);
[Link]("contador iniciado");
}

void loop() { //bucle

estado = digitalRead(entrada); //lectura digital en el pin 3

if(estado == HIGH){ //SI ESTADO ES EQUIVALENTE A 1


cont++; //CONTADOR DE INCREMENTO EN +1
while(estado == HIGH){ //antirebote (MIENTRAS ESTADO SEA EQUIVALENTE A UN ALTO - 1)
estado = digitalRead(entrada); //lectura digital en el pin 3
}
}

[Link](“VALOR: ”); //IMPRIMIR CARACTER

[Link](cont); //IMPRIMIR VALORES DEL CONTADOR

[Link](); //SALTO DE LINEA

if(cont > 20){ //SI CONT SUPERA EL VALOR DE 20

[Link]("REINICIANDO CONTEO");
cont=0; //cont a valores iniciales
}
}

También podría gustarte