Датчик температуры Ардуино
Мы делаем проект, и нам нужно построить термодатчик и считывать напряжение и температуру, но нам также нужно, чтобы температура соответствовала светодиодам, которые будут давать синий цвет для холодного, зеленый для слабого и красный для горячего. с помощью термодатчика DS18b20.
Как мы должны написать код или где мы можем найти код, который будет работать для этой цели?
На данный момент мы оба очень поверхностно разбираемся в коде, однако из-за нехватки времени его изучение затруднено.
@James Li, 👍-1
Обсуждение1 ответ
Этот форум не подходит для подробных решений неясных проблем. Если у вас нет большого опыта в программировании, вам придется во многом разобраться. Это займет у вас некоторое время (на самом деле, возможно, пару недель, если вы работаете над этим каждый день и умеете это делать, при условии, что вы начинаете с нуля).
Первый шаг — определить проблему. Похоже, вы хотите создать проект, в котором используются цветные светодиоды для индикации измеренной температуры в разных диапазонах.
Допустим, вы хотите:
Temp <10°C light Blue LED
Temp 10°C - 30°C light green LED
temp >30°C light red LED.
Разбейте проблему на мелкие кусочки и решайте их по очереди.
Выберите модель Arduino. Установите IDE. Запустите скетч, который будет мигать встроенным светодиодом. Затем выполните поиск в Google «Arduino Blink без задержки» и перепишите код мигания, чтобы не использовать функцию delay()
. Забудьте о существовании функции delay()
и никогда не используйте ее снова, так как обычно она будет мешать вашим действиям.
Затем придумайте, как подключить отдельные светодиоды (включая токоограничивающие резисторы) к трем отдельным контактам. Заставьте ваш код мигать всеми тремя светодиодами одновременно, переключая выходные состояния соответствующих контактов.
Измените приложение, чтобы сначала мигал один светодиод, затем второй и третий. Теперь потрудитесь и измените свое приложение так, чтобы первый светодиод включался и выключался раз в секунду, следующий светодиод — раз в 1/3 секунды, а четвертый — чтобы он мигал раз в 1/4 секунды, и все это одновременно. (Это заставит вас действительно понять, как правильно определять время без промедления.)
Теперь найдите пример проекта, в котором используется датчик температуры. (Попробуйте это, которое я нашел, например) Запустите это и заставьте его отправлять temp на ваш последовательный порт каждые несколько секунд. (опять же без использования delay()
.)
Теперь напишите цикл, который считывает датчик температуры, определяет, в каком диапазоне находится температура, и зажигает соответствующий светодиод на основе этих диапазонов. Обратите внимание, что вы можете считывать температуру только каждые 2 секунды или около того (датчики температуры DHT22 и DHT11, которые я использовал, имеют это ограничение).
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- Данные DHT11 из Arduino UNO в Firebase через ESP8266
- BMP280 возвращает 0
- Колебания показаний датчика температуры LM35 (+- 5°C) с Arduino UNO
- Неверные показания PT100 и MAX31865
- Почему показания датчика температуры становятся непоследовательными при добавлении к плате дополнительного оборудования?
- Отправка аналоговых входных данных из последовательного порта в Google Таблицы
- Вентиляторы PWM вызывают ошибочные значения датчика температуры (помехи?)
Пожалуйста, покажите нам код, который вы написали до сих пор., @VE7JRO
В чем причина вашего ограничения по времени? Это школьный проект? Это для КС? Какие ресурсы у вас есть для класса? Вы понимаете, как настроить аппаратное обеспечение, и вам просто нужна помощь с программным обеспечением? Каков ваш фон?, @Duncan C