삼성 아틱과 리드 스위치를 이용한 센싱 (파이썬)

메이커 2018-09-11 (화) 09:23 3년전 1419  

리드 스위치 사용하기

 

리드 스위치는 자석을 가까이 가져가게 되면 스위칭을 하는 모듈입니다. 

평상시에 전원을 끄고 있다가 움직임에 의해서 자석이 센서에 가까이 가게 되면, 전원이 켜지거나 출력을 요할 때 사용될 수 있습니다. 

 

본 튜토리얼의 전체 PDF는 다음의 링크에서 참고하실 수 있습니다. 

 

https://goo.gl/JVMp9q 

 

1.    GPIO의 출력 전압이 5V로 되어 있는지 확인 후, 다음과 같이 점퍼를 이동합니다.

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536643
 

2.    하드웨어 연결은 다음과 같습니다.


1f7c3ee5d7e718d5cf0b1a77c77892dc_1536643

 

3.    터미널에서 파이썬 코드를 다음과 같이 작성합니다.

import time

 

OUTPUT = 'out'

INPUT = 'in'

HIGH = 1

LOW = 0

 

def reg(pin):

    try:

        exp = open('/sys/class/gpio/export','wb',0)

        exp.write(str(pin))

        print('Registion Successful: pin%d' %pin)

        #exp.close()

    except IOError as e:

        #print('Registion Error: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def unreg(pin):

    try:

        uexp = open('/sys/class/gpio/unexport','wb',0)

        uexp.write(str(pin))

        print('Unregistion Successful: pin%d' %pin)

        uexp.close()

    except IOError as e:

        #print('Unregistion Error: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def pinMode(pin, mode):

    try:

        direction = open('/sys/class/gpio/gpio%d/direction' %pin,'wb',0)

        direction.write('out' if mode == OUTPUT else 'in')

        #print('pin%d setted at %s' %(pin,'out' if mode == OUTPUT else 'in'))

        direction.close()

    except IOError as e:

        #print('CANNOT SET PIN MODE: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def digitalWrite(pin,value):

    try:

        val = open('/sys/class/gpio/gpio%d/value' %pin,'wb',0)

        val.write(str(value))

        val.close()

    except IOError as e:

        #print('WRITE ERROR: pin%d' %pin)

        print('Error: %d - %s' %(e.errno,e.strerror))

 

def digitalRead(pin):

    try:

        file = open('/sys/class/gpio/gpio%d/value' %pin,'rb',0)

        value = file.read()

        file.close()

        return int(value)

    except IOError as e:

        #print('READ ERROR')

        print('Error: %d - %s' %(e.errno,e.strerror))

메카리워즈 Image Map


모바일 버전으로 보기