Hola,
Para las personas que buscan usar el Arduino en aplicaciones de conteo de pulsos ó frecuencia les dejo un Sketch de Arduino para poder realizar esta tarea y enviar al valor a MyOpenLab con el elemento Arduino Interface I/O.
La entrada de pulsos se debe conectar al Pin 2 del Arduino como se ve en el código y en MyOpenLab ya existe un ejemplo del elemento ubicado en "VirtualMachines">"Raspberry PI">"ArduinoSimpleInterface_JV"
Solo deben cargar este código al Arduino y que la velocidad de comunicación configurada en el Sketch sea la correcta según la versión de MyOpenLab que usan, 9600 baudios si usan v3.11.0 o 115.200 baudios si usan la versión de vista previa v3.12.0.
Este ejemplo puede aplicar para usar sensores de flujo de líquidos como el FS400A, FS300A o cualquier otra referencia que se base en generación de pulsos ó simplemente para medir frecuencias ya que el Arduino trabaja en el conteo de forma independiente a la velocidad de comunicación entre MyOpenLab y el Arduino.
*En este Sketch se usa el Pin 2 para contar los pulsos por interrupción en el flanco descendente, el cual está habilitado para Interrupciones en casi todas las tarjetas Arduino y puede ser modificado por el usuario para contar en Flanco Ascendente o en los dos según se requiera.
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
Cordial saludo,
Javier Velásquez
Que tal! Buen día!
Esto quiere decir con con StandarFirmata no es posible contar los pulsos? Solo cargando este código a la placa arduino podré contar pulsos?
Saludos! =)
Hola,
Con Firmata puede ser posible contar los pulsos pero sería una frecuencia muy baja, unos 4 Hz o menos y dependería de la carga de la CPU (Lo mismo pasa en LabVIEW cuando se usa una tarjeta de entradas digitales pero no tiene módulo contador sino que se hace "polling" por software para contar los flancos).
El ejemplo que subí hace que el Arduino Independientemente de si el software pregunta o no, siga contando los pulsos a la velocidad máxima del micro-controlador, lo cual lo hace más confiable y preciso en su conteo para frecuencias hasta de unos 16KHz (si se modifica este código para usar el módulo contador del Pin 7 de Arduino UNO incluso llega a contar pulsos a frecuencias de 7MHz sin optoacoplador o 4MHz con Optoacoplador HCPL-2211).
Con la Firmata se podría también implementar un conteo y modificar unas lineas de código para que por ejemplo en lugar de enviar el valor de la conversión AD del pin A0 envíe el número de pulsos que lleva contados y que al encender por ejemplo el Pin digital 13 la cuenta se reinicie, así el elemento firmata de MyOpenLab funcionaría sin ninguna modificación al software pero requiere un buen nivel de conocimiento en la programación de Arduino.
Coridial saludo,
Javier Velásquez
Muchas gracias por tu aporte, voy a intentar hacerlo.
Yo soy una persona que recién se inicia en el mundo de Arduino y encontré en MyOpenLab una herramienta muy interesante para visualizar de manera gráfica los procesos que se realizan con esta placa.
Estoy realizando un proyecto donde involucra la medición de niveles de una cisterna, y con la forma tradicional de programación con Arduina no tengo problemas, pero me empece a romper la cabeza en MyOpenLab para poder capturar en una variable el tiempo que se demora la señal en llegar al pin echo, no había forma de encontrar la solucion, claro que tenia configurado en mi sketch el pin3 echo y el pin4 para trig, en fin.
Pero voy a intentar seguir los pasos con la solución que estas brindando.
Saludos cordiales