Raspberry Pi:Примеры/Управление зуммером, с применением модуля RPi.GPIO

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Управление зуммером, с применением модуля RPi.GPIO

Данный пример демонстрирует генерирование звукового сигнала с помощью зуммера.

Запустите программу и введите значение от 200 до 2000(хотя можно задать и большие значения), затем введите значение длительности в секундах и понаблюдайте как изменится звуковой сигнал в зависимости от введенного значения.

Нажмите комбинация клавиш  Ctrl + C , чтобы завершить выполнение программы.

Необходимое оборудование

Схема

Будьте осторожны при обращении с портами GPIO вашего Raspberry Pi. Помните входы и выходы GPIO расссчитаны на напряжение +3,3В


Все манипуляции по подключению зуммера производите только при отключенном питании платы Raspberry Pi


Код

Python 2.X

import RPi.GPIO as GPIO
import time

buzzer_pin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)

def buzz(pitch, duration):
	period = 1.0 / pitch
	delay = period / 2
	cycles = int(duration * pitch)
	for i in range(cycles):
		GPIO.output(buzzer_pin, True)
		time.sleep(delay)
		GPIO.output(buzzer_pin, False)
		time.sleep(delay)
		

while True:
        pitch_s = raw_input("Enter Pitch (200 to 2000): ")
        pitch = float(pitch_s)
        duration_s = raw_input("Enter Duration (seconds): ")
        duration = float(duration_s)
        buzz(pitch, duration)

Python 3.X

import RPi.GPIO as GPIO
import time

buzzer_pin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)

def buzz(pitch, duration):
	period = 1.0 / pitch
	delay = period / 2
	cycles = int(duration * pitch)
	for i in range(cycles):
		GPIO.output(buzzer_pin, True)
		time.sleep(delay)
		GPIO.output(buzzer_pin, False)
		time.sleep(delay)
		

while True:
        pitch_s = raw_input("Enter Pitch (200 to 2000): ")
        pitch = float(pitch_s)
        duration_s = input("Enter Duration (seconds): ")
        duration = float(duration_s)
        buzz(pitch, duration)

См.также

Внешние ссылки