
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

В наших предыдущих инструкциях мы показали вам, как вы можете связать контакты 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 для чтения светозависимого резистора

Теперь мы напишем короткий скрипт, который будет читать и отображать сопротивление 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, чтобы перейти в высокий уровень, а затем использует это измерение для расчета сопротивления фоторезистора.
Рекомендуемые:
Цифровые часы с использованием микроконтроллера (AT89S52 без схемы RTC): 4 шага (с изображениями)

Цифровые часы с использованием микроконтроллера (AT89S52 без схемы RTC): давайте опишем часы … «Часы - это устройство, которое считает и показывает время (относительное)» !!! Думаю, я правильно сказал, поэтому давайте сделаем ЧАСЫ с функцией БУДИЛЬНИКА . ПРИМЕЧАНИЕ: чтение займет 2-3 минуты, пожалуйста, прочтите весь проект, иначе я не буду
DSO138 USB Power: без повышающего преобразователя !: 3 шага

DSO138 USB Power: без повышающего преобразователя !: JYE DSO138 - отличный маленький осциллограф для работы со звуком, который может стать отличным портативным трассировщиком сигналов. Проблема в том, что он не совсем портативный, потому что ему нужен адаптер питания на 9 В. Лучше бы его можно было поставить из эталона
Три схемы датчика касания + схема таймера касания: 4 шага

Три цепи датчика касания + схема таймера касания: датчик касания - это схема, которая включается при обнаружении прикосновения к контактам касания. Он работает на временной основе, т.е. нагрузка будет включена только на время прикосновения к контактам. Здесь я покажу вам три различных способа сделать сенсорную отправку
Как загрузить программу или код в Arduino Pro Mini с помощью кабеля последовательного преобразователя CH340 UART: 4 шага

Как загрузить программу или код в Arduino Pro Mini с помощью кабеля последовательного преобразователя UART CH340: Последовательные кабели USB TTL представляют собой серию кабелей преобразования USB в последовательный, которые обеспечивают связь между интерфейсами USB и последовательным интерфейсом UART. Доступен ряд кабелей, обеспечивающих возможность подключения на 5 В, 3,3 В или с указанными пользователем уровнями сигнала с
Нулевой охладитель / подставка для ноутбука (без клея, без сверления, без гаек и болтов, без винтов): 3 шага

Охладитель / подставка для ноутбука с нулевой стоимостью (без клея, без сверления, без гаек и болтов, без винтов): ОБНОВЛЕНИЕ: ПОЖАЛУЙСТА, ПРОГОЛОСОВАЙТЕ ЗА МОЙ ИНСТРУКЦИЮ, СПАСИБО ^ _ ^ ВЫ МОЖЕТЕ ПОПРОБОВАТЬ ЗАПИСЬ НА www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ИЛИ МОЖЕТ БЫТЬ ГОЛОСОВАТЬ ЗА ЛУЧШЕГО ДРУГА