Серия «Учебные проекты». Учимся подключать к Ардуино различные датчики и модули. Часть 1.

Подключение модуля ARDUINO ETHERNET SHIELD НА БАЗЕ W5100 ENC28J60.

Подключить плату Аrduino к интернету можно несколькими способами. Беспроводное подключение прекрасно организуется с использованием платформ ESP8266 или ESP32. Можно использовать Lora модули с соответствующими WiFi-шлюзами. Но самым помехоустойчивым и “традиционным” является старый добрый Ethernet. Используя обычный RJ45 разъем и витую пару вы сможете объединить вашу плату с другим сетевым оборудованием, будь то роутер, маршрутизатор или тот же WiFi модем. Преимущества Ethernet-подключения – скорость, стабильность, большая защищенность от помех. Недостатки очевидны – оборудование привязывается проводом, причем в условиях реальной эксплуатации качество этого провода должно быть высоким.

Наиболее популярные Ethernet модули для Ардуино сегодня выпускаются на основе микросхемы wiznet w5100, которая способна поддерживать обмен данными с постоянной скоростью в 100 Мбит/сек. Для устройств на базе w5100 написаны готовые библиотеки, данная архитектура является простой и идеально подойдет начинающим любителям электроники, которые могут использовать как стартовую площадку для последующих проектов.

ARDUINO ETHERNET SHIELD НА БАЗЕ W5100 ENC28J60

Ключевые характеристики модулей на базе W5100:

  • Рабочее напряжение – 5 Вольт, подходит питание с платы Arduino.
  • Внутренний буфер  16 Кб.
  • Скорость соединения достигает значения в 10/100 Мбит/сек.
  • Связь с платой ардуино осуществляется посредством порта SPI.
  • W5100 поддерживает TCP и UDP.

Варианты модулей на базе других микросхем:

Модуль на базе Wiznet W5500. Имеет меньшие размеры, меньше греется, имеет большую мощность.

Модуль на базе enc28j60. Это гораздо более бюджетный вариант, дешевле W5100, но и потенциальных проблем с ним может возникнуть больше.

Наиболее удобным способом работы с W5100 является использование готовых шилдов Ethernet Shield для Arduino Uno или Nano. На таких модулях уже выполнены все необходимые обвязки, шилд просто вставляется в соответствующие разъемы платы и вам остается только загрузить скетч. Естественно, что при желании к плате могут быть подключены и другие устройства.

Подключение ARDUINO ETHERNET SHIELD НА БАЗЕ W5100 ENC28J60 к Arduino

Отдельного упоминания заслуживает модуль Arduino Nano Ethernet. Он выполнен в формфакторе, облегчающим подключение к плате Nano v 3.0, но обладает практически такими же возможностями, что и “обычный” вариант для Uno. В основе шилда лежит микросхема ENC28J60.


Ethernet для Arduino Nano

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

Тензометрические датчики представляют собой устройства, преобразующие измеряемую упругую деформацию твердого тела в электрический сигнал. Это происходит за счет изменения сопротивления проводника датчика при изменении его геометрических размеров от растяжения или сжатия.

Интегральная микросхема НХ711 представляет собой аналого-цифровой преобразователь с частотой дискретизации 24 бит и встроенным малошумящим операционным усилителем. Мультиплексор позволяет выбирать один из двух имеющихся входных каналов. Канал А имеет программируемый выбор коэффициента усиления, который может быть 64 или 128. Канал В работает с предустановленным коэффициентом, равным 32.

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

Основные технические характеристики НХ711:

  • Разрядность АЦП – 24 бит
  • Усиление по входу А – 64 или 128
  • Усиление по входу В – 32
  • Частота измерений – 10 или 80 раз в секунду
  • Питающее напряжение – 2,6-5,5 В
  • Потребляемый ток – менее 10 мА
  • Входное напряжение – ± 40 мВ

На плате с АЦП имеются два разъёма – J1 и JP2, на которых имеются следующие обозначения:

  1. J1
    1. E –, E + питание тензорного моста
    1. A –, A + дифференциальный вход канала А
    1. В –, В + дифференциальный вход канала В
  2. JP2
    1. GND, VCC питание
    1. DT, SCK – информационные шины

Поскольку резисторы тензорного датчика включены по мостовой схеме, от устройства отходят 4 проводника, имеющих разную цветовую маркировку. На два плеча моста подаётся опорное напряжение, а с двух других плеч снимается выходное напряжение, которое подаётся на вход операционного усилителя микросхемы НХ711. Подключение по цветам проводов осуществляется следующим образом:

  • Красный – Е +
  • Чёрный – Е –
  • Белый – А –
  • Зелёный – А +
Подключение тензодатчика HX711 к Arduino

Подключение датчика GROVE TOUCH SENSOR


GROVE TOUCH SENSOR

Достоинства сенсорных кнопок:

  • сенсорная кнопка «ощущает» нажатие даже через небольшой слой неметаллического материала, что обеспечивает разнообразие в использовании её во всевозможных проектах;
  • из предыдущего пункта вытекает и этот – возможность использовать сенсорную кнопку внутри корпуса повышает привлекательность проекта, что не влияет на функционал, но достаточно важно в повседневной жизни, чтобы не обращать на это внимание;
  • стабильное функционирование, которое выражается отсутствием подвижных частей и частой калибровкой (о чём будет сказано ниже). Вам не придется беспокоиться о дребезге кнопок, возникающем при использовании механического собрата, что существенно облегчит жизнь начинающему ардуинщику. Поэтому ещё один плюс, пусть и не для всех – простота при работе.

Недостатки сенсорных кнопок:

  • сенсорные кнопки плохо работают при минусовых температурах, поэтому они непригодны для использования за пределами помещений;
  • высокое потребление электричества, вызванное необходимостью постоянно поддерживать одинаковую ёмкость;
  • сенсорная кнопка не работает при нажатии её рукой в перчатке либо плохо проводящим электричество объектом.

Характеристики сенсорного датчика GROVE TOUCH SENSOR*

Время отклика Размер Напряжение питания Толщина диэлекстрика
220 мс и 80 мс 20Х20 мм 2–5 В 2 мм

Для соединения необходимы такие элементы:

  • Arduino Uno;
  • светодиод;
  • резистор;
  • сенсорный датчик GROVE TOUCH SENSOR.

Размещение и соединение всех элементов в окне «Макетная плата» показано на рисунке


Подключение датчика GROVE TOUCH SENSOR к Ардиуно Уно

Пример управляющей программы:

const int buttonPin = 2; // Выставляем значения порта, подсоединённого с сигнал-портом кнопки

    int count = 0; // Переменная, предназначенная для выбора режима работы

    void setup() {

    pinMode(LED_BUILTIN, OUTPUT); // Команда для адекватного реагирования светодиода

    pinMode(buttonPin, INPUT); // Открываем порт для считывания

    }

    void loop() {

    if(digitalRead(buttonPin)){ // При нажатии кнопки…

    count = count + 1; // Изменяем режим кнопки

    if(count > 2){ //В случае превышения значения count начинаем отсчет сначала

    count = 0;

    }

    while(digitalRead(buttonPin)){ // Пустой цикл для ожидания, пока пользователь отпустит кнопку

    }

    }

    if(count == 0) { // 3 режима по переключению кнопки:

    digitalWrite(LED_BUILTIN, LOW); // 1: Выключенный светодиод

    } else if(count == 1) {

    digitalWrite(LED_BUILTIN, HIGH); // 2: Включенный

    } else {

    digitalWrite(LED_BUILTIN, HIGH); // 3: Мигающий

    delay(100);

    digitalWrite(LED_BUILTIN, LOW);

    delay(100);

    }

    }