I am working on interfacing a Neptune FS-100 flow sensor unit with my raspberry pi.
After taking it apart, I have found inside a Honeywell SS460S Hall sensor (http://www.mouser.com/ds/2/187/honeywel ... 794951.pdf) and a 120ohm resistor between V+ and the output pin.
The Neptune control module for their flow sensors say:
I looked at the data sheet for the hall sensor and i'm trying to make sense of it.In addition to the four sensor ports, the FMM also has a DC24 accessory port and a power supply input. This adds another controllable outlet to your Apex set up. So, for instance, if you do want to make your own ATO and attach our available PMUP or Solenoid Valve, you can do so. Simply add our 36W 24V DC power supply (available separately).
To me, it is saying:
The range of input supply voltages 3-24Vdc.
The output range (Applied output voltage?) is -0.5V to 26.0 V
But it doesn't provide information on input voltage to output voltage.
I have a few questions:
1. How to read/interpret this data sheet
2. How to interact with this flow sensor using my raspberry pi
3. Do I need a 24V power supply? Or can i power this thing off my Raspberry pi 3.3V supply?
4. I tried hooking up the hall sensor with V+ going to 3v3, ground going to ground, and the output pin going to pin 23 with the following test code and my output is pretty erratic regardless of whether i pull up or down the output pin (23). It reads "true" even when there is no magnet anywhere near the hall sensor. When i bring the magnet near it, it doesn't seem to change the output noticeably. I rotate the magnet very slowly trying to find the + or - side and there isn't much of a change. The code :
Code: Select all
#!/usr/bin/python import os import RPi.GPIO as GPIO boardRevision = GPIO.RPI_REVISION GPIO.setmode(GPIO.BCM) # use real GPIO numbering #GPIO.setup(23,GPIO.IN, pull_up_down=GPIO.PUD_UP) #GPIO.setup(23,GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(23,GPIO.IN) lastPinState = False pinState = 0 CONTINUE = True # main loop try: while CONTINUE: if GPIO.input(23) == True: pinState = True print "Pinstate = True!!!" elif GPIO.input(23) == False: pinState = False print "Pinstate = False!!!!!!!" # if CTRL+C is pressed the main loop is broken except KeyboardInterrupt: CONTINUE = False print "\Quitting" # Actions under 'finally' will always be called # regardless of what stopped the program finally: # stop and cleanup to finish cleanly so the pins are available to be used again print "Cleaning up...." GPIO.cleanup()