Raspberry Pi 는 전자 엔지니어 및 애호가를 위해 설계된 ARM 아키텍처 프로세서 기반 보드입니다. PI는 현재 가장 신뢰할 수있는 프로젝트 개발 플랫폼 중 하나입니다. 더 높은 프로세서 속도와 1GB RAM을 갖춘 PI는 이미지 처리 및 사물 인터넷과 같은 많은 주요 프로젝트에 사용할 수 있습니다.
중요한 프로젝트를 수행하려면 PI의 기본 기능을 이해해야합니다. 이 튜토리얼 에서는 Raspberry Pi의 모든 기본 기능을 다룰 것 입니다. 각 튜토리얼에서 PI의 기능 중 하나에 대해 설명합니다. 튜토리얼 시리즈가 끝날 무렵에는 혼자서 유명한 프로젝트를 수행 할 수 있습니다. Raspberry Pi 및 Raspberry Pi 구성 시작하기를 확인하십시오.
이전 자습서에서 Raspberry Pi의 LED 깜박임 및 버튼 인터페이스에 대해 논의했습니다. 이 Raspberry Pi PWM 자습서 에서는 Raspberry Pi로 PWM 출력을 얻는 방법에 대해 설명합니다. PWM은 ' Pulse Width Modulation '을 의미합니다. PWM은 일정한 전원 공급 장치에서 가변 전압을 얻는 데 사용되는 방법입니다. Raspberry PI에서 PWM 신호를 생성 하고 Pi에 연결된 LED의 밝기를 변경하여 PWM을 시연합니다.
펄스 폭 변조:
우리는 이전에 PWM에 대해 ATmega32를 사용한 펄스 폭 변조, Arduino Uno를 사용한 PWM, 555 타이머 IC를 사용한 PWM, Arduino Due를 사용한 PWM에 대해 여러 번 이야기했습니다.
위 그림에서 일정 시간 동안 스위치가 계속 닫히면이 시간 동안 LED가 계속해서 'ON'됩니다. 스위치가 0.5 초 동안 닫혔다가 다음 0.5 초 동안 열리면 LED가 전반 초 동안 만 켜집니다. 이제 총 시간 동안 LED가 켜져있는 비율을 Duty Cycle 이라고 하며 다음과 같이 계산할 수 있습니다.
듀티 사이클 = Turn ON 시간 / (Turn ON 시간 + Turn OFF 시간)
듀티 사이클 = (0.5 / (0.5 + 0.5)) = 50 %
따라서 평균 출력 전압은 배터리 전압의 50 %가됩니다.
이것은 1 초 동안의 경우이고 우리는 LED가 0.5 초 동안 꺼지고 나머지 0.5 초 동안 LED가 켜진 것을 볼 수 있습니다. ON 및 OFF 시간의 주파수가 '초당 1'에서 '초당 50'으로 증가한 경우. 인간의 눈은이 주파수를 포착 할 수 없습니다. 정상적인 눈의 경우 LED가 밝기의 절반으로 빛나는 것처럼 보입니다. 따라서 ON 시간을 더 줄이면 LED가 훨씬 더 밝아집니다.
PWM을 얻기 위해 PI를 프로그래밍하고 LED를 연결하여 작동을 보여줍니다.
Raspberry Pi에는 40 개의 GPIO 출력 핀이 있습니다. 그러나 40 개 중 26 개의 GPIO 핀 (GPIO2 ~ GPIO27) 만 프로그래밍 할 수 있습니다. GPIO 핀에 대해 자세히 알아 보려면 다음을 참조하십시오. Raspberry Pi로 LED 깜박임
필요한 구성 요소:
여기 에서는 Raspbian Jessie OS와 함께 Raspberry Pi 2 Model B를 사용하고 있습니다. 모든 기본 하드웨어 및 소프트웨어 요구 사항은 이전에 논의되었으며 필요한 것 외에 Raspberry Pi 소개에서 찾아 볼 수 있습니다.
- 연결 핀
- 220Ω 또는 1KΩ 저항
- LED
- 브레드 보드
회로 설명:
회로도에서 볼 수 있듯이 PIN35 (GPIO19)와 PIN39 (접지) 사이에 LED를 연결합니다. 앞서 언급했듯이 이러한 핀 중 하나에서 15mA 이상을 끌어 올 수 없으므로 전류를 제한하기 위해 220Ω 또는 1KΩ 저항을 LED와 직렬로 연결합니다.
작동 설명:
모든 것이 연결되면 Raspberry Pi를 켜서 PYHTON으로 프로그램을 작성하고 실행할 수 있습니다.
PYHTON 프로그램에서 사용할 몇 가지 명령에 대해 이야기하겠습니다.
라이브러리에서 GPIO 파일을 가져올 것입니다. 아래 기능을 사용하면 PI의 GPIO 핀을 프로그래밍 할 수 있습니다. 또한 "GPIO"의 이름을 "IO"로 변경하고 있으므로 프로그램에서 GPIO 핀을 참조 할 때마다 'IO'라는 단어를 사용합니다.
RPi.GPIO를 IO로 가져 오기
때때로 우리가 사용하려는 GPIO 핀이 다른 기능을 수행 할 때도 있습니다. 이 경우 프로그램을 실행하는 동안 경고를 받게됩니다. 아래 명령은 PI가 경고를 무시하고 프로그램을 진행하도록 지시합니다.
IO.setwarnings (False)
PI의 GPIO 핀을 보드의 핀 번호 또는 기능 번호로 참조 할 수 있습니다. 핀 다이어그램에서 보드의 'PIN 35'가 'GPIO19'임을 알 수 있습니다. 그래서 우리는 여기서 핀을 '35'또는 '19'로 나타낼 것이라고 말합니다.
IO.setmode (IO.BCM)
GPIO19 (또는 PIN35)를 출력 핀으로 설정하고 있습니다. 이 핀에서 PWM 출력을 얻습니다.
IO.setup (19, IO.IN)
핀을 출력으로 설정 한 후 핀을 PWM 출력 핀으로 설정해야합니다.
p = IO.PWM (출력 채널, PWM 신호의 주파수)
위의 명령은 채널을 설정하고 PWM 신호의 주파수를 설정하기위한 것입니다. 여기서 'p'는 무엇이든 될 수있는 변수입니다. PWM 출력 채널 로 GPIO19를 사용하고 있습니다. ' PWM 신호 의 주파수 '는 LED가 깜박이는 것을보고 싶지 않기 때문에 100을 선택했습니다.
아래 명령은 PWM 신호 생성을 시작하는데 사용되며, ' DUTYCYCLE '은 Turn On 비율 설정, 0은 LED가 0 % 시간 동안 켜짐을 의미, 30은 LED가 30 % 동안 켜짐을 의미, 100은 완전히 켜짐을 의미합니다..
p.start (듀티 사이클)
이 명령은 루프를 50 번 실행하며 x는 0에서 49까지 증가합니다.
x 범위 (50):
동안 1: 무한 루프에 사용됩니다. 이 명령을 사용하면이 루프 내의 명령문이 계속 실행됩니다.
프로그램이 실행됨에 따라 PWM 신호의 듀티 사이클이 증가합니다. 그리고 100 %에 도달하면 감소합니다. 이 PIN에 LED를 부착하면 LED의 밝기가 먼저 증가한 다음 감소합니다.