본문 바로가기

라즈베리파이&아두이노10

PIR 센서(HC-SR501) 적외선 인체감지 센서 이번 포스팅에서는 적외선 인체감지 센서(PIR, Passive Infrated Sensor)를 라즈베리파이에 연결하여 사람의 움직임을 감지하는 기능을 구현해 보겠습니다. 사용할 적외선 인체감지 센서는 HC-SR501 센서로 엘레** 등에서 이천 원 정도에 구매하실 수 있습니다. 데이터 시트 - working voltage range: DC 4.5 - 20V - Quiescent Current : 50uA - high output level 3.3V / Low 0V - Trigger L trigger can not be repeated / H repeated trigger - circuit board dimensions: 32*24 mm - maxium 110º angle sensor - 7m maximu.. 2021. 1. 5.
PWM으로 서보모터 제어 이번 포스팅에서는 GPIO 모듈의 PWM을 이용한 서보모터 제어에 대해 정리해 보겠습니다. 이번에 사용할 서보모터는 아래와 같습니다. 서보모터의 연결선이 주황색, 빨간색, 갈색으로 되어 있습니다. 주황색은 GPIO 18번에 연결하고 빨간색은 VCC(5V), 갈색은 GND에 연결하도록 하겠습니다. 아래 이미지처럼 각각의 선을 보드 확장 쉘드에 연결해 주었습니다. 이제 파이썬으로 서보모터 제어를 위한 소스코드를 작성해 보겠습니다. 각도 제어를 위해 기준이 되는 주파수는 50hz의 신호로 Duty Cycle을 아래와 같이 설정해 주겠습니다. 주파수(hz) Duty Cycle 각도 변이 50 2.5 0 7.5 90 12.5 180 import RPi.GPIO as GPIO import time GPIO.setw.. 2020. 12. 26.
PWM LED 제어하기 이번 포스팅에서는 라즈베리파이에서 PWM을 통해 LED를 제어하는 방법에 대해 알아보겠습니다. PWM(Pulse Width Modulation)은 주기적으로 반복되는 ON/OFF 신호를 통해서 모터나 팬의 속도, LED의 밝기를 소프트웨어적으로 제어할 수 있습니다. 반복되는 Pulse 신호의 주기(0~3.3V 파형)에서 ON 신호가 지속되는 시간의 비율을 Duty Cycle이라고 하며 Duty Cycle이 클수록 속도나 밝기가 커집니다. PWM을 사용하기 위해서는 RPi.GPIO 모듈이 제공하는 PWM 클래스를 이용하여 PWM 객체를 먼저 생성해야 합니다. pwm = GPIO.PWM(channel, frequency) pwm 객체를 생성한 후에는 아래와 같이 pwm을 시작하여 사용할 준비를 해 줍니다. .. 2020. 12. 25.
바운싱(Bouncing) 현상 방지 이번 포스팅에서는 버튼 동작시 발생하는 바운싱(Bouncing) 현상과 이를 방지하는 방법에 대해 정리해 보겠습니다. 바운싱(Bouncing)이란 기계적인 접점을 갖는 스위치들은 접점이 붙거나 떨어지는 시점에 접점이 여러 번 On/Off 되는 현상이 발생합니다. 이러한 현상은 약 100ms 정도 되는 순간에 여러 번 반복하기 때문에 의도하지 않는 인터럽트가 발생할 수 있습니다. 이러한 바운싱 현상을 제거해야 정상 동작을 할 수 있는데 이를 디바운싱(Debouncing)이라고 합니다. 이를 그림으로 나타내면 아래와 같습니다. 디바운싱을 하는 방법에는 하드웨어적인 방법과 소프트웨어적인 방법이 있는데 여기서는 소프트웨어적으로 디바운싱 하는 방법에 대해 알아보겠습니다. 소프트웨어적으로 디바운싱을 하기 위해서 b.. 2020. 12. 23.