Проекты с датчиком движения на ардуино



Проекты с датчиком движения на ардуино


Всем привет, сегодня мы рассмотрим устройство под названием датчик движения. Многие из нас слышали об этой штуке, кто то даже имел дело с этим устройством. Что же такое датчик движения? Попробуем разобраться, итак:

Датчик движения, или датчик перемещения — устройство (прибор) обнаруживающий перемещение каких либо объектов. Очень часто эти устройства, используются в системах охраны, сигнализации и мониторинга. Форм факторов этих датчиков существует великое множество, но мы рассмотрим именно модуль датчика движения для подключения к платам Arduino, и именно от фирмы RobotDyn.  Почему именно этой фирмы? Я не хочу заниматься рекламой этого магазина и его продукции, но именно продукция данного магазина была выбрана в качестве лабораторных образцов благодаря качественной подаче своих изделий для конечного потребителя. Итак, встречаем — датчик движения(PIR Sensor) от фирмы RobotDyn:


Проекты с датчиком движения на ардуиноПроекты с датчиком движения на ардуино

Эти датчики малы по габаритам, потребляют мало энергии и просты в использовании. Кроме того — датчики движения фирмы RobotDyn имеют еще и маркированные шелкографией контакты, это конечно мелочь, но очень приятная. Ну а тем кто использует такие же датчики, но только других фирм, не стоит беспокоиться — все они имеют одинаковый функционал, и даже если не промаркированы контакты, то цоколёвку таких датчиков легко найти в интернете. 

Основные технические характеристики датчика движения(PIR Sensor):

Зона работы датчика: от 3 до 7 метров

Угол слежения: до 110о

Рабочее напряжение: 4,5…6 Вольт

Потребляемый ток: до 50мкА

Примечание: Стандартный функционал датчика можно расширить, подключив на пины IN и GND датчик освещенности, и тогда датчик движения будет срабатывать только в темноте.

Инициализация устройства.

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

Угол и область обнаружения.

Угол обнаружения(слежения) составляет 110 градусов, диапазон расстояния обнаружения от 3 до 7 метров, иллюстрация ниже показывает всё это:


Проекты с датчиком движения на ардуино 

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

На приведённой ниже таблице показаны основные регулировки датчика движения, слева находится регулятор временной задержки соответственно в левом столбце приведено описание возможных настроек. В правом столбце описание регулировок расстояния обнаружения. 

Проекты с датчиком движения на ардуино

Подключение датчика:

  • PIR Sensor[PIN GND] — Arduino Nano[PIN GND]
  • PIR Sensor[PIN 5V]   — Arduino Nano[PIN 5V]
  • PIR Sensor[PIN OUT] — Arduino Nano[PIN A0]
  • PIR Sensor[PIN IN] — для датчика освещенности
  • PIR Sensor[PIN GND] — для датчика освещенности

Типичная схема подключения дана на схеме ниже, в нашем случае датчик показан условно с тыльной стороны и подключен к плате Arduino Nano.

Проекты с датчиком движения на ардуино

Скетч демонстрирующий работу датчика движения(используем программу Serial Monitor Pro):

 

