Оглавление:
- Шаг 1: Постройте схему
- Шаг 2: Код с блоками
- Шаг 3: объяснение кода фоторезистора Arduino
- Шаг 4: Создайте физическую схему Arduino (необязательно)
- Шаг 5. Затем попробуйте…
Видео: Датчик освещенности (фоторезистор) с Arduino в Tinkercad: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Проекты Tinkercad »
Давайте узнаем, как считывать фоторезистор, переменный резистор светочувствительного типа, используя аналоговый вход Arduino. Его также называют LDR (светозависимый резистор).
До сих пор вы уже научились управлять светодиодами с помощью аналогового выхода Arduino и считывать показания потенциометра, который является еще одним типом переменного резистора, поэтому мы будем развивать эти навыки в этом уроке. Помните, что аналоговые входы Arduino (контакты с маркировкой A0-A6) могут обнаруживать постепенно изменяющийся электрический сигнал и переводить этот сигнал в число от 0 до 1023.
Изучите образец схемы, внедренной здесь в рабочую плоскость, щелкнув «Начать моделирование» и щелкнув фоторезистор (коричневый овал с волнистой линией посередине), затем перетащите ползунок яркости, чтобы отрегулировать имитацию входного света.
В этом уроке вы сами построите эту смоделированную схему вместе с образцом. Чтобы при желании построить физическую схему, соберите плату Arduino Uno, USB-кабель, макетную плату без пайки, светодиод, резисторы (220 Ом и 4,7 кОм), фоторезистор и провода макета.
Вы можете следить за этим виртуально, используя Tinkercad Circuits. Вы даже можете просмотреть этот урок в Tinkercad (требуется бесплатный вход)! Изучите образец схемы и создайте свою собственную прямо рядом с ней. Tinkercad Circuits - это бесплатная программа на основе браузера, которая позволяет создавать и моделировать схемы. Он идеально подходит для обучения, преподавания и создания прототипов.
Шаг 1: Постройте схему
Взгляните на изображенную схему макета. Для сравнения может быть полезно взглянуть на свободнопроводную версию этой примерной схемы, изображенную на картинке. На этом этапе вы создадите свою собственную версию этой схемы рядом с образцом на рабочей плоскости.
Чтобы продолжить, загрузите новое окно Tinkercad Circuits и создайте свою собственную версию этой схемы вместе с образцом.
Определите фоторезистор, светодиод, резисторы и провода, подключенные к Arduino на рабочей панели Tinkercad Circuits.
Перетащите Arduino Uno и макет с панели компонентов на рабочую панель рядом с существующей схемой.
Подключите шины питания макета (+) и заземления (-) к Arduino 5V и заземлению (GND) соответственно, щелкнув для создания проводов.
Вытяните шины питания и заземления до соответствующих шин на противоположном крае макета (необязательно для этой схемы, но это хорошая обычная практика).
Подключите светодиод к двум разным рядам макетов так, чтобы катод (отрицательная, более короткая ножка) подключался к одной ножке резистора (допустимое значение от 100 до 1 кОм). Резистор может быть установлен в любой ориентации, потому что резисторы не поляризованы, в отличие от светодиодов, которые для работы должны быть подключены определенным образом.
Подключите другую ножку резистора к земле.
Подключите анод светодиода (положительный, более длинный вывод) к выводу 9 Arduino.
Перетащите фоторезистор с панели компонентов на макет так, чтобы его ножки вставлялись в два разных ряда.
Щелкните, чтобы создать провод, соединяющий одну ногу фоторезистора с источником питания.
Подключите другую ногу к аналоговому выводу A0 Arduino.
Перетащите резистор с панели компонентов, чтобы соединить ножку фоторезистора, подключенную к A0, с землей, и установите его значение на 4,7 кОм.
Шаг 2: Код с блоками
Давайте воспользуемся редактором кодовых блоков, чтобы прослушать состояние фоторезистора, а затем установим для светодиода относительную яркость в зависимости от того, сколько света видит датчик. Вы можете освежить свою память об аналоговом выходе светодиодов в уроке «Затухание светодиодов».
Нажмите кнопку «Код», чтобы открыть редактор кода. Серые блоки Notation - это комментарии для обозначения того, что вы намереваетесь делать в своем коде, но этот текст не выполняется как часть программы.
Щелкните категорию «Переменные» в редакторе кода.
Чтобы сохранить значение сопротивления фоторезистора, создайте переменную с именем «sensorValue».
Вытяните блок «set». Мы сохраним состояние нашего фоторезистора в переменной
sensorValue
Щелкните категорию «Вход» и перетащите блок «Аналоговый вывод для чтения» и поместите его в блок «Установить» после слова «в».
Поскольку наш потенциометр подключен к Arduino на выводе A0, измените раскрывающийся список на A0.
Щелкните категорию «Вывод» и растяните блок «Печать на серийный монитор».
Перейдите в категорию Variables и перетащите свою переменную sensorValue в блок «print to serial monitor» и убедитесь, что раскрывающийся список настроен на печать с новой строкой. При желании запустите моделирование и откройте монитор последовательного порта, чтобы убедиться, что показания поступают и меняются при настройке датчика. Диапазон значений аналогового входа от 0 до 1023.
Так как мы хотим записать на светодиод число от 0 (выключено) до 255 (полная яркость), мы будем использовать блок «map», чтобы сделать за нас некоторое перекрестное умножение. Перейдите в категорию «Математика» и перетащите блок «карта».
В первом слоте перетащите блок переменной sensorValue, затем установите диапазон от 0 до 255.
Вернувшись в категорию «Вывод», перетащите аналоговый блок «установить контакт», в котором по умолчанию написано «установить контакт 3 на 0». Отрегулируйте его, чтобы установить штифт 9.
Перетащите созданный ранее блок карты в поле «to» блока «set pin», чтобы записать настроенное число на вывод светодиода с помощью PWM.
Щелкните категорию Control и перетащите блок ожидания и настройте его так, чтобы программа задерживалась на 0,1 секунды.
Шаг 3: объяснение кода фоторезистора Arduino
Когда редактор кода открыт, вы можете щелкнуть раскрывающееся меню слева и выбрать «Блоки + текст», чтобы отобразить код Arduino, сгенерированный блоками кода. Следуйте инструкциям, пока мы исследуем код более подробно.
int sensorValue = 0;
Перед
настраивать()
мы создаем переменную для хранения текущего значения, считанного с потенциометра. Это называется
int
потому что это целое число или любое целое число.
установка void ()
{pinMode (A0, ВХОД); pinMode (9, ВЫХОД); Serial.begin (9600); }
Внутри установки контакты настраиваются с помощью
pinMode ()
функция. Контакт A0 настроен как вход, поэтому мы можем «слушать» электрическое состояние потенциометра. Контакт 9 настроен как выход для управления светодиодом. Чтобы иметь возможность отправлять сообщения, Arduino открывает новый канал последовательной связи с
Serial.begin ()
который принимает аргумент скорости передачи (какая скорость передачи), в данном случае 9600 бит в секунду.
пустой цикл ()
{// считываем значение с датчика sensorValue = analogRead (A0); // выводим показания датчика, чтобы вы знали его диапазон Serial.println (sensorValue);
Что-нибудь после набора косых черт
//
- это комментарий, который помогает людям простым языком понять, для чего предназначена программа, но не включен в программу, которую запускает ваш Arduino. В основном цикле функция называется
analogRead ();
проверяет состояние вывода A0 (которое будет целым числом от 0 до 1023) и сохраняет это значение в переменной
sensorValue
// сопоставляем показания датчика с диапазоном для светодиода
analogWrite (9, map (sensorValue, 0, 1023, 0, 255)); задержка (100); // Ждем 100 миллисекунд}
Строка, следующая за следующим комментарием, делает сразу много. Помнить
analogWrite ()
принимает два аргумента: номер вывода (в нашем случае 9) и записываемое значение, которое должно быть от 0 до 255. Встроенная функция
карта()
принимает пять аргументов: число для оценки (постоянно меняющаяся переменная датчика), ожидаемый минимум и ожидаемый максимум, а также желаемый минимум и максимум. Так что
карта()
В нашем случае функция оценивает входящее значение sensorValue и выполняет перекрестное умножение для масштабирования вывода с 0-1023 до 0-255. Результат возвращается во второй аргумент функции
analogWrite ();
устанавливая яркость светодиода, подключенного к выводу 9.
Шаг 4: Создайте физическую схему Arduino (необязательно)
Чтобы запрограммировать свой физический Arduino Uno, вам необходимо установить бесплатное программное обеспечение (или плагин для веб-редактора), а затем открыть его. Различные фотоэлементы имеют разные значения, поэтому, если ваша физическая схема не работает, вам может потребоваться заменить резистор, связанный с ней. Узнайте больше о делителях напряжения в уроке Instructables Electronics Class, посвященном резисторам.
Подключите схему Arduino Uno, подключив компоненты и провода в соответствии с подключениями, показанными здесь в Tinkercad Circuits. Для более подробного ознакомления с работой с вашей физической платой Arduino Uno ознакомьтесь с бесплатным классом Instructables Arduino.
Скопируйте код из окна кода Tinkercad Circuits и вставьте его в пустой эскиз в программном обеспечении Arduino или нажмите кнопку загрузки (стрелка вниз) и откройте
получившийся файл с помощью Arduino. Вы также можете найти этот пример в программном обеспечении Arduino, перейдя в Файл -> Примеры -> 03. Аналоговый -> AnalogInOutSerial.
Подключите USB-кабель и выберите свою плату и порт в меню «Инструменты» программного обеспечения.
Загрузите код и прикрывайте датчик рукой от света и / или направьте свет на датчик!
Откройте серийный монитор, чтобы наблюдать за показаниями вашего датчика. Вероятно, что реальные значения не будут расширяться до 0 или до 1023, в зависимости от условий освещения. Не стесняйтесь регулировать диапазон 0-1023 до наблюдаемого минимума и наблюдаемого максимума, чтобы получить максимальный диапазон яркости светодиода.
Шаг 5. Затем попробуйте…
Теперь, когда вы научились считывать фоторезистор и отображать его выходную мощность для управления яркостью светодиода, вы готовы применить те и другие навыки, которым вы уже научились.
Можете ли вы заменить светодиод на другой тип выходного сигнала, например серводвигатель, и создать код, отражающий текущий уровень освещенности датчика как определенное положение на датчике?
Попробуйте заменить фоторезистор на другие аналоговые входы, такие как ультразвуковой датчик расстояния или потенциометр.
Узнайте больше о том, как контролировать цифровые и аналоговые входы Arduino через компьютер с помощью Serial Monitor.
Рекомендуемые:
Датчик температуры и освещенности: 8 шагов
Датчик температуры и освещенности: эта инструкция предназначена для базового датчика температуры и освещенности. Вот об этом
Как подключить и использовать датчик освещенности GY-30 BH1750 (GY30 / GY302) - легко - проект Arduino !: 7 шагов
Как подключить и использовать датчик освещенности GY-30 BH1750 (GY30 / GY302) - легко - проект Arduino !: В этом руководстве мы узнаем, как быстро и легко использовать датчик интенсивности света GY-30 BH1750 с Arduino. Посмотрите демонстрационное видео
Датчик освещенности Arduino: 5 шагов
Датчик освещенности Arduino: это датчик освещенности, в котором используется Arduino, это просто, и каждый может сделать это самостоятельно. Это может помочь вам почувствовать яркость света, где бы вы ни находились. Когда вы его делаете, сначала подготовьте материалы и соберите схему, а затем напишите t
Датчик освещенности MAX44009 с OLED: 7 шагов
Датчик освещенности MAX44009 с OLED: Здравствуйте, друзья! Вчера я решил опубликовать еще один простой гаджет, сделанный для моего друга. Он попросил меня сделать простой люксметр для управления вентилятором и реле в его теплице в дневное время. К сожалению, я не могу опубликовать фотографии этого проекта
Цифровой датчик освещенности с использованием LM358: 5 шагов
Цифровой датчик освещенности Использование LM358: датчики делают работу с любым проектом увлекательной и простой, существуют тысячи датчиков, и у нас есть возможность выбрать правильный датчик для наших проектов или потребностей. Но нет ничего лучше, чем разработать свои собственные датчики для работы с широким диапазоном