TODOPIC

Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: johenrod en 03 de Septiembre de 2023, 10:42:04

Título: problema para imprimir 2 datos por Serial.println
Publicado por: johenrod en 03 de Septiembre de 2023, 10:42:04
Cordial saludo. Tengo un problema tratando de imprimir dos datos por el puerto serie.
Al momento de  tratar de imprimir por el puerto serial, solo imprime uno de los dos.

Serial.println( lectura);
Serial.println(conta2/5); 

Si comento uno imprime el otro, pero no los dos.
Que podría estar pasando?
Gracias de antemano.


Código: C
  1. float tiempo1;
  2.     float tiempo2;
  3.     float rpm;
  4.     volatile unsigned pulso=0;
  5.     int conta1=0;// aux para promedio
  6.     volatile float conta2=0; // aux para promedio
  7.  
  8.     int led=13;
  9.  
  10.     int MOSFET = 11;  // pin salida pwm
  11.     int Sensor = A0; //potenciometro
  12.     volatile int lectura=0;  // guarda el valor del potenciometro;
  13.  
  14.     void setup(){
  15.      Serial.begin(57600) ;
  16.      pinMode(13,led);
  17.      pinMode(2,INPUT);
  18.      pinMode(MOSFET, OUTPUT);
  19.  
  20.      attachInterrupt(0,TICK,RISING);
  21.      tiempo2 = 0;
  22.     }
  23.  
  24.     void loop()
  25.     {
  26.  
  27.        lectura = analogRead(Sensor);
  28.        lectura = map(lectura, 0, 1023, 0, 100);
  29.        Serial.println( lectura);
  30.  
  31.        if(pulso==8) //8 aspas
  32.        {
  33.        detachInterrupt(0);
  34.        pulso=0;
  35.        tiempo1 = tiempo2;
  36.        tiempo2 = micros() ;
  37.        rpm = 60000000.0/(tiempo2 - tiempo1);//60 segundos por 1 millon
  38.  
  39.        // promedio*****************
  40.        conta1++;
  41.        conta2=rpm+conta2;
  42.  
  43.           if (conta1==5)
  44.           {
  45.           Serial.println(conta2/5);
  46.           conta1=0;
  47.           conta2=0;
  48.           }
  49.        // fin  promedio*****************
  50.       attachInterrupt(0,TICK,RISING);
  51.       }
  52.  
  53.    
  54.     }
  55.  
  56.     void TICK()
  57.     {
  58.     pulso++;
  59.     }
Título: Re:problema para imprimir 2 datos por Serial.println
Publicado por: DominusDRR en 03 de Septiembre de 2023, 11:18:54
No soy experto en Arduino, pero leyendo por ahí un poco, talvez debes esperar que el buffer de transmisión a que esté vacío para volver a transmitir algo:

Código: C
  1. while(Serial.available())
  2. {
  3.  
  4. }

Fuente:  https://forum.arduino.cc/t/how-to-know-when-serial-has-finished-sending/116582/6 (https://forum.arduino.cc/t/how-to-know-when-serial-has-finished-sending/116582/6)
Título: Re:problema para imprimir 2 datos por Serial.println
Publicado por: johenrod en 03 de Septiembre de 2023, 14:06:50
No soy experto en Arduino, pero leyendo por ahí un poco, talvez debes esperar que el buffer de transmisión a que esté vacío para volver a transmitir algo:

Código: C
  1. while(Serial.available())
  2. {
  3.  
  4. }

DominusDRR, gracias por tu respuesta.
implemente lo que propones y otros ejemplos del link, pero sigue sin funcionar.
Título: Re:problema para imprimir 2 datos por Serial.println
Publicado por: Eduardo2 en 03 de Septiembre de 2023, 17:21:32
Cordial saludo. Tengo un problema tratando de imprimir dos datos por el puerto serie.
Al momento de  tratar de imprimir por el puerto serial, solo imprime uno de los dos.

Serial.println( lectura);
Serial.println(conta2/5); 

Si comento uno imprime el otro, pero no los dos.
Que podría estar pasando?
...................

De la manera en que está escrito, se envían miles de lectura por cada conta2/5