/*  * PIR Sensor[PIN GND] -> Arduino Nano[PIN GND]  * PIR Sensor[PIN 5V]  -> Arduino Nano[PIN 5V]  * PIR Sensor[PIN OUT] -> Arduino Nano[PIN A0]  */ void setup() {   //Установить соединение с монитором порта   Serial.begin(9600); } void loop() {   //Считываем пороговое значение с порта А0   //обычно оно выше 500 если есть сигнал   if(analogRead(A0) > 500)   {     //Сигнал с датчика движения     Serial.println("Есть движение !!!");   }   else   {     //Нет сигнала     Serial.println("Всё тихо...");   } }

Скетч является обычной проверкой работы датчика движения, в нём есть много недостатков, таких как:

  1. Возможные ложные срабатывания, датчику необходима самоинициализация в течение одной минуты.
  2. Жесткая привязка к монитору порта, нет выходных исполнительных устройств(реле, сирена, светоиндикация)
  3. Слишком короткое время сигнала на выходе датчика, при обнаружении движения необходимо программно задержать сигнал на более долгий период времени.

Усложнив схему и расширив функционал датчика, можно избежать вышеописанных недостатков. Для этого потребуется дополнить схему модулем реле и подключить обычную лампу на 220 вольт через данный модуль. Сам же модуль реле будет подключен к пину 3 на плате Arduino Nano. Итак принципиальная схема:

Проекты с датчиком движения на ардуино 

Теперь пришло время немного усовершенствовать скетч, которым проверялся датчик движения. Именно в скетче, будет реализована задержка выключения реле, так как сам датчик движения имеет слишком короткое время сигнала на выходе при срабатывании. Программа реализует 10-ти секундную задержку при срабатывании датчика. При желании это время можно увеличить или уменьшить, изменив значение переменной DelayValue . Ниже представлен скетч и видео работы всей собранной схемы:

/*   * PIR Sensor[PIN GND]  -> Arduino Nano[PIN GND]   * PIR Sensor[PIN 5V]   -> Arduino Nano[PIN 5V]   * PIR Sensor[PIN OUT]  -> Arduino Nano[PIN A0]   * Relay Module[PIN IN] -> Arduino Nano[PIN 3]   */   //relout - пин(выходной сигнал) для модуля реле  const int relout = 3;    //prevMillis - переменная для хранения времени предидущего цикла сканирования программы  //interval -.  

ндартная процедура инициализации порта на который подключен модуль реле   //ВАЖНО!!! - чтобы модуль реле оставался в первоначально выключенном состоянии   //и не срабатывал при инициализации, нужно записать в порт входа/выхода   //значение HIGH, это позволит избежать ложных "перещелкиваний", и сохранит   //состояние реле таким, каким оно было до включения всей схемы в работу   pinMode(relout, OUTPUT);   digitalWrite(relout, HIGH);   //Здесь всё просто - ждем когда закончатся 60 циклов(переменная initSecond)   //продолжительностью в 1 секунду, за это время датчик "самоинициализируется"   for(int i = 0; i < initSecond; i ++)   {     delay(1000);   } } void loop() {   //Считать значение с аналогового порта А0   //Если значение выше 500   if(analogRead(A0) > 500)   {     //Установить флаг срабатывания датчика движения     if(!trigger.

    //если разница больше заданного интервала, то:     if(currMillis - prevMillis > interval)     {       //Сохранить текущее значение миллисекунд в переменную prevMillis       prevMillis = currMillis;       //Проверяем счетчик задержки сравнивая его со значением периода       //в течение которого реле должно удерживаться во включенном       //состоянии       if(countDelayOff >= DelayValue)       {         //Если значение сравнялось, то:         //сбросить флаг срабатывания датчика движения         trigger = false;         //Обнулить счетчик задержки         countDelayOff = 0;         //Выключить реле         digitalWrite(relout, HIGH);         //Прервать цикл         break;       }       else       {         //Если значение всё еще меньше, то         //Инкрементировать счетчик задержки на единицу         countDelayOff ++;         //Удерживать реле во включенном состоянии         digitalWrite(relout, LOW);       }     }   } }

В программе присутствует конструкция:

unsigned long prevMillis = 0;

int interval = 1000;

    …

unsigned long currMillis = millis();

if(currMillis — prevMillis > interval)

{

    prevMillis = currMillis;

    ….

    // Наши операции заключенные в тело конструкции

    ….

}

Чтобы внести ясность, было решено отдельно прокомментировать эту конструкцию. Итак, данная конструкция позволяет выполнить как бы параллельную задачу в программе. Тело конструкции срабатывает примерно раз в секунду, этому способствует переменная interval. Сначала, переменной currMillis присваивается значение возвращаемое при вызове функции millis(). Функция millis() возвращает количество миллисекунд прошедших с начала программы.


ли разница currMillis — prevMillis больше чем значение переменной interval то это означает, что уже прошло более секунды с начала выполнения программы, и нужно сохранить значение переменной currMillis в переменную prevMillis затем выполнить операции заключенные в теле конструкции. Если же разница currMillis — prevMillis меньше чем значение переменной interval, то между циклами сканирования программы еще не прошло секунды, и операции заключенные в теле конструкции пропускаются.   

Ну и в завершение статьи видео от автора:


Источник: arduino.on.kg

Как работает PIR датчик движения?

Если вы не знали, все объекты с температурой выше абсолютного нуля (0 Кельвинов / -273,15°C), включая человеческие тела, испускают тепловую энергию в виде инфракрасного излучения. Чем горячее объект, тем большее излучение он излучает.

PIR датчик разработан специально для обнаружения таких уровней инфракрасного излучения. В основном он состоит из двух основных составляющих: пироэлектрического датчика и специальной линзы, называемой линзой Френеля, которая фокусирует инфракрасные сигналы на пироэлектрический датчик.


Рисунок 2 PIR датчик, пироэлектрический датчик, два слота обнаружения
Рисунок 2 – PIR датчик, пироэлектрический датчик, два слота обнаружения

Пироэлектрический датчик на самом деле имеет две прямоугольные прорези, выполненные из материала, который пропускает инфракрасное излучение. За ними находятся два отдельных инфракрасных сенсорных электрода: один из которых отвечает за создание положительного выходного сигнала, а другой – отрицательного. Причина такого решения заключается в том, что мы ищем изменение инфракрасных уровней, а не сами окружающие инфракрасные уровни. Два электрода подключены так, чтобы они подавляли друг друга. Если одна половина видит больше или меньше инфракрасного излучения, чем другая, выходной сигнал будет высоким или низким.

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

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


Рисунок 3 Принцип действия PIR датчика
Рисунок 3 – Принцип действия PIR датчика

PIR детектор движения HC-SR501

Для большинства наших проектов на Arduino, которые должны определять, когда человек покинул или вошел в зону, или приблизился, PIR датчики HC-SR501 являются отличным выбором. Они имеют низкое энергопотребление и низкую стоимость, довольно прочные, имеют широкий диапазон линз, с ними легко взаимодействовать, и они безумно популярны среди любителей.

PIR датчик HC-SR501 имеет три вывода: питание VCC, выход и земля (показано на рисунке ниже). Он имеет встроенный стабилизатор напряжения, поэтому он может питаться от любого постоянного напряжения от 4,5 до 12 вольт, обычно используется 5В. Кроме этого, у него есть несколько настроек. Давайте проверим их.

Рисунок 4 Распиновка PIR датчика. Расположение компонентов на плате.
Рисунок 4 – Распиновка PIR датчика. Расположение компонентов на плате.

На плате есть два потенциометра для настройки пары параметров:

  • Чувствительность – устанавливает максимальное расстояние, на котором может быть обнаружено движение. Оно варьируется от 3 до 7 метров. На реальное расстояние, которое вы получите, может влиять планировка вашего помещения.
  • Время – устанавливает время, в течение которого выходной сигнал останется на высоком логическом уровне после обнаружения. Минимум – 3 секунды, максимум – 300 секунд или 5 минут.

Наконец, на плате есть перемычка (на некоторых моделях перемычка не впаяна). У нее есть два варианта настройки:

  • H – это удержание / повтор / повторный запуск. В этом положении HC-SR501 будет продолжать выдавать высокий логический уровень, пока он продолжает обнаруживать движение.
    Рисунок 5 Работа PIR датчика HC-SR501 в режиме повторного запуска
    Рисунок 5 – Работа PIR датчика HC-SR501 в режиме повторного запуска
  • L – это прерывающийся или неповторяющийся / без повторного запуска. В этом положении выходной сигнал останется на высоком логическом уровне в течение времени, установленного регулировкой потенциометра TIME.
    Рисунок 6 Работа PIR датчика HC-SR501 в режиме без повторного запуска
    Рисунок 6 – Работа PIR датчика HC-SR501 в режиме без повторного запуска

Повышение универсальности PIR датчика HC-SR501

Печатная плата HC-SR501 имеет площадки для двух дополнительных компонентов. Они обычно обозначаются как "RT" и "RL". Обратите внимание, что на некоторых платах обозначения могут быть закрыты «купольной» линзой на стороне, противоположной компонентам.

Рисунок 7 PIR датчик. Площадки для фоторезистора и термистора
Рисунок 7 – PIR датчик. Площадки для фоторезистора и термистора
  • RT – предназначен для термистора или термочувствительного резистора. Его добавление позволяет использовать HC-SR501 при экстремальных температурах, а также в некоторой степени повышает точность детектора.
  • RL – это место для подключения светочувствительного резистора (LDR) или фоторезистора. При добавлении этого компонента HC-SR501 будет работать только в темноте, это обычное применение для систем освещения, чувствительных к движению.

Дополнительные компоненты могут быть припаяны непосредственно к плате или выведены в удаленные места с помощью проводов и разъемов.

Распиновка PIR датчика HC-SR501

HC-SR501 имеет 3-контактный разъем, который соединяет его с внешним миром. На него выведены следующие контакты:

Рисунок 8 Распиновка PIR датчика HC-SR501
Рисунок 8 – Распиновка PIR датчика HC-SR501

VCC – вывод питания для PIR датчика HC-SR501, к которому мы подключаем вывод 5V на Arduino.

Выходной контакт – логический выход с TTL уровнем 3,3 В. Низкий логический уровень означает, что движение не обнаружено, высокий логический уровень означает, что было обнаружено какое-то движение.

GND должен быть подключен к земле Arduino.

Использование PIR датчика в качестве автономного устройства

Одна из причин, по которой PIR датчик HC-SR501 является чрезвычайно популярным, заключается в том, что он является очень универсальным датчиком, который самодостаточен. А подключив его к каким-либо микроконтроллерам, таким как Arduino, вы сможете еще больше расширить его универсальность. Для нашего первого эксперимента мы будем использовать HC-SR501 отдельно, чтобы показать, насколько он полезен сам по себе.

Схема соединений для этого эксперимента очень проста. Батареи подключены к выводам датчика VCC и GND, а маленький красный светодиод подключен к выходному контакту через ограничивающий ток резистор 220 Ом. И всё!

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

Рисунок 9 Тестовая схема подключения PIR датчика без использования Arduino. Она показывает, как можно использовать PIR датчик в автономных приложениях.
Рисунок 9 – Тестовая схема подключения PIR датчика без использования Arduino. Она показывает, как можно использовать PIR датчик в автономных приложениях.

Помните, что при включении питания необходимо подождать 30-60 секунд, пока PIR датчик не адаптируется к инфракрасной энергии в помещении. В течение этого времени светодиод может немного мигать. Подождите, пока светодиод не погаснет, а затем подвигайтесь перед ним, махая рукой, чтобы увидеть, что светодиод загорается.

Подключение PIR датчика к Arduino UNO

Теперь, когда у нас есть полное понимание того, как работает PIR датчик, мы можем подключить его к нашей плате Arduino!

Подключить PIR датчики к микроконтроллеру очень просто. PIR действует как цифровой выход, поэтому всё, что вам нужно делать, это отслеживать, когда на его выходном выводе установится высокий логический уровень (обнаружено движение) или низкий логический уровень (не обнаружено). Подайте на PIR датчик напряжение 5 В и подключите землю. Затем подключите выход к цифровому выводу 2.

Вам нужно установить перемычку на HC-SR501 в положение H (повторный запуск), чтобы он работал правильно. Вам также нужно будет установить время на минимум (3 секунды), повернув потенциометр "время" против часовой стрелки до упора. Установите чувствительность в любое положение, которое вам нужно, либо, если не уверены, установите ее в среднее положение.

Теперь вы готовы загрузить код и начать работу PIR датчиком.

Рисунок 10 Подключение PIR датчика к Arduino UNO
Рисунок 10 – Подключение PIR датчика к Arduino UNO

Код Arduino

Код очень прост и в основном отслеживает, является ли входной сигнал на выводе 2 высоким или низким.

int ledPin = 13; // выбор вывода для светодиода  int inputPin = 8; // выбор входного вывода (для PIR датчика)  int pirState = LOW; // начинаем работу, предполагая, что движение не обнаружено  int val = 0; // переменная для чтения состояния вывода     void setup()   {   pinMode(ledPin, OUTPUT); // настраиваем вывод светодиода, как выход   pinMode(inputPin, INPUT); // настраиваем вывод датчика, как вход      Serial.begin(9600);  }     void loop()  {   val = digitalRead(inputPin); // прочитать входное значение      if (val == HIGH) // проверить, есть ли на входе высокий логический уровень   {   digitalWrite(ledPin, HIGH); // включить светодиод     if (pirState == LOW)    {   Serial.println("Motion detected!"); // напечатать об изменении выхода   pirState = HIGH;   }   }    else    {   digitalWrite(ledPin, LOW); // выключить светодиод     if (pirState == HIGH)   {   Serial.println("Motion ended!"); // напечатать об изменении выхода   pirState = LOW;   }   }  }

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

Рисунок 11 Вывод приложения PIR датчика в мониторе последовательного порта
Рисунок 11 – Вывод приложения PIR датчика в мониторе последовательного порта

Что нужно учесть перед проектированием приложений на базе PIR датчиков

Как и для большинства PIR датчиков, HC-SR501 требуется некоторое время для адаптации к инфракрасной энергии в помещении. Это занимает от 30 до 60 секунд при первом включении датчика.

Кроме того, датчик имеет период «сброса» около 5 или 6 секунд после считывания. В течение этого времени он не обнаружит никакого движения.

При проектировании системы на базе HC-SR501 вам необходимо будет учитывать эти длительности задержек.

Оригинал статьи:

  • How HC-SR501 PIR Sensor Works & Interface It With Arduino

Источник: radioprog.ru

PIR sensor: устройство, характеристики

Сегодня уже никто не удивляется при автоматическом включении освещения в подъездах многоквартирных домов, которые срабатывают при прохождении человека. В большинстве приборов установлены пассивные датчики движения (PIR). Рассмотрим в этой статье устройство датчика движения, схему его подключения к Arduino UNO и соберем на его основе автоматический включатель освещения.

Линза Френеля концентрирует инфракрасное излучение
Линза Френеля концентрирует инфракрасное излучение

Модуль с ПИР датчиком состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрическая деталь с прямоугольным кристаллом в центре, который улавливает уровень инфракрасного излучения и пропускает его через себя. При подключении IR к Arduino мы уже выяснили, что все предметы имеют инфракрасное излучение и чем выше температура, тем интенсивнее излучение.

Устройство пироэлектрического датчика движения
Устройство и распиновка пироэлектрического датчика движения

PIR датчики движения практически одинаковы по устройству. Диапазон чувствительности PIR сенсоров для Ардуино до 6 метров, угол обзора 110° x 70°. Питание — 5 Вольт, а выходной цифровой сигнал имеет значение 0, когда движения нет и значение 1 при наличии движения. Чувствительные элементы устанавливается в герметический корпус, который защищает от влажности и перепадов температур.

Как подключить датчик движения к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • PIR датчик движения;
  • беспаечная макетная плата;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа», «папа-мама».
Схема подключения PIR датчика к Ардуино УНО
Схема подключения PIR датчика к Ардуино Уно

Распиновка датчиков движения Ардуино у разных производителей может отличаться, но рядом с контактами есть надписи (см. фото выше). Поэтому, перед подключением внимательно изучите модуль. Один выход идет к GND, второй к питанию 5 Вольт (VCC), а третий выход (OUT) выдает цифровой сигнал с PIR сенсора. Соберите схему, как на фото выше, подключите светодиод к пину 12 на Ардуино и загрузите следующий скетч.

Скетч для датчика движения Ардуино

#define PIR 2  #define LED 12    void setup() {   pinMode(PIR, INPUT);   pinMode(LED,OUTPUT);  }    void loop() {   int pirVal = digitalRead(PIR);     if (pirVal == HIGH) {   digitalWrite(LED, HIGH);   delay(2000);   }     else {   digitalWrite(LED,LOW);   delay(2000);   }    }

Пояснения к коду:

  1. с помощью директивы #define для портов 2 и 12 мы назначили соответствующие имена PIR и LED. Это сделано лишь для нашего удобства;
  2. в условном операторе if использовано двойное равенство: if (pirVal == HIGH). Согласно языку программирования Ардуино, двойное равенство является оператором сравнения.

Скетч для светильника с датчиком движения

#define LED 3 // назначаем порт для светодиода  #define PIR 2 // назначаем порт для PIR sensor    unsigned long counttime; // выделение памяти для счетчика    void setup() {   pinMode(LED, OUTPUT);   pinMode(PIR, INPUT);  }    void loop() {   // если есть движение включаем светодиод   if (digitalRead(PIR) == HIGH) {   digitalWrite(LED, HIGH);   }     // включаем счетчик на 1 минуту   counttime = millis();     // если нет движения и прошла 1 минута   if (digitalRead(PIR) == LOW && millis() - counttime > 60000) {     // если нет движения в течении 1 минуты выключаем светодиод   digitalWrite(LED, LOW);   }  }

Пояснения к коду:

  1. с помощью функции counttime = millis(); мы начинаем отсчет времени. При этом, в отличие от функции delay, которая полностью прерывает программу, микроконтроллер может продолжать остальные вычисления в скетче.
  2. мы изменили время выключения светильника. Если в первом скетче светодиод выключался сразу после сигнала LOW с датчика. То сейчас мы даем 1 минуту до выключения светильника, на случай если человек не вышел из комнаты.

Источник: xn--18-6kcdusowgbt1a4b.xn--p1ai

Arduino

Что такое Arduino?

Платформа Ардуино пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Плата Arduino состоит из микроконтроллера Atmel AVR и элементов обвязки для программирования и интеграции с другими схемами.  Подробнее …

Установка Arduino IDE

Первое включение. Установка Arduino IDE

Разработка собственных приложений на базе плат, совместимых с архитектурой Arduino, осуществляется в официальной бесплатной среде программирования Arduino IDE. Среда предназначена для написания, компиляции и загрузки собственных программ в память микроконтроллера.  Подробнее …

Проекты с датчиком движения на ардуино Умный дом и интернет вещей. Элементы, решения, системы управления, проекты

Самый главный компонент любой «умной» системы – его контроллер. Контроллер предназначен для получения информации и управления «умным» домом. В нашем наборе два контроллера! Это плата Arduino MEGA и модуль NodeMCU v3 Lua WI-FI ESP8266 CH340. Вы можете выбрать любой из них. Подробнее …
 

Проекты с датчиком движения на ардуино Arduino проект 34: Организация подключения к сети Интернет с помощью модуля Ai-Thinker A6

В предыдущих главе мы рассмотрели мы сделали большие шаги построения «умного дома» –  оснастили его датчиками и исполнительными устройствами и создали и обеспечили определенную степень автоматизации для создания комфорта и безопасности. Теперь пришло время сделать наш «умный дом» устройством IoT (Интернета вещей), чтобы получить доступ к нему для мониторинга и управления из любой точки мира по сети интернет. Организуем доступ контроллеров нашего дома к сети интернет. Подробнее …
 

Arduino Проект 33: Модуль GPS. Принцип работы, подключение, примеры

Arduino проект 33:  Модуль GPS. Принцип работы, подключение, примеры

В этом эксперименте рассмотрим работу модуля GPS-приемника, позволяющего определять наше местоположение с помощью глобальной системы GPS, и подключение данного приемника к плате Arduino. GPS (Global Positioning System) – это система, позволяющая с точностью не хуже 100 м определить местоположение объекта.  Подробнее …

Arduino проект 32: Беспроводная связь. Модуль GSM/GPRS SIM900

Arduino проект 32: Беспроводная связь. Модуль GSM/GPRS SIM900

В этом эксперименте рассмотрим работу модуля GSM/GPRS Shield – платы расширения, позволяющей Arduino работать в сетях сотовой связи по технологиям GSM/GPRS для приёма и передачи данных, SMS и голосовой связи. GSM/GPRS Shield на базе модуля SIMCom SIM900 выпускают несколько производителей, и платы имеют незначительные отличия. Также на некоторых платах расположены: слот для SIM-карты, стандартные 3,5 мм джек для аудиовхода и выхода и разъём для внешней антенны. На плате GSM/GPRS shild имеется несколько перемычек, позволяющих выбрать тип serial-соединения.  Подробнее …

Arduino Проект 31: Беспроводная связь. Модуль Bluetooth HC-05 Arduino проект 31: Беспроводная связь. Модуль Bluetooth HC-05

В этом эксперименте рассмотрим работу модуля Bluetooth HC-05, позволяющего плате Arduino установить беспроводную связь и обмениваться данными с другими устройствами по протоколу Bluetooth. Bluetooth позволяет объединять в локальные сети любую технику: от мобильного телефона и компьютера до холодильника. При этом одним из немаловажных параметров новой технологии являются низкая стоимость устройства связи (в пределах 20 долларов), его небольшие размеры.  Подробнее …
 

Arduino проект 30: Беспроводная связь. Модуль Wi-Fi ESP8266 Arduino проект 30:  Беспроводная связь. Модуль Wi-Fi ESP8266

В этом эксперименте мы познакомимся с модулем ESP8266, с помощью которого можно подключить плату Arduini к сетям Wi-Fi, и напишем скетч для передачи данных датчика температуры на веб-сервис Народный мониторинг. Платы на ESP8266 – это не просто модули для связи по Wi-Fi. Чип, по сути, является микроконтроллером со своими интерфейсами SPI, UART, а также портами GPIO, а это значит, что модуль можно использовать автономно без Arduino и других плат с микроконтроллерами.  Подробнее …
 

Arduino Проект 29: Работа с Интернетом на примере Arduino Ethernet Shield W5100 Arduino проект 29: Работа с Интернетом на примере Arduino Ethernet Shield W5100

В этом эксперименте мы покажем, как нашей плате Arduino получить доступ к сети Интернет с помощью модуля Ethernet shield W5100. Ethernet Shield позволяет легко подключить вашу плату Arduino к локальной сети или сети Интернет. Он предоставляет возможность Arduino отправлять и принимать данные из любой точки мира с помощью интернет-соединения.  Подробнее …
 

Arduino проект 28: Считыватель RFID на примере RC522. Принцип работы, подключение Arduino проект 28:  Считыватель RFID на примере RC522. Принцип работы, подключение

В этом эксперименте мы покажем, как плата Arduino получает доступ к данным RFID-карт и брелоков Mifare с помощью RFID-считывателя RC522C. Идентификация объектов производится по уникальному цифровому коду, который считывается из памяти электронной метки, прикрепляемой к объекту идентификации. Считыватель содержит в своем составе передатчик и антенну, посредством которых излучается электромагнитное поле определенной частоты.  Подробнее …
 

Arduino проект 27: SD-карта. Чтение и запись данных Arduino проект 27:  SD-карта. Чтение и запись данных

В этом эксперименте мы покажем, как к плате Arduino подключить SD-карту. Если вашим Аrduino-проектам не хватает памяти, а объем энергонезависимой памяти EEPROM в платах Arduino совсем небольшой, можно использовать внешние носители. Один из самых простых по подключению к платам Arduino – это SD-карта. Можно подсоединиться к SD-карте напрямую, а можно использовать модули.  Подробнее …
 

Arduino проект 26: Часы реального времени. Принцип работы, подключение, примеры Arduino проект 26:  Часы реального времени. Принцип работы, подключение, примеры

В этом эксперименте мы рассмотрим модуль часов реального времени на микросхеме DS1307. Микросхема Dallas DS1307 представляет собой часы реального времени с календарем и дополнительной памятью NW SRAM (56 байт). Микросхема подключается к микроконтроллеру при помощи шины I2C. Количество дней в месяце рассчитывается с учетом високосных лет до 2100 г. В микросхеме DS1307 имеется встроенная схема, определяющая аварийное отключение питания  Подробнее …
 

Arduino проект 25: ИК-фотоприемник и ИК-пульт. Обрабатываем команды от пульта Arduino проект 25:  ИК-фотоприемник и ИК-пульт. Обрабатываем команды от пульта

В этом эксперименте мы организуем беспроводную ИК-связь, которая нам позволит отправлять на плату Arduino команды с помощью любого ИК-пульта. В качестве приемника будем использовать микросхему TSOP31236. В одном корпусе она объединяет фотодиод, предусилитель и формирователь. На выходе формируется обычный ТТЛ-сигнал без заполнения, пригодный для дальнейшей обработки микроконтроллером.  Подробнее …
 

Arduino Проект 24: 3-осевой гироскоп + акселерометр на примере GY-521 Arduino проект 24:  3-осевой гироскоп + акселерометр на примере GY-521

В этом эксперименте мы познакомимся с акселерометром и гироскопом и будем с помощью Arduino получать показания с этих датчиков. Модуль GY-521 на микросхеме MPU6050 содержит гироскоп, акселерометр и температурный сенсор. На плате модуля GY-521 расположена необходимая обвязка MPU6050, в том числе подтягивающие резисторы, стабилизатор напряжения на 3,3 В с малым падением напряжения с фильтрующими конденсаторами. Обмен с микроконтроллером осуществляется по шине I2C.  Подробнее …
 

Arduino проект 23: Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример Arduino проект 23:  Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример

В этом эксперименте мы рассмотрим ультразвуковой датчик для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ WH1602. Ультразвуковой дальномер HC-SR04 – это помещенные на одну плату приемник и передатчик ультразвукового сигнала. Излучатель генерирует сигнал, который, отразившись от препятствия, попадает на приемник. Измерив время, за которое сигнал проходит до объекта и обратно, можно оценить расстояние.  Подробнее …
 

Arduino проект 22: Датчики газов. Принцип работы, пример работы Arduino проект 22:  Датчики газов. Принцип работы, пример работы

В этом эксперименте мы рассмотрим ультразвуковой датчик для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ WH1602. Серия MQ-сенсоров для Ардуино, построены на базе мини-нагревателя внутри и используют электрохимический сенсор. Они чувствительны для определенных диапазонов газов и используются в помещениях при комнатной температуре.  Подробнее …
 

Arduino проект 21: Датчик влажности и температуры DHT11 Arduino проект 21:  Датчик влажности и температуры DHT11

В этом эксперименте мы рассмотрим датчик для измерения относительной влажности воздуха и температуры DHT11 и создадим проект вывода показаний датчика на экран ЖКИ WH1602. Датчик DHT11 состоит из емкостного датчика влажности и термистора. Кроме того, датчик содержит в себе простенький АЦП для преобразования аналоговых значений влажности и температуры.  Подробнее …
 

Arduino проект 20: Датчик температуры DS18B20
Arduino проект 19: Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293) Arduino проект 19:  Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)

В этом эксперименте мы рассмотрим подключение к Arduino шагового двигателя. Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. ШД нашли широкое применение в области, где требуется высокая точность перемещений или скорости.  Подробнее …
 

Arduino проект 18: Обрабатываем данные от джойстика. Управление Pan/Tilt Bracket с помощью джойстика Arduino проект 18:  Обрабатываем данные от джойстика. Управление Pan/Tilt Bracket с помощью джойстика

В этом эксперименте мы рассмотрим подключение к Arduino двухосевого аналогового джойстика. Для плат Arduino существуют модули аналогового джойстика, имеющие ось X, Y (потенциометры 10 кОм) и дополнительную кнопку – ось Z. Джойстик позволяет плавно и точно отслеживать степень отклонения от нулевой точки. Сам джойстик подпружиненный, поэтому он будет возвращаться в центральное состояние после его отпускания из определенной позиции.  Подробнее …
 

Arduino проект 17: Сервопривод. Крутим потенциометр, меняем положение Arduino проект 17:  Сервопривод. Крутим потенциометр, меняем положение

Сервопривод управляется с помощью импульсов переменной длительности. Угол поворота определяется длительностью импульса, который подается по сигнальному проводу. Это называется широтно-импульсной модуляцией. Сервопривод ожидает импульса каждые 20 мс. Длительность импульса определяет, насколько далеко должен поворачиваться мотор.  Подробнее …
 

Arduino проект 16: Графический индикатор. Подключение дисплея Nokia 5110 Arduino проект 16:  Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим графический дисплей Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации. Жидкокристаллический дисплей Nokia 5110 – монохромный дисплей с разрешением 84×48 на контроллере PCD8544, предназначен для вывода графической и текстовой информации. Питание дисплея должно лежать в пределах 2.7–3.3 В (максимум 3.3 В, при подаче 5 В на вывод VCC дисплей может выйти из строя). Но выводы контроллера толерантны к +5 В, поэтому их можно напрямую подключать к входам Arduino. Немаловажный момент – низкое потребление, что позволяет питать дисплей от платы Arduino без внешнего источника питания.  Подробнее …
 

Arduino проект 15: Индикатор LCD1602. Принцип подключения, вывод информации на него В этом эксперименте мы познакомимся с жидкокристаллическими индикаторами Winstar для вывода символьной информации. Научимся в Arduino-проектах применять библиотеки и создадим проект вывода показаний датчика температуры LM335 на экран дисплея. Жидкокристаллические индикаторы (ЖКИ, англ. LCD) являются удобным и недорогим средством для отображения данных ваших проектов. Символьный индикатор WH1602 позволяет выводить на экран 2 строки по 16 символов (размером 5×7 или 5×10 и дополнительная строка под курсор). Управляет работой дисплея контроллер.  Подробнее …
 
Arduino проект 14: Датчик температуры аналоговый LM335. Принцип работы, пример работы Arduino проект 14:  Датчик температуры аналоговый LM335. Принцип работы, пример работы

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения температуры LM335. LM335 – это недорогой температурный чувствительный элемент с диапазоном от –40 °C до +100 °C и точностью в 1 °C. По принципу действия датчик LM335 представляет собой стабилитрон, у которого напряжение стабилизации зависит от температуры.  Подробнее …
 

Arduino проект 13: Фоторезистор. Обрабатываем освещённость, зажигая или гася светодиоды Arduino проект 13:  Фоторезистор. Обрабатываем освещённость, зажигая или гася светодиоды

В этом эксперименте мы познакомимся с аналоговым датчиком для измерения освещенности – фоторезистором. Распространённое использование фоторезистора – измерение освещённости. В темноте его сопротивление довольно велико. Когда на фоторезистор попадает свет, сопротивление падает пропорционально освещенности.  Подробнее …
 

Arduino проект 12: Управляем реле через транзистор Arduino проект 12:  Управляем реле через транзистор

В этом эксперименте мы познакомимся с реле, с помощью которого с Arduino можно управлять мощной нагрузкой не только постоянного, но и переменного тока. При подключении реле к Arduino контакт микроконтроллера не может обеспечить мощность, необходимую для нормальной работы катушки. Поэтому следует усилить ток – поставить транзистор. Для усиления удобнее применять n-p-n-транзистор.  Подробнее …
 

