Go Down

Topic: Encender led determinado con numero de encendidos (Read 132 times) previous topic - next topic

Santiago1011

Saludos como poder encerder led escribiendo en la terminal A/B por ejemplo deseo escribir A5 "A"= led 13 y "5" el numero de veces a encender u otro numero puede ser según sea el de agrado, B3 "B"= led 12 y "3" el numero de veces a encender u otro numero puede ser según sea el de agrado.

Tengo lo ejemplos por separado deseo juntaros. para poder escribir la letra y numero de veces a encender

Ejemplo para encender con letra:
Code: [Select]


char leer; // variable para almacenamiento de caracteres



void setup() {
Serial.begin(9600);  // inicialización del puerto serial para la comunicación a 9600 baudios
pinMode (13,OUTPUT); // se declara salida al pin que contiene el led, el número depende de la variable led1
digitalWrite(13, LOW);
pinMode (12,OUTPUT); // se declara salida al pin que contiene el led, el número depende de la variable led1
digitalWrite(12, LOW);

}

void loop() {
leer = Serial.read(); //almacena la lectura del puerto serial en la variable "leer" que es de tipo caracter
if (leer == 'A'){ //si en la variable leer aparece la letra "a"; y si el led no está encendido hacer lo siguiente:
  digitalWrite(13, HIGH);
      digitalWrite(12, LOW);
}else if (leer == 'B'){
  //digitalWrite(led1, LOW);
    digitalWrite(12, HIGH);
     digitalWrite(13, LOW);
}

}


Ejemplo para encender con numero de veces

Code: [Select]

const int ledPIN = 13;
 
int option;
 
void setup(){
  Serial.begin(9600);
  pinMode(ledPIN , OUTPUT);
}
 
void loop(){
  //si existe información pendiente
  if (Serial.available()>0){
    //leeemos la opcion
    char option = Serial.read();
    //si la opcion esta entre '1' y '9'
    if (option >= '1' && option <= '9')
    {
      //restamos el valor '0' para obtener el numero enviado
      option -= '0';
      for(int i=0;i<option;i++){
         digitalWrite(ledPIN , HIGH);
         delay(500);
         digitalWrite(ledPIN , LOW);
         delay(1000);
      }
    }
  }
}


Como poderlos fusionar estos 2 ejemplo para encender con letra seguido de numero de veces a encender

Kike_GL

Hola Santiago1011, bienvenido.

Debes tener en cuenta varios temas.

1. Siempre antes de leer con Serial.read() hay que preguntar si hay algo que leer con Serial.available().
2. Serial.read() lee un "caracter" a la vez de modo que para leer A5 hay que aplicar dos veces Serial.read().

Mira este ejemplo:

Code: [Select]

byte pin;
void setup(){
   Serial.begin(9600);
   pinMode(12, OUTPUT);
   pinMode(13, OUTPUT);
}
void loop(){
   if (Serial.available() == 2){
      char letra = Serial.read();
      char num = Serial.read();
      Serial.println(letra);     
      Serial.println(num);     
   }
}
Saludos, Kike_GL

Go Up