Как использовать датчик расхода воды с малиной?

8

Я пытаюсь использовать этот датчик потока воды с малиной:

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

Я использую этот код Python для чтения импульсов:

#!/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()

К сожалению, этот код не работает должным образом, и, поскольку я новичок в raspberry, я не знаю, как решить эту проблему.

Я хотел бы знать, если необходимо использовать другой компонент в малину, например, MCP3008 или другой.

Если возможно, пришлите мне, как подключить сенсорный кабель тоже малина.

Thiago Scodeler
источник
Вы видели этот пост learn.adafruit.com/adafruit-keg-bot, который связан со страницей продукта, на которую вы ссылались выше?
Стив Робиллард

Ответы:

10

Импульсные выходы счетчика воды обычно имеют открытый сток.

Это означает, что они тянутся на землю, чтобы сигнализировать об импульсе, и высоко поддаются внешнему напряжению.

Для быстрой проверки измените следующие две строки.

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

в

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

а также

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

в

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

Джоан
источник
1
Привет, Джоан, код работает и импульсы подсчитаны. Спасибо!!
Тиаго Соделер