일시 : 2018.01.10 15:00~18:00
내용 : Piezo Sensor, 초음파 센서
//
GPIO Pieze
piezo buzzer의 동작 전압은 4~8v이고 AP의 GPIO전압은 3.3v가 최대 -> 증폭기를 통해 5v전압을 piezo에 전달.
주파수 조절을 통해 음의 높낮이를 조절
Piezo 연결된 BCM 13핀의 ON/OFF
일정한 시간 간격으로 High, Low 출력
실습
- 도, 레, 미, 파, 솔, 라, 시, 도 소리 출력
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
gpio_pin = 13
scale = [ 261, 294, 329, 349, 392, 440, 493, 523 ]
#도 레 미 파 솔 라 시 도 (주파수)
GPIO.setup(gpio_pin, GPIO.OUT)
try:
p = GPIO.PWM(gpio_pin, 100) # 100hz, p 인스턴스
p.start(100) # start the PWM on 100% duty cycle
p.ChangeDutyCycle(90) # change the duty cycle to 90%
for i in range(8):
print (i+1)
p.ChangeFrequency(scale[i]) # 주파수 변경
time.sleep(1)
p.stop() # stop the PWM output
finally:
GPIO.cleanup()
-학교 종이 땡땡땡
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
gpio_pin = 13
scale = [ 261, 294, 329, 349, 392, 440, 493, 523 ]
#도 레 미 파 솔 라 시 도
GPIO.setup(gpio_pin, GPIO.OUT)
list = [4, 4, 5, 5, 4, 4, 2, 4, 4, 2, 2, 1]
try:
p = GPIO.PWM(gpio_pin, 100)
p.start(100)
p.ChangeDutyCycle(90)
for i in range(12):
print (i+1)
p.ChangeFrequency(scale[list[i]])
if i == 6:
time.sleep(1)
else :
time.sleep(0.5)
p.stop()
finally:
GPIO.cleanup()
'2017 멀티캠퍼스 > Raspberry Pi' 카테고리의 다른 글
#10 라즈베리파이 Ultrasonic (초음파 센서) (0) | 2018.01.30 |
---|---|
#9 라즈베리파이 PWM (0) | 2018.01.30 |
#7 라즈베리파이 I2C 통신 (0) | 2018.01.14 |
#6 라즈베리파이 PIR 센서 (움직임 감지) (0) | 2018.01.14 |
#5 라즈베리파이 GPIO 조이스틱 (0) | 2018.01.14 |