Оглавление:

Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя): 4 шага
Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя): 4 шага

Видео: Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя): 4 шага

Видео: Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя): 4 шага
Видео: Урок №5 по Raspberry pi 3: как использовать датчик LDR Программирование на Python «Уровень для начинающих» 2024, Ноябрь
Anonim
Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя)
Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя)

В наших предыдущих инструкциях мы показали вам, как вы можете связать контакты GPIO вашего Raspberry Pi со светодиодами и переключателями и как контакты GPIO могут быть высокими или низкими. Но что, если вы хотите использовать Raspberry Pi с аналоговым датчиком?

Если мы хотим использовать аналоговые датчики с Raspberry Pi, нам необходимо иметь возможность измерять сопротивление датчика. В отличие от Arduino, контакты GPIO Raspberry Pi не могут измерять сопротивление и могут определять, только если подаваемое на них напряжение выше определенного напряжения (примерно 2 вольта). Чтобы решить эту проблему, вы можете использовать аналого-цифровой преобразователь (АЦП) или вместо него использовать относительно дешевый конденсатор.

Эта инструкция покажет вам, как это можно сделать.

Шаг 1. Что вам понадобится

Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится

- RaspberryPi с уже установленным Raspbian. Вам также потребуется иметь доступ к Pi с помощью монитора, мыши и клавиатуры или через удаленный рабочий стол. Вы можете использовать любую модель Raspberry Pi. Если у вас есть одна из моделей Pi Zero, вы можете припаять несколько контактов заголовка к порту GPIO.

- Светозависимый резистор (также известный как LDR или фоторезистор)

- Керамический конденсатор емкостью 1 мкФ

- Макетная плата для прототипирования без пайки

- Некоторые перемычки между мужчинами и женщинами

Шаг 2: Создайте свою схему

Создайте свою схему
Создайте свою схему
Создайте свою схему
Создайте свою схему

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

После того, как вы проверили свою схему, подключите перемычки к контактам GPIO Raspberry Pi, следуя приведенной выше схеме.

Шаг 3. Создайте скрипт Python для чтения светозависимого резистора

Создайте скрипт Python для чтения светозависимого резистора
Создайте скрипт Python для чтения светозависимого резистора

Теперь мы напишем короткий скрипт, который будет читать и отображать сопротивление LDR с помощью Python.

На Raspberry Pi откройте IDLE (Меню> Программирование> Python 2 (IDLE)). Откройте новый проект и выберите «Файл»> «Новый файл». Затем введите (или скопируйте и вставьте) следующий код:

импортировать RPi. GPIO как GPIOimport timempin = 17 tpin = 27 GPIO.setmode (GPIO. BCM) cap = 0.000001 adj = 2.130620985i = 0 t = 0 while True: GPIO.setup (mpin, GPIO. OUT) GPIO.setup (tpin, GPIO. OUT) GPIO.output (mpin, False) GPIO.output (tpin, False) time.sleep (0.2) GPIO.setup (mpin, GPIO. IN) time.sleep (0.2) GPIO.output (tpin, True)) starttime = time.time () endtime = time.time () while (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () measureresistance = endtime-starttime res = (measureresistance / cap) * adj i = i + 1 t = t + res, если i == 10: t = t / i print (t) i = 0 t = 0

Сохраните свой проект как lightsensor.py (Файл> Сохранить как) в папке «Документы».

Теперь откройте Терминал (Меню> Стандартные> Терминал) и введите следующую команду:

python lightsensor.py

Raspberry Pi будет многократно отображать сопротивление фоторезистора. Если приложить палец к фоторезистору, сопротивление увеличится. Если осветить фоторезистор ярким светом, сопротивление уменьшится. Вы можете остановить эту программу, нажав CTRL + Z.

Шаг 4: как это работает

По мере того, как конденсатор постепенно заряжается, напряжение, которое проходит по цепи и к выводу GPIO, возрастает. Как только конденсатор заряжается до определенной точки, его напряжение поднимается выше 2 вольт, и Raspberry Pi определит, что вывод 13 GPIO ВЫСОКИЙ.

Если сопротивление датчика увеличивается, конденсатор будет заряжаться медленнее, и цепи потребуется больше времени, чтобы достичь 2 вольт.

Вышеупомянутый сценарий по существу определяет, сколько времени требуется контакту 13, чтобы перейти в высокий уровень, а затем использует это измерение для расчета сопротивления фоторезистора.

Рекомендуемые: