Подключение модуля ARDUINO ETHERNET SHIELD НА БАЗЕ W5100 ENC28J60.
Подключить плату Аrduino к интернету можно несколькими способами. Беспроводное подключение прекрасно организуется с использованием платформ ESP8266 или ESP32. Можно использовать Lora модули с соответствующими WiFi-шлюзами. Но самым помехоустойчивым и “традиционным” является старый добрый Ethernet. Используя обычный RJ45 разъем и витую пару вы сможете объединить вашу плату с другим сетевым оборудованием, будь то роутер, маршрутизатор или тот же WiFi модем. Преимущества Ethernet-подключения – скорость, стабильность, большая защищенность от помех. Недостатки очевидны – оборудование привязывается проводом, причем в условиях реальной эксплуатации качество этого провода должно быть высоким.
Наиболее популярные Ethernet модули для Ардуино сегодня выпускаются на основе микросхемы wiznet w5100, которая способна поддерживать обмен данными с постоянной скоростью в 100 Мбит/сек. Для устройств на базе w5100 написаны готовые библиотеки, данная архитектура является простой и идеально подойдет начинающим любителям электроники, которые могут использовать как стартовую площадку для последующих проектов.
Ключевые характеристики модулей на базе W5100:
- Рабочее напряжение – 5 Вольт, подходит питание с платы Arduino.
- Внутренний буфер 16 Кб.
- Скорость соединения достигает значения в 10/100 Мбит/сек.
- Связь с платой ардуино осуществляется посредством порта SPI.
- W5100 поддерживает TCP и UDP.
Варианты модулей на базе других микросхем:
Модуль на базе Wiznet W5500. Имеет меньшие размеры, меньше греется, имеет большую мощность.
Модуль на базе enc28j60. Это гораздо более бюджетный вариант, дешевле W5100, но и потенциальных проблем с ним может возникнуть больше.
Наиболее удобным способом работы с W5100 является использование готовых шилдов Ethernet Shield для Arduino Uno или Nano. На таких модулях уже выполнены все необходимые обвязки, шилд просто вставляется в соответствующие разъемы платы и вам остается только загрузить скетч. Естественно, что при желании к плате могут быть подключены и другие устройства.
Отдельного упоминания заслуживает модуль Arduino Nano Ethernet. Он выполнен в формфакторе, облегчающим подключение к плате Nano v 3.0, но обладает практически такими же возможностями, что и “обычный” вариант для Uno. В основе шилда лежит микросхема ENC28J60.
Подключение тензодатчика HX711
Тензометрические датчики представляют собой устройства, преобразующие измеряемую упругую деформацию твердого тела в электрический сигнал. Это происходит за счет изменения сопротивления проводника датчика при изменении его геометрических размеров от растяжения или сжатия.
Интегральная микросхема НХ711 представляет собой аналого-цифровой преобразователь с частотой дискретизации 24 бит и встроенным малошумящим операционным усилителем. Мультиплексор позволяет выбирать один из двух имеющихся входных каналов. Канал А имеет программируемый выбор коэффициента усиления, который может быть 64 или 128. Канал В работает с предустановленным коэффициентом, равным 32.
В состав микросхемы входит интегральный стабилизатор напряжения, что исключает необходимость применения внешнего стабилизатора. На вход синхронизации может быть подан любой импульсный сигнал от внешнего источника, вместе с тем АЦП допускает работу от встроенного генератора.
Основные технические характеристики НХ711:
- Разрядность АЦП – 24 бит
- Усиление по входу А – 64 или 128
- Усиление по входу В – 32
- Частота измерений – 10 или 80 раз в секунду
- Питающее напряжение – 2,6-5,5 В
- Потребляемый ток – менее 10 мА
- Входное напряжение – ± 40 мВ
На плате с АЦП имеются два разъёма – J1 и JP2, на которых имеются следующие обозначения:
- J1
- E –, E + питание тензорного моста
- A –, A + дифференциальный вход канала А
- В –, В + дифференциальный вход канала В
- JP2
- GND, VCC питание
- DT, SCK – информационные шины
Поскольку резисторы тензорного датчика включены по мостовой схеме, от устройства отходят 4 проводника, имеющих разную цветовую маркировку. На два плеча моста подаётся опорное напряжение, а с двух других плеч снимается выходное напряжение, которое подаётся на вход операционного усилителя микросхемы НХ711. Подключение по цветам проводов осуществляется следующим образом:
- Красный – Е +
- Чёрный – Е –
- Белый – А –
- Зелёный – А +
Подключение датчика GROVE TOUCH SENSOR
Достоинства сенсорных кнопок:
- сенсорная кнопка «ощущает» нажатие даже через небольшой слой неметаллического материала, что обеспечивает разнообразие в использовании её во всевозможных проектах;
- из предыдущего пункта вытекает и этот – возможность использовать сенсорную кнопку внутри корпуса повышает привлекательность проекта, что не влияет на функционал, но достаточно важно в повседневной жизни, чтобы не обращать на это внимание;
- стабильное функционирование, которое выражается отсутствием подвижных частей и частой калибровкой (о чём будет сказано ниже). Вам не придется беспокоиться о дребезге кнопок, возникающем при использовании механического собрата, что существенно облегчит жизнь начинающему ардуинщику. Поэтому ещё один плюс, пусть и не для всех – простота при работе.
Недостатки сенсорных кнопок:
- сенсорные кнопки плохо работают при минусовых температурах, поэтому они непригодны для использования за пределами помещений;
- высокое потребление электричества, вызванное необходимостью постоянно поддерживать одинаковую ёмкость;
- сенсорная кнопка не работает при нажатии её рукой в перчатке либо плохо проводящим электричество объектом.
Характеристики сенсорного датчика GROVE TOUCH SENSOR*
Время отклика | Размер | Напряжение питания | Толщина диэлекстрика |
220 мс и 80 мс | 20Х20 мм | 2–5 В | 2 мм |
Для соединения необходимы такие элементы:
- Arduino Uno;
- светодиод;
- резистор;
- сенсорный датчик 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);
}
}