ARDUINO TIPS #6: FUNCION SerialEvent() - BUFFER SERIAL

Поділитися
Вставка
  • Опубліковано 27 лис 2024

КОМЕНТАРІ • 30

  • @humbertoleal7683
    @humbertoleal7683 3 роки тому +1

    Excelente, como todos sus videos, muy buen dato. Saludos desde Bogota

  • @tecnologiasnegerenia
    @tecnologiasnegerenia 2 роки тому +1

    La segunda parte del video , lo que nesecitaba. Gracias por compatir.

  • @CaliBeta
    @CaliBeta 3 роки тому +1

    Excelente muchas gracias, crees que funcione también con el software serial o colo con funciona con los puertos UART nativos que existen en cada microcontrolador?

    • @jadsa
      @jadsa  3 роки тому

      Hola, no funciona con software serial. Solo puertos nativos. Saludos.

  • @gabrieldagostino2188
    @gabrieldagostino2188 2 роки тому +1

    Muchas gracias, me sirviò mucho la info que compartiste.
    Tengo cuna consulta.
    Necesitarìa que, en vez de imprimir el string, al llegar al caracter "salto de linea /n". Copiarlo a otro string y que se copien "i" strings mediante un bucle que incrmente los strings en la medida que se copian.
    Serà posible algo asì?

    • @jadsa
      @jadsa  2 роки тому

      Se puede, busca string manipulation con arduino para que tengas varias funciones de ayuda.

    • @gabrieldagostino2188
      @gabrieldagostino2188 2 роки тому

      @@jadsa muchas gracias

  • @Pocahontas18
    @Pocahontas18 9 місяців тому +2

    hola buenos dias, tengo una duda, cuando se lee el dato del buffer este se borra?

    • @jadsa
      @jadsa  9 місяців тому

      Si

    • @Pocahontas18
      @Pocahontas18 9 місяців тому

      @@jadsa existe alguna forma de que se mantenga el dato?

    • @Pocahontas18
      @Pocahontas18 9 місяців тому

      Mi problema es el siguiente.
      Tengo una pantalla nextion y envío datos desde ella, es decir un dato=1,2 o 3, entonces con estos datos indico que encienda mi proceso pero no se repite en el loop, como puedo lograr mantener el dato o si existe alguna forma de que se siga repitiendo el loop

  • @reynaldowify
    @reynaldowify 3 роки тому +1

    Excelente. De los mejores tutoriales en YT. Hasta ahora no conocia el comando .reserve Funciona con todo tipo de variables?, Es decir, con arrays sin declaracion de cantidad de elementos, por ejemplo?

    • @jadsa
      @jadsa  3 роки тому +1

      Solamente es para el tipo de dato String

    • @reynaldowify
      @reynaldowify 3 роки тому

      @@jadsa Muchas gracias. Siendo nuevo en este tema, me cuesta encontrar tutoriales buenos, los tuyos son la excepcion.
      Me tomo el atrevimiento de comentarte mi interes: Personalmente no veo mayor utilidad en el manejo de texto en arduino. para eso esta la laptop, salvo algun uso de display LCD o display de leds.
      Pero si, arduino es mucho mas que un juguete para escribir "Hola mundo", Con las suficientes precauciones, se puede convertir en un excelente y potente PLC, mucho mas versatil y programable que la mayoria. De hecho, estoy desarrollando una aplicacion para controlar una secadora industrial de ropa, con timer, control de motor, valvula de gas, sensor de temperatura, display de 7 segmentos 4 digitos y algunos comandos de botonera.
      La referencia de lenguaje de arduino, realmente es demasiado escueta y he decubierto sentencias como DDRx y PORTx desde otros lados, de muchisima utilidad, pero que arduino no menciona.
      No es mi intencion estudiar todo C++, pero si me interesa el potencial de arduino, particularmente el mega, del cual hay muy pocos tutoriales. Da la impresion de que mayormente los tutos estan dirigidos a jugar con el arduino1, o robots de juguete con versiones mas chicas, pero realmente pocos para explorar el fantastico potencial que encierra
      Realmente muy agradecido por tus tutoriales
      Saludos desde Argentina

  • @millervillamarbravo
    @millervillamarbravo 2 роки тому +1

    Como incremento el tamaño del buffer? . Supongamos que desconozco la cantidad de bytes que va a llegar por el puerto serie y los 64 byte de Arduino no son suficientes. Como lo incremento a más? O como puedo almacenar los bytes que llegan en otra memoria.

  • @reynaldowify
    @reynaldowify 3 роки тому

    Muy bueno!!!! Me pregunto si en arduino mega los puertos van del 0 al 3 o del 1 al 4
    Gracias!!

    • @jadsa
      @jadsa  3 роки тому +1

      Hola, el puerto serial por defecto no tiene número, los demás son el 1, 2, 3.

    • @reynaldowify
      @reynaldowify 3 роки тому

      @@jadsa Muchas gracias

  • @T0berius
    @T0berius 3 роки тому +1

    Bien explicado.
    No se donde usaria este tip.

    • @jadsa
      @jadsa  3 роки тому +1

      Para tus comunicaciones seriales con otros microcontroladores, la pc e incluso algún dispositivo móvil.

    • @T0berius
      @T0berius 3 роки тому +1

      @@jadsa gracias por responder JHIMMY.
      Saludos desde Argentina.

  • @jonatantolentino1226
    @jonatantolentino1226 3 роки тому

    Super.

  • @josequinteroquinterodeoro283
    @josequinteroquinterodeoro283 3 роки тому

    Excelente men 👍

  • @davidcg2717
    @davidcg2717 3 роки тому

    hola muy buen video
    Pero tengo una pregunta
    yo estoy haciendo un programa en el cual tengo una comunicación serial con simulink y de ahi recibo unos valores y debo operar el valor presente - el valor pasado y eso dividirlo en el periodo de muestreo, pero no se como almacenar esos dos valores para operarlos

    • @jadsa
      @jadsa  3 роки тому

      Hola, podrías mostrar tu código para poder entender mejor tu pregunta?

    • @AntonioMartinez-xt7gg
      @AntonioMartinez-xt7gg 3 роки тому

      No se si la idea es esta. Parece que quieres 'integrar' una señal capturada por un sensor analogico. Defines dos variables, una "ValorActual" y otra "ValorAnterior". LA primera vez ambas toman el primer valor que venga del canal serie y tendras un incremento de valor igual a cero al ser iguales, divides por el tiempo de muestreo, seguramente será fijo del Sample&hold del ADC y tendras el primer valor igual a cero. [Cuidado no vayas a dividir por un tiempo de muestreo igual a cero dando un error de resultado]
      Luego tienes que pasar el contenido de "ValorActual" a la variable "ValorAnterior" y entrar en bucle, loop, para repetir la captura del nuevo valor del canal serie y meterlo en la variable "ValorActual", repetir la diferencia para el calculo del incremento y dividir otra vez por el tiempo transcurrido para el nuevo muestreo del ADC, siguiendo el bucle.
      Dentro del bucle tendrás que manejar los resultados consecutivos de la division (normalizar, filtrar, limitar) y supongo que o bien los envias por un canal serie o los metes en un string o fichero en la mem SD, registro de una tabla de la base de datos con mysql para graficar...
      Saludos.

  • @danielbragabarros8598
    @danielbragabarros8598 3 роки тому +1

    Como limpar o buffer? Serial.flush() não funciona. How to clear the buffer? Serial.flush() don't work.

    • @jadsa
      @jadsa  3 роки тому +1

      Flush() does not work anymore for clearing the buffer, it does something else now. The only way you can clear the buffer is reading all the bytes. In a loop you can use serial.available > 0 and serial.read until the buffer gets empty.

  • @lluistherese6854
    @lluistherese6854 2 роки тому

    Gracias por tu trabajo. ¿Cómo funciona SerialEvent() con puertos creados con la librería SoftwareSerial ?

    • @jadsa
      @jadsa  2 роки тому +1

      Hola, no funciona con software serial.