Pages: [1]   Go Down
Author Topic: Enviar numero dos cifras arduino Serial?  (Read 612 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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);

}
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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);
Logged

Offline Offline
Newbie
*
Karma: 3
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Pages: [1]   Go Up
Jump to: