Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Raspberry Pi Pico — это недорогая плата микроконтроллера, которая позволяет новичкам легко начать работу с электронными проектами и научиться программировать.

В этом проекте вы узнаете, как считывать аналоговый сигнал с потенциометра и преобразовывать его в ШИМ. (широтно-импульсная модуляция) сигнал для управления частотой или тоном зуммера с помощью MicroPython код.

Какие запчасти нужны?

Этот проект основан на Kitronik Inventor's Kit для Raspberry Pi Pico. Все необходимые электронные компоненты входят в комплект; однако это общие компоненты, которые могут лежать у вас под рукой:

  • Зуммер пьезоэлемента
  • Поворотный потенциометр
  • 7x перемычек типа «папа-папа»
  • Малиновый Пи Пико с припаянные контакты разъема GPIO
  • Макет

Если вы не знакомы с широтно-импульсной модуляцией (ШИМ) и потенциометрами, сначала ознакомьтесь с нашим руководством по

как использовать потенциометр с Raspberry Pi Pico, в котором описано, как использовать его для регулировки яркости светодиода с помощью ШИМ.

Требуемая сборка

Одна перемычка (желтая на фото) соединяет левую сторону потенциометра с положительной (+) шиной макетной платы. Другая перемычка соединяет правую сторону потенциометра с отрицательной (-) стороной макетной платы. От среднего контакта потенциометра вам нужно будет подключить перемычку к контакту GP26/A0 на Pico.

Пьезозуммер должен иметь один провод, идущий от его отрицательной ножки к отрицательной планке макета, а затем еще один провод от его положительной ножки к контакту GP15 на Raspberry Pi Pico.

Вам также потребуется проложить перемычку от контакта GND на Pico к отрицательной шине на макетной плате, чтобы заземлить ее. Другая перемычка соединит контакт 3V3 Out на Pico с положительной шиной макетной платы для питания компонентов.

Создайте код

Вы можете взять код из Репозиторий MUO на GitHub. Загрузите файл MicroPython с именем пьезо-зуммер.py а затем загрузите это на свой Pico через подключенный через USB компьютер с Thonny IDE. Узнайте, как начать работу с MicroPython на Raspberry Pi Pico для деталей.

Различные части кода делают следующее:

  • Вверху импортируем необходимые машина, математика, и время Модули MicroPython.
  • А зуммер Затем переменная назначается контакту GP15 в качестве выхода ШИМ.
  • А потенциометр переменная назначается аналого-цифровому преобразователю (АЦП) на выводе Pico GP26/A0.
  • Мы определяем шкала() функция, которая использует математические функции для преобразования диапазона движения потенциометра в выходной сигнал для зуммера.
  • пока: правда бесконечный цикл считывает вход потенциометра, затем использует шкала функция для его преобразования. Убедившись, что она не слишком сильно изменилась по сравнению с предыдущей частотой, он отправляет рассчитанную частота на зуммер с помощью ШИМ (широтно-импульсной модуляции).

Таким образом, в секунду отправляются сотни импульсов, и тон зуммера будет меняться между 120 Гц и 5 кГц при повороте потенциометра по часовой стрелке или против часовой стрелки. Вращение потенциометра изменяет напряжение, считываемое аналоговым входом Pico, которое, в свою очередь, используется для регулировки частоты зуммера с помощью ШИМ.

Запустите код от Thonny (щелкните значок воспроизведения или нажмите F5 на клавиатуре) и попробуйте сами. Повлияют ли какие-либо изменения кода на физические результаты после первого запуска? Например, что произойдет, если вы измените диапазон (от 0 до 65535)? Эта часть кода расположена чуть ниже пока верно: где частота определено.

Настройка тона

Если вы чувствуете себя авантюрно, вы можете попробовать использовать зуммер для создания музыкальных тонов с помощью martinkooij. пи-пико-тона библиотека на GitHub. По умолчанию эта библиотека будет генерировать синусоидальные волны; четыре тональных генератора могут работать на четырех разных выводах Pico по вашему выбору. Обратите внимание, что этот проект основан на C++ с использованием Raspberry Pi Pico SDK, а не MicroPython, но полные инструкции приведены в файле readme GitHub.

Шум от Pico Electronics

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