Raspberry Pi:Примеры/Управление зуммером, с применением модуля RPi.GPIO
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Проверка/Оформление/Редактирование: Мякишев Е.А.
![]() |
Черновик |
Управление зуммером, с применением модуля RPi.GPIO
Данный пример демонстрирует генерирование звукового сигнала с помощью зуммера.
Запустите программу и введите значение от 200 до 2000(хотя можно задать и большие значения), затем введите значение длительности в секундах и понаблюдайте как изменится звуковой сигнал в зависимости от введенного значения.
Нажмите комбинация клавиш Ctrl + C , чтобы завершить выполнение программы.
Необходимое оборудование
- плата Raspberry Pi;
- пара перемычек;
- макетная плата;
- зуммер;
Схема
![]() |
Будьте осторожны при обращении с портами GPIO вашего Raspberry Pi. Помните входы и выходы GPIO расссчитаны на напряжение +3,3В |
![](/ruwiki/images/thumb/3/35/Rpi_buzzer_rpi_gpio_exm_1.png/1024px-Rpi_buzzer_rpi_gpio_exm_1.png)
![]() |
Все манипуляции по подключению зуммера производите только при отключенном питании платы 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)