Sunfounder Sensor Kit – Hall-Sensor digital + analog

hall-3 Das 37-sensor-kit von Sunfounder enthält einen weiteren Hall Sensor. Wie immer, fehlt auch diesmal der Schaltplan. Der Versuch in der Anleitung entspricht genau dem gleichen, wie der zweite. Der digitale Output des Sensors bleibt leer.

Ich habe den Aufbau deshalb etwas erweitert. Den digitalen Pin habe ich an den Pin Nummer 16 (BOARD-Layout!) angeschlossen. Nun steht der analoge Wert über den ADC zur Verfügung und bei Änderungen schaltet der digitale Pin noch zusätzlich. Das Python-Programm misst in einer Endlosschleife die analogen Werte vom ADC und zeigt sie auf der Konsole. Im Hintergrund wacht eine Callback-Methode über den Interrupt, der vom digitalen Pin ausgelöst wird. In dem Fall wird zusätzlich „Change detected“ auf der Konsole ausgegeben.
003-ausgabe

Hier der Quelltext (ohne das ADC-Modul):

#!/usr/bin/env python
import RPi.GPIO as GPIO
import ADC0832
import time

HALL = 16 # Hall sensor pin


GPIO.setmode(GPIO.BOARD) # using BOARD layout

GPIO.setwarnings(False)

# Setup pins
GPIO.setup(HALL,GPIO.IN, pull_up_down=GPIO.PUD_UP)

def change_detected(channel):
    print 'Change detected'

def init():
        ADC0832.setup()

# register event listener
GPIO.add_event_detect(HALL, GPIO.BOTH, change_detected, bouncetime=25)




def loop():
        while True:
                res0 = ADC0832.getResult(0)
                res1 = ADC0832.getResult(1)
                print 'res0 = %d, res1 = %d' % (res0,res1)
                time.sleep(0.2)

if __name__ == '__main__':
        init()
        try:
                loop()
        except KeyboardInterrupt:
                ADC0832.destroy()

Das ganze gibt es auch auf github unter: https://github.com/lnitram/37-sensor-kit (src/003-hall-sensor-both.py)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.