Arduino проект 11: Транзистор MOSFET. Показываем усилительные качества транзистора. На примере электродвигателя изменяем обороты Arduino проект 11:  Транзистор MOSFET. Показываем усилительные качества транзистора. На примере электродвигателя изменяем обороты

В этом эксперименте мы познакомимся с транзистором MOSFET и с помощью него будем управлять мощной нагрузкой – электродвигателем. Выводы Arduino, сконфигурированные как OUTPUT, находятся в низкоимпедансном состоянии и могут отдавать 40 мА в нагрузку и не в состоянии обеспечить питание мощной нагрузки и большого напряжения. Одним из способов управления мощной нагрузкой является использование полевых MOSFET-транзисторов.  Подробнее …
 

Arduino проект 10: Управляем пьезоизлучателем: меняем тон, длительность, играем музыку Arduino проект 10:  Управляем пьезоизлучателем: меняем тон, длительность, играем музыку

В этом эксперименте мы произведем генерацию звуков на Arduino c помощью пьзоизлучателя. Пьезоизлучатели бывают двух типов – со встроенным генератором и без. Пьезоизлучатели со встроенным генератором излучают фиксированный тональный сигнал сразу после подачи на них номинального напряжения. Они не могут воспроизводить произвольного сигнала.  Подробнее …
 

Arduino проект 9: Матрица светодиодная 8x8 Arduino проект 9:  Матрица светодиодная 8×8

В этом эксперименте мы рассмотрим каскадное подключение нескольких микросхем 74HC595, что позволит, используя 3 вывода Arduino, управлять множеством контактов, что будет продемонстрировано в примере вывода фигур на экран светодиодной матрицы 8×8. В эксперименте будем использовать двухцветную светодиодную матрицу FYM-23881BUG-11.  Подробнее …
 

Arduino проект 8: Микросхема сдвигового регистра 74НС595. Управляем матрицей из 4 разрядов, экономим выходы Arduino В этом эксперименте мы рассмотрим работу Arduino с микросхемой 74HC595 – расширителем выходов, позволяющей уменьшить количество выводов Arduino для управления 4-разрядной семисегментной матрицей. Цифровых выводов Arduino Nano и UNO, а иногда даже и Arduino Mega может не хватить, если требуется управлять большим количеством выводов. В этом случае можно использовать микросхему 74HC595.  Подробнее …
 
Проекты с датчиком движения на ардуино Arduino проект 7: Матрица 4-разрядная из 7-сегментных индикаторов. Делаем динамическую индикацию

В этом эксперименте мы рассмотрим работу Arduino с 4-разрядной семисегментной матрицей. Получим представление о динамической индикации, позволяющей использовать одни выводы Arduino при выводе информации на несколько семисегментных индикаторов. Предназначена для одновременного вывода на матрицу 4 цифр, также есть возможность вывода десятичной точки.  Подробнее …
 

Arduino проект 6: Семисегментный индикатор одноразрядный. Выводим цифры В этом эксперименте мы рассмотрим работу с семисегментным светодиодным индикатором, которая позволяет Arduino визуализировать цифры. Светодиодный семисегментный индикатор представляет собой группу светодиодов, расположенных в определенном порядке и объединенных конструктивно. Светодиодные контакты промаркированы метками от a до g (и дополнительно dp – для отображения десятичной точки), и один общий вывод, который определяет тип подключения индикатора (схема с общим анодом ОА, или общим катодом ОК).  Подробнее …
 
Arduino проект 5: RGB-светодиод. Широтно-импульсная модуляция. Переливаемся цветами радуги  
Arduino проект 4: Светодиодная шкала 10 сегментов. Вращением потенциометра меняем количество светящихся светодиодов В этом эксперименте мы рассмотрим работу аналоговых входов Arduino, работу потенциометра в качестве аналогового датчика и будем демонстрировать показания аналогового датчика с помощью светодиодной шкалы. ля получения аналоговых данных Arduino имеет аналоговые входы, оснащенные 10-разрядным аналого-цифровым преобразователем для аналоговых преобразований.  Подробнее …
 
Проекты с датчиком движения на ардуино Arduino проект 3: Потенциометр. Показываем закон Ома на примере яркости светодиода

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

Arduino проект 2: Обрабатываем нажатие кнопки на примере зажигания светодиода. Боремся с дребезгом контактов Arduino проект 2: Обрабатываем нажатие кнопки на примере зажигания светодиода. Боремся с дребезгом контактов

Это эксперимент по работе с кнопкой. Мы будем включать светодиод по нажатии кнопки и выключать по отпускании кнопки. Рассмотрим понятие дребезга и программные методы его устранения. При использовании Arduino в качестве входов используют pull-up- и pulldown-резисторы, чтобы вход Arduino не находился в «подвешенном» состоянии (в этом состоянии он будет собирать внешние наводки и принимать произвольные значения), а имел заранее известное состояние (0 или 1).  Подробнее …
 

Arduino проект 1: Мигаем светодиодом Arduino проект 1:  Мигаем светодиодом

В этом эксперименте мы научимся управлять светодиодом. Заставим его мигать. Светодиод – это полупроводниковый прибор, преобразующий электрический ток непосредственно в световое излучение. По-английски светодиод называется light emitting diode, или LED.  Подробнее …
 

 

Источник: arduino-kit.ru


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.