Autor Tema: problema para imprimir 2 datos por Serial.println  (Leído 656 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 265
problema para imprimir 2 datos por Serial.println
« 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.     }
« Última modificación: 03 de Septiembre de 2023, 10:46:35 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:problema para imprimir 2 datos por Serial.println
« Respuesta #1 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
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 265
Re:problema para imprimir 2 datos por Serial.println
« Respuesta #2 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.
Si algo parece complicado... es por que esta mal explicado.

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:problema para imprimir 2 datos por Serial.println
« Respuesta #3 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