Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Всем привет! В этом уроке я покажу вам, как мы можем напрямую захватывать аналоговые значения с помощью Raspberry Pi. Как мы все знаем, Raspberry Pi - это довольно мощный мини-компьютерный модуль, популярный среди любителей и профессионалов и обладающий почти всеми функциями, которые нужны любому энтузиасту электроники. Однако единственным недостатком Pi является отсутствие специального оборудования для аналогово-цифрового преобразователя, что делает Pi непригодным для прямой записи аналоговых значений с любого датчика. Решение состоит в том, чтобы либо использовать Arduino вместе с Pi, либо использовать специальный АЦП. В этом проекте я буду использовать 12-битный АЦП MCP3204.
Запасы
- Raspberry Pi (вы можете использовать любую модель, которая у вас есть)
- АЦП MCP3204 или АЦП MCP3008
- Аналоговый датчик (вместо этого я использую потенциометр 10K)
- Макетная плата
- Провода перемычки
Шаг 1. Взять значения из Arduino вместо…
Альтернативой для получения аналоговых значений для Raspberry Pi является использование Arduino со специальным 10-битным АЦП. Arduino и Raspberry Pi могут обмениваться данными через последовательный порт для передачи информации. Этот метод можно использовать, когда вы экспериментируете с некоторыми данными датчика и в то же время хотите использовать вычислительную мощность Pi. Недостатком этой конфигурации является то, что вы будете использовать больше аппаратных ресурсов, а также вам придется писать отдельные коды для Arduino и Pi.
Шаг 2: Использование АЦП
Альтернативой использованию Arduino в качестве АЦП является использование специальной ИС АЦП, которая служит той же цели. Для этого проекта я буду использовать MCP3204 IC, который представляет собой 4-канальный 12-битный АЦП, который может взаимодействовать с Raspberry Pi по протоколу SPI. Для демонстрационных целей я буду использовать ИС в 10-битном режиме.
Я прикрепил распиновку этой ИС с описанием контактов.
Шаг 3: Подключение Raspberry Pi и АЦП
Теперь, когда мы разобрали оборудование, давайте перейдем к схеме подключения АЦП и Pi.
У Raspberry Pi было 2 интерфейса SPI: SPI0 и SPI1. Для нашего приложения мы будем использовать SPI0, и мы будем использовать физический (или аппаратный) SPI, где мы подключаем АЦП к конкретным аппаратным контактам SPI Pi.
Я приложил распиновку Pi и принципиальную схему, которую использовал в проекте.
Схема подключения следующая:
- VDD (вывод 14) и Vref (вывод 13) АЦП к источнику питания 5 В на Pi
- DGND (Pin7) и AGND (Pin12) АЦП на землю Pi
- CLK (вывод 11) АЦП к GPIO 11 (физический вывод 23) Pi
- Dout (контакт 10) АЦП к GPIO 9 (физический контакт 21) Pi
- Din (вывод 9) АЦП на GPIO 10 (физический вывод 19) Pi
- Выбор микросхемы (контакт 8) АЦП - GPIO 8 (физический контакт 24) Pi
Шаг 4: Окончательная настройка и код
Теперь, когда все подключения к источнику питания и связи выполнены, пришло время подключить любой датчик, значение которого мы хотим видеть. Я использую потенциометр 10K в качестве датчика.
Коды были написаны в двух частях, первый код в значительной степени связан с настройкой библиотек, включением связи SPI и последующим получением значения АЦП от MCP3204, а затем его распечаткой на терминале python.
Второй код более интерактивен и создает график данных в реальном времени, поступающих от датчика.
Вы можете поэкспериментировать с кодом и сделать его подходящим для ваших нужд.
Шаг 5: обучающее видео
Это видео, в котором подробно описаны все необходимые шаги для реализации этого проекта. Я надеюсь, что это было полезно !