Платформа Arduino является одной из лучших для конструирования различных автоматизированных систем. Более того, во многих университетах и колледжах используют «Ардуино» для внедрения студентов в область робототехники. Действительно, «Ардуино» является очень легкой, но в то же время и мощной платформой для конструирования различных роботов и умных систем. И естественно, чтобы это все занимало меньше времени, продаются уже готовые датчики. В магазинах их огромное количество, поэтому довольно-таки сложно запутаться в выборе правильного. В этой статье рассмотрим некоторые основные датчики «Ардуино», и как они работают.
Где купить
Дело в том, что датчики в наших магазинах стоят немалых денег. И если вы собираетесь начать изучение платформы «Ардуино», то вам просто необходимо знать, где же можно купить их по низкой цене. Ответ прост – китайские магазины. Это может быть Aliexpress, Joom, Pandao и прочие. Практически все магазины покупают датчики именно там и продают их с огромной наценкой, которая достигает до 300 %. Конечно, придется ждать некоторое время, да и в качестве товара вы не можете быть уверены, но платить за тот же датчик в три раза больше тоже не стоит. Пример: на Aliexpress есть набор из 36 датчиков, который стоит 800 рублей. Такой же набор в российском магазине продают за 3,5 тыс. рублей. Поэтому решать вам.
Сервопривод
Сервопривод используется при конструировании роботов и различных умных систем. С помощью сервопривода можно открывать двери, узнавать градус поворота и многое другое. Но в основном его используют при создании роботов. Максимальный угол поворота сервомашинки: 180 градусов. Но иногда на просторах Aliexpress можно увидеть и варианты с углом поворота 360 градусов. Это довольно-таки базовый элемент, практически все уроки на Arduino с датчиками начинаются с него. Сервопривод легко подключается, программный код для управления очень простой.
Для подключения сервопривода используется всего три провода: земля, питание, логика. Сигнальный провод (обычно желтый или коричневый) подключаем к любому контакту с поддержкой ШИМ (широко-импульсная модуляция) на Arduino.
Пример кода:
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1; // объявляем переменную servo типа "servo1"
void setup() // процедура setup
{
servo1.attach(11); // привязываем сервопривод к аналоговому выходу 11
}
void loop() // процедура loop
{
servo1.write(0); // ставим угол поворота под 0
delay(2000); // ждем 2 секунды
servo1.write(90); // ставим угол поворота под 90
delay(2000); // ждем 2 секунды
servo1.write(180); // ставим угол поворота под 180
delay(2000); // ждем 2 секунды
}
Вначале в код добавляем библиотеку, которая уже есть в Arduino, далее указываем, к какому контакту подключен сервопривод. Как можно заметить, работать с сервоприводом действительно очень просто, управление идет всего одним оператором.
Цена на Aliexpress: 80–100 рублей.
DHT-11
DHT-11 служит для измерения температуры и влажности. Этот датчик температуры для «Ардуино» является самым популярным из-за его цены и возможностей. Измеряет температуру в диапазоне от 0 до 50 градусов, а влажность от 20 до 80 %. Также в продаже имеется другая версия этого датчика, DHT-22, диапазон измерений у него больше, но и стоит он в несколько раз дороже. Для простых проектов его использование не целесообразно, поэтому все отдают предпочтение DHT-11, который отлично справляется с измерениями. Питание можно подавать от 3.3 до 5V. Вообще, сам датчик имеет 4 контакта подключения, но в продаже имеются модули DHT-11, с ними работать намного удобнее, так как подключение через 3 контакта и не нужно мучиться с резисторами.
Подключение. Подключается этот датчик температуры к «Ардуино» с помощью трех контактов: земля, питание и логика.
Пример кода:
#include "DHT.h"
#define DHTPIN 2 // Тот самый номер пина, о котором упоминалось выше
DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // 2 секунды задержки
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
Serial.println("Ошибка считывания");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" *C "); //Вывод показателей на экран
}
В самом начале, как и при работе с сервоприводом, подключается библиотека. Кстати, насчет библиотеки. Изначально в пакете Arduino ее нет, эту библиотеку нужно скачивать. Есть несколько версий этой библиотеки, в нашем примере используется самая стандартная. Будьте внимательнее при скачивании, так как синтаксис может отличаться, и код не будет работать. Далее так же пишется, к какому контакту подключен датчик и его версию (DHT11 или DHT22). Как и при работе с сервоприводом, работать с этим датчиком для «Ардуино» очень легко, используется всего несколько операторов. Кстати, зачастую сервопривод и dht11 работают вместе, например, при создании автоматических окон, которые будут открываться, если в комнате или теплице слишком жарко.
Цена на Aliexpress: 80–100 рублей.
Датчик влажности почвы
Этот датчик используется при конструировании автоматического полива. С его помощью можно измерить влажность почвы, после чего обработать эти данные и при необходимости полить растение. В продаже имеются множество вариантов этого датчика для «Ардуино», но популярность имеет модель FC-28. Довольно бюджетный вариант, поэтому его все любят и используют в своих проектах. Датчик имеет два зонда, которые проводят электричество через землю. При сухой почве сопротивление больше, а при влажной – меньше. В основном этот датчик применяется лишь в маленьких проектах, связано это с тем, что зонды сделаны из плохого материала и рано или поздно при активной работе они покрываются коррозией, после чего датчик перестает работать. Длительность службы датчика можно увеличить, если активировать его только при снятии данных с почвы, например, раз в 6 часов. Некоторые умельцы и вовсе меняют зонды на более качественные, сделанные своими руками, а то и вовсе с нуля собирают датчик влажности для «Ардуино».
Подключается датчик влажности почвы достаточно просто. Обычно в комплекте с ним идет потенциометр и компаратор для управления чувствительностью датчика. Всего имеет он три контакта: логика, питание и земля. Подключаться может как к цифровым, так и к аналоговым контактам. Кстати, работать в аналоговом режиме удобнее.
Пример кода:
int sensor_pin = A0;
int output_value ;
void setup() {
Serial.begin(9600);
Serial.println("Читаем данные с датчика");
delay(2000);
}
void loop() {
output_value= analogRead(sensor_pin);
output_value = map(output_value,550,0,0,100);
Serial.print("Влажность : ");
Serial.print(output_value);
Serial.println("%");
delay(1000);
}
Первым делом определяем контакты, к которым подключен датчик к «Ардуино». После чего читаем данные с него и выводим их. Так же, как и с другими датчиками, работать с FC-28 достаточно легко. И все благодаря готовым библиотекам и датчикам.
Цена на Aliexpress: 30–50 рублей.
ПИР датчик
Это датчик движения для «Ардуино» используется при конструировании различных охранных систем. Обнаруживает движущиеся элементы от 0 до 7 метров. Рассматривать принцип работы не будем, перейдем сразу к подключению этого датчика к «Ардуино».
Судя по отзывам, подключается он также с помощью трех контактов: логика, питание и земля. Работает он через цифровые выходы.
Пример кода:
#define PIN_PIR 2
#define PIN_LED 13
void setup() {
Serial.begin(9600);
pinMode(PIN_PIR, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int pirVal = digitalRead(PIN_PIR);
Serial.println(digitalRead(PIN_PIR));
//Если обнаружили движение
if (pirVal)
{
digitalWrite(PIN_LED, HIGH);
Serial.println("Motion detected");
delay(2000);
}
else
{
//Serial.print("No motion");
digitalWrite(PIN_LED, LOW);
}
}
Определяем контакты, к которым подключен датчик, после чего выполняем проверку наличия движения. Работать с ним очень удобно и легко, но бывают случаи ложного срабатывания.
Цена на Aliexpress: 30–50 рублей.
Делаем выводы
Выше были рассмотрены основные датчики для «Ардуино», которые самыми первыми изучаются начинающими радиолюбителями. Как можно заметить, стоят они достаточно недорого, подключаются легко, а считывание данных и вовсе занимает всего пару строк. Кроме них, еще существует огромное количество других датчиков, даже есть для измерения пульса! Выгоднее всего приобретать их на Aliexpress комплектами, так они обойдутся еще дешевле. Творить легко, главное – помнить три основных правила робототехники!