¿Cómo usar el sensor de flujo de agua con frambuesa?

8

Estoy tratando de usar este sensor de flujo de agua con frambuesa:

https://www.adafruit.com/products/828

Estoy usando este código de Python para leer los pulsos:

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time, sys

FLOW_SENSOR = 23

GPIO.setmode(GPIO.BCM)
GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

global count
count = 0

def countPulse(channel):
   global count
   count = count+1
   print count

GPIO.add_event_detect(FLOW_SENSOR, GPIO.RISING, callback=countPulse)

while True:
    try:
        time.sleep(1)
    except KeyboardInterrupt:
        print '\ncaught keyboard interrupt!, bye'
        GPIO.cleanup()
        sys.exit()

Desafortunadamente, este código no funciona correctamente y, como soy nuevo en frambuesa, no sé cómo resolver el problema.

Me gustaría saber si es necesario usar otro componente en frambuesa, como MCP3008 u otro.

Si es posible, envíeme cómo cablear los cables del sensor también es frambuesa.

Thiago Scodeler
fuente
¿ Viste esta publicación learn.adafruit.com/adafruit-keg-bot que está vinculada desde la página del producto que vinculaste arriba?
Steve Robillard

Respuestas:

10

Las salidas de pulso del medidor de agua suelen ser de drenaje abierto.

Esto significa que son llevados a tierra para señalar un pulso y flotar a un voltaje externo.

Como verificación rápida, cambie las siguientes dos líneas.

GPIO.setup (FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

a

GPIO.setup (FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP )

y

GPIO.add_event_detect (FLOW_SENSOR, GPIO.RISING, callback = countPulse)

a

GPIO.add_event_detect (FLOW_SENSOR, GPIO.FALLING , callback = countPulse)

joan
fuente
1
Hola Joan, el código está funcionando ahora y se cuentan los pulsos. ¡¡Gracias!!
Thiago Scodeler