[Resuelto] ¿Cómo puedo contar pulsos ó medir frecuencia con Arduino y MyOpenLab?  

  RSS

admin
(@admin)
Miembro Admin
Registrado:hace 1 año 
Respuestas: 49
21/05/2018 10:32 pm  

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


ResponderCitar
Jafet
(@jafet)
Active Member
Registrado:hace 1 año 
Respuestas: 6
23/08/2018 10:49 am  

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! =)


ResponderCitar
admin
(@admin)
Miembro Admin
Registrado:hace 1 año 
Respuestas: 49
23/08/2018 12:45 pm  

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


ResponderCitar
Share: