Go Down

Topic: Enviar numero dos cifras arduino Serial? (Read 678 times) previous topic - next topic

Alexrip

Hola amigos.. ¿Como podria mandarle a arduino por ejemplo el numero 11? Como solo reconoce de uno en uno me hace dos veces lo que tengo en el numero 1.

¿Como podria hacer esto? me he quedado muy limitado con solo tener del 0 al 9 :S

ynzekt

Hola, bien puedes mandar varios bytes en una llamada a write(), en la referencia hay muchas funciones puedes checarlas todas y ves si alguna otra sirve, para que necesitas mandar números de más de una cifra?
Saludos

Alexrip

Porque estoy haciendo un control de infrarrojos y quiero añadir todos los botones del mando

Alexrip

He encontrado este codigo que muestra en monitor serial todo lo que le escribo pero no se hacer un if con lo escrito...

Code: [Select]

void setup (){
  Serial.begin(9600);
  Serial.flush();
  digitalWrite (13, HIGH);      //turn on debugging LED
}

void loop (){

  int i=0;
  char commandbuffer[100];

  if(Serial.available()){
     delay(100);
     while( Serial.available() && i< 99) {
        commandbuffer[i++] = Serial.read();
     }
     commandbuffer[i++]='\0';
  }

  if(i>0)
     Serial.println((char*)commandbuffer);

}

_jose_

Hola,puedes hacer un String en el cual acumular los digitos que introduces y al final pasarlos a un int para evaluar con un switch:
Code: [Select]
void setup(){
  Serial.begin(9600);
}
void loop(){
  String codigo = "";
  while(Serial.available() > 0){
    char ch = Serial.read();
    if (isDigit(ch)) { //Filtrado de entrada solo deja numeros 0 al 9
      codigo += ch;
    }
  }
  switch(codigo.toInt()){  // transformas String en int para poder evaluarlo con switch
    case 1:
      Serial.println("Has marcado el 1");
    break;
    //Evaluas todos los numeros que quieras
    case 12:
      Serial.println("Has marcado el 12");
    break;   
    default:
      Serial.println("Codigo no valido");
  }
  delay(1000);

tifilus

buenas Alexrip!

Yo estoy haciendo algo parecido cogiendo los char uno a uno y esperando al siguiente, pero porque necesito meter los datos de esa manera..

aun asi, has probado con meter letras? 'a', 'b','c', incluso 'A', 'B','C',... si lo tuyo es por opciones, que necesitas más de 10.. ahí tienes 50 más!

Saludos!

Go Up