Схемы

Как построить робота - Урок 6: Построить робота Arduino, который может контролировать плотность CO2: 11 шагов

Песня про любовь Классно поет под гитару

Песня про любовь Классно поет под гитару

Оглавление:

Anonim

Это пятый учебник из серии «Как построить робота». В этом уроке мы объединяем платформу робота с датчиком CO2, чтобы вы могли определять плотность CO2 в определенной области.

Как и в последних четырех уроках, здесь в качестве примера используется набор роботов Arduino (Pirate: 4WD Arduino Mobile Robot Kit с Bluetooth 4.0).

Меню уроков:

Урок 1: Введение

Урок 2. Создание базового робота Arduino

Урок 3: Создание робота Arduino для отслеживания линий

Урок 4: Создайте робота Arduino, который мог бы избежать препятствий

Урок 5: Создание робота Arduino со световыми и звуковыми эффектами

Урок 6: Создайте робота Arduino, который мог бы контролировать среду

Урок 7. Создание робота Arduino, управляемого Bluetooth

Компоненты оборудования

Датчик газа CO2 для Arduino × 1

Расходные материалы:

Шаг 1:

Цифровой сенсорный датчик × 1

Шаг 2:

ЖК-клавиатура Щит для Arduino × 1

Шаг 3:

M3 * 6MM Нейлоновые колонны и обвязки

Шаг 4:

ИНСТРУКЦИЯ ПО МОНТАЖУ:

ШАГ 1: Добавьте сенсорный датчик

На сенсорном датчике есть два отверстия для крепления нейлоновых колонн.

Исправьте нейлоновые колонны. Пожалуйста, не перекручивайте эти столбцы.

Шаг 5:

Затем прикрепите сенсорный датчик к пластине.

Шаг 6:

ШАГ 2: Добавьте ЖК-экран

Вставьте берега в четыре отверстия на ЖК-экране и закрепите их. Разрежьте оставшуюся часть завязок.

Шаг 7:

ШАГ 3: Добавьте датчик CO2

Закрепите нейлоновые колонки на датчике CO2. Прикрепите датчик CO2 к сенсорной пластине.

Шаг 8:

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

Шаг 9:

ПОДКЛЮЧИТЕ ОБОРУДОВАНИЕ:

Пожалуйста, держите кабели в порядке.

Интерфейс окрашен следующим образом:

Красный указывает на силу

Черный обозначает землю

Синий цвет обозначает аналоговый вход

Зеленый указывает на вывод цифрового ввода / вывода

ЖК-монитор должен быть подключен к VCC, GND, SCL и SDA в указанном порядке.

Шаг 10:

КОДИРОВАНИЕ

Найдите код с именем DHT11_Display.ino и загрузите его. Не забудьте о библиотеке для LiquidCrystal_I2C и CO2.

Шаг 11:

После успешной загрузки кода на ЖК-экране в реальном времени отобразится плотность CO2. Здесь сенсорный датчик имеет две функции:

1. Если через некоторое время вы не дотронетесь до датчика, он автоматически выключится.

2. Если вы хотите добавить больше датчиков для мониторинга других данных об окружающей среде, сенсорный датчик может переключать данные мониторинга на ЖК-дисплее.

ОПИСАНИЕ КОДА Библиотека важна. Трудно понять библиотеку без библиотеки.

#include #include

LiquidCrystal_I2C lcd (0x20,16,2);

#include "CO2.h"

CO2Sensor CO2ppm;

Здесь вам нужно знать о CO2Pin, переменной, которая используется для объявления контактов датчика.

int CO2Pin = A1;

А именно, DHT11Pin представляет собой аналоговый контакт 1. То есть наш датчик CO2 подключен к аналоговому контакту 1.

Ниже приведены некоторые объявления для переменных времени. TouchPin представляет сенсорный датчик, а 13 обозначает цифровой контакт.

long currentMillis = 0;

давно предыдущий Миллис;

длинный интервал = 4000;

int count = 0; // подсчитываем числа

int touchPin = 13;

Введите функцию setup (), которая является настройкой для инициации.

pinMode (touchPin, INPUT);

Затем оставьте сенсорный датчик в режиме ввода. За конкретной информацией вы можете обратиться к справочнику Arduino на веб-сайте Arduino (www.arduino.cc), в котором представлена ​​функция pinMode ().

Затем вам нужно инициализировать ЖК-экран и включить подсветку ЖК-дисплея, которая показывает, что ЖК-экран готов.

lcd.init ();

lcd.backlight ();

задержки (100);

lcd.setBacklight (0);

Теперь очередь за функцией loop (). Сначала нам нужно прочитать значение с датчика касания, а затем сохранить эти данные в одной переменной touchState.

int touchState = digitalRead (touchPin);

Затем проверьте, будет ли контроллер получать сигнал ВЫСОКОГО, как только вы дотронетесь до сенсорного датчика пальцами, 1 будет добавлено к счету.

if (touchState == HIGH) {count ++; previousMillis = millis (); }

При этом подсчет означает, сколько раз вы коснулись экрана. Но если вы касаетесь датчика только один раз, то количество времени для каждого касания будет включено в функцию millis ().

Мы изменяем продолжительность времени прикосновения с помощью предложения, начинающегося с if. Интервал здесь означает период касания, который мы установили. Таким образом, мы знаем, какое действие необходимо предпринять в течение четырех секунд касания и более четырех секунд касания соответственно.

if (currentMillis - previousMillis <Interval) {// сделать что-то за 4 секунды

else {// сделать что-то более 4 секунд}

lcd.setBacklight (0);

Функция setBacklight () используется для выключения подсветки ЖК-дисплея.

Какие действия необходимо предпринять, когда мы дотрагиваемся до датчика более четырех секунд

Если мы дотрагиваемся до датчика более четырех секунд, мы знаем, что лампа подсветки ЖК-дисплея может быть выключена.

какое действие должно быть предпринято в течение четырех секунд после контакта.

if (count == 1) {// Одно касание, на ЖК-экране не будет никакой разницы}

иначе если (count == 2) {// Прикоснитесь дважды, значение будет отображаться на экране ЖКД}

Нажмите сенсорный датчик еще раз в течение четырех секунд; экран все равно будет выключен. Только если вы дотронетесь до него дважды, включится подсветка ЖКД и отобразятся цифры плотности CO2.

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

кол = 0;

Таким образом, полный код должен быть:

if (count == 1) {lcd.setBacklight (0); }

иначе if (count == 2) {lcd.backlight (); DustShow (); кол = 0; }

Затем нам нужно отслеживать текущее время, поскольку мы можем сравнить его с предыдущим миллис. Этот момент очень важен.

currentMillis = millis ();

Функция CO2ppm.Read () используется для чтения данных. И переменная CO2Value будет использоваться для хранения данных с датчика CO2.

int CO2Value = CO2ppm.Read (CO2Pin);

Вот как бы мы использовали функцию, связанную с ЖК-экраном.

lcd.setCursor (0,0);

lcd.setCursor (0,1);

Функция setCursor (столбец, строка) используется для демонстрации того, какой столбец и строка отображается курсором, начиная с нуля в скобках.

lcd.print (CO2Value);

print () означает, что этот рисунок может быть показан на экране напрямую.

lcd.print ("");

lcd.print ("") означает пустое пространство, отображаемое на экране. Используется для очистки экрана.

Комбинация из нескольких датчиков Как вы можете объединить несколько датчиков окружающей среды, когда вы купили какие-то датчики?

Не беспокойся Мы предложим вам шаблон кодирования для тестирования нескольких датчиков. Вы можете внести изменения в комбинацию, ссылаясь на упомянутый шаблон. На самом деле, теория та же, что и с одним датчиком, за исключением того, что есть шаги для изменения экрана ЖКД.

Код красного цвета внизу необходимо изменить. Мы упоминали ранее, что подсчет относится к тому, сколько раз пальцы касаются сенсора. Таким образом, count = 2 означает, что мы нажали дважды, и показывает цифры для первого датчика. Продолжайте идти! Пожалуйста, имейте в виду, что вы должны снова считать ноль.

Образец кода:

if (currentMillis - previousMillis <интервал) {

if (count == 1) {lcd.setBacklight (0); }

иначе if (count == 2) {//No.1 Sensor Sensor1Show (); lcd.backlight (); }

иначе if (count == 3) {//No.2 Sensor Sensor2Show (); lcd.backlight (); count = 0; }

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

Вы можете проверить пример кода с именем WeatherStation.ino для справки, если вы все еще не знаете, как изменить свои коды.