ШИМ-сигнал в Python

ШИМ-сигналСигнал ШИМ — это сигнал, генерируемый широтно-импульсной модуляцией.

Короче говоря, ШИМ-модуляция используется для передачи информации по каналу связи или для управления количеством энергии, отправляемой на нагрузку. На этот раз мы займемся генерацией ШИМ на Python.

Серия статей «Основы Raspberry Pi»

  1. Введение в Raspberry Pi
  2. Установка системы на Raspberry Pi
  3. Программирование на scratch и python
  4. Командная консоль и основы Linux
  5. Контакты GPIO и их программирование
  6. Создание нового пользователя
  7. Конфигурация статического IP
  8. Удаленное подключение к Raspberry Pi
  9. Установка ОС Raspberry Pi Lite и связь через UART
  10. Использование камеры на Raspberry Pi
  11. ШИМ-сигнал в Python

Начнем с простого примера с использованием светодиода. Подключите светодиод через резистор 1 кОм к контакту № 12, как мы показывали ранее или как показано на схеме ниже:

Пример со светодиодом

Теперь мы откроем IDE для программирования на Python, например Thonny Python IDE, в которой откроем новый скетч и скопируем предлагаемый нами код:

Поясним немного каждую строчку. Как всегда, в самом начале нужно импортировать соответствующие библиотеки и запустить конфигурации, в нашем случае библиотеки выводов и времени GPIO и их конфигурации.

Читать также:  Контакты GPIO и их программирование

Когда мы хотим сгенерировать ШИМ-сигнал, мы должны начать с создания экземпляра, которому мы назначим информацию о выводе и частоте. Мы делаем это с помощью следующей команды:

GPIO.PWM

Помните, что все, что следует после ‘#’, является комментарием и не влияет на код. В нашем случае это строка:

diodo = GPIO.PWM (12, 50) #Новый ШИМ

Затем мы создаем переменную «заполнения» с именем duty, которая, как следует из ее названия, будет содержать информацию о текущем рабочем цикле сигнала ШИМ (значения от 0 до 100% без знака), это будет цикл сигнала. Короче говоря, процент, в котором сигнал находится в высоком состоянии, по отношению к общему количеству цикла. Мы инициализируем эту переменную в 0.

duty = 0 # Рабочий цикл сигнала PWM

Следующим шагом является запуск ШИМ, в качестве аргумента этой функции мы пишем ожидаемое завершение.

diodo.start (duty) # Активирует сигнал ШИМ

С этого момента сигнал ШИМ будет формироваться на выводе 12. Его рабочий цикл можно все время менять с помощью следующей инструкции:

Читать также:  Установка системы на Raspberry Pi

diodo.ChangeDutyCycle(duty)

Итак, собрав воедино информацию из предыдущих статей, мы можем создать простую программу, которая будет менять ШИМ, совершив один цикл. На практике это будет означать мягкое освещение от светодиода.

Также есть time.sleep(0.05) который делает ожидание внутри цикла while, хоть и минимальное, но это всегда необходимо. В конце программы есть еще одна строка diodo.stop (), которая, наверное, не нуждается в пояснениях. Конечно, он отвечает за остановку «генератора» ШИМ на данном выводе. Во время работы программы мы также можем настроить частоту ШИМ. Для этого мы должны ввести следующую инструкцию: diodo.ChangeDutyCycle (XXX), где внутри скобок можно поставить число от 0 до 100.

Простая программа на Python

Как мы видим, табуляция каждой строки важна, и она должна быть похожа на предыдущее изображение. Как только мы это сделаем, мы можем нажать Run.

Табуляция строк

Теперь, вы должны увидеть, как светодиод постепенно загорается до максимума, затем гаснет и процесс повторяется. Чтобы остановить программу, вы можете нажать CTRL+C или нажать кнопку «Стоп». Помните, что если светодиод продолжает гореть, то вы можете выключить его вручную с помощью командного терминала, используя команду: gpio -g записать 12 0.

На этом наша серия статей для новичков по работе с Raspberry Pi на Python окончена. Конечно, наши статьи пока еще немного сырые, но мы тоже как и вы еще учимся. Со временем, мы это исправим. И мы очень надеемся, что вы нам в этом поможете.

Читать также:  Программирование на scratch и python

С Уважением, МониторБанк

Добавить комментарий