Step 5: Build a Physical Circuit (Optional)
If you build a physical version of this circuit, you can try it out with the Arduino software’s serial monitor (magnifying glass button in the upper right of the sketch window), activating the sensor with your hand, body, notebook, etc.
If using a physical board, put something in front of the sensor and observe the distance reading using the serial monitor, and set distanceThreshold to that value.
Adjust your different distance threshold «buckets» to a range suitable to your initial value, for instance if your hand was 60cm away, your ranges might be 60-40, 40-20, and 20-0.
Upload your code again, and try moving in front of the sensor. As the distance shortens, you should see the LEDs turn on one by one.
Схема принципиальная УЗ датчика
При надетой перемычке датчик передает информацию через последовательный порт, программу для Arduino позволяющую использовать US-100 в данном режиме, можно взять здесь .
Полезное: Ограничитель импульсных перенапряжений и схема установки разрядника
В этом режиме датчик потребляет 2,5 мА при напряжении 5 В и 3,25 мА при 3,3 В.
При снятой перемычке логика работы US-100 ничем не отличается от таковой у HC-SR04 . Как показал опыт автора в данном случае нельзя подключать датчик к 0 и 1 портам Arduino.
В этом режиме датчик потребляет 2,4 мА при 5 В и 1,8 мА при 3,3 В.
Датчик US-100 корректно измеряет расстояние до твердой поверхности. При облучении ультразвуком ворсистой поверхности, рассматриваемый датчик завышает расстояние до препятствия, а в непосредственной близости выдает, что расстояние превышает радиус действия датчика. В целом датчик существенно превосходит HC-SR04 по точности измерения расстояния, кроме этого US-100 может передавать данные по последовательному интерфейсу, имеет более широкий диапазон напряжений питания. Все это по субъективному мнению автора оправдывает заметно более высокую стоимость US-100 по сравнению с HC-SR04.
Ультразвуковой датчик HC-SR04
Ультразвуковой датчик HC-SR04 — Ultrasonic Ranging Module HC — SR04 — Ultrasonic Sensor Distance Measuring Module — Sonar
Ультразвуковой дальномер HC SR04 самый известный датчик для применения в Arduino, Raspberry Pi, ESP8266 и ESP32 модулях. Позволяет измерять расстояние до объекта в диапазоне от 2 до 400 (180) см. Например, если вы хотите собрать робота, который объезжает преграды, то данный дальномер прекрасно подойдет для ваших задач. Датчик имеет небольшие габариты и простой интерфейс.
Рис. 4 Внешний вид ультразвукового датчика (сонара, ультразвукового сенсора, ультразвукового модуля) HC-SR04
Что такое Arduino?
Ардуино (Arduino) — специальный инструмент, позволяющий проектировать электронные устройства, имеющие более тесное взаимодействие с физической средой в сравнении с теми же ПК, фактически не выходящими за пределы виртуальной реальности.
В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.
Другими словами, Ардуино — небольшое устройство, обеспечивающее управление различными датчиками, системами освещения, принятия и передачи данных.
В состав Arduino входит микроконтроллер, представляющий собой собранный на одной схеме микропроцессор. Его особенность — способность выполнять простые задачи. В зависимости от модели устройство Ардуино может комплектоваться микроконтроллерами различных типов.
Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.
Не менее важная особенность печатной платы заключается в наличии 22 выводов, которые расположены по периметру изделия. Они бывают аналоговыми и цифровыми.
Особенность последних заключается в управлении с помощью только двух параметров — логической единицы или нуля. Что касается аналогового вывода, между 1 и 0 имеется много мелких участков.
Сегодня Arduino используется при создании электронных систем, способных принимать информацию с различных датчиков (цифровых и аналоговых).
Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.
Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.
ЧИТАЙТЕ ПО ТЕМЕ: Умный дом Xiaomi Smart Home, обзор, комплектация, подключение и настройка своими руками, сценарии.
Скетч ультразвукового дальномера на arduino с помощью HC-SR04 и TM1637
// подключение индикатора TM1637 #include <TM1637.h> #define CLK 3 #define DIO 2 TM1637 tm1637(CLK,DIO); // пины для HC-SR04 int echoPin = 12; int trigPin = 11; void setup() { Serial.begin (9600); // для вывода в мониторе порта pinMode(trigPin, OUTPUT); // пин отправки сигнала pinMode(echoPin, INPUT); // пин приема сигнала // инициализация индикатора tm1637.init(); tm1637.set(BRIGHT_TYPICAL); } void loop() { int duration, mm; // переменные для хранения расстояния // останавливаем отправку сигнала digitalWrite(trigPin, LOW); delayMicroseconds(2); // отправляем ультрозвуковой сигнал digitalWrite(trigPin, HIGH); // ждем 10 микроскунд delayMicroseconds(10); // останавливаем отправку сигнала digitalWrite(trigPin, LOW); // замеряет длину положительного импульса на пине echoPin duration = pulseIn(echoPin, HIGH); // высчитываем расстояние до препядствия mm = duration / 5.8; // вывод данных в монитор порта Serial.print(mm); Serial.println(" mm"); // вывод данных на индикатор tm1637.display( mm ); delay(100); }
Настройка навыка «Домовёнок Кузя»
Перейдите на сайт навыка и авторизуйтесь там через Яндекс. Далее жмите на Добавить правило HTTP (GET). Перед вами откроется форма настройки правила.
Активационная фраза — название запроса, которое будет отображаться в списке (например «свет на кухне, включение»). Если вы не планируете контролировать умный дом конкретно изнутри навыка, то больше фраза нигде не понадобится. Поле Ответ Кузи тоже оставляйте пустым. В поле URL вставляете соответствующий веб-хук на включение света (виртуального порта). Остальные параметры можно не изменять. После этого нужно сделать идентичное правило на выключение света.
Пример настройки правила на включение света
Дальше нужно перейти во вкладку виртуальных устройств и добавить устройство «Лампа». Тут нужно дать название устройству, по которому его будет идентифицировать Алиса. Например: свет, бра, подсветка, лампа или торшер. Место расположения — комната, в которой будет установлено устройство. Это нужно на тот случай, если в нескольких комнатах будут одинаковые по названию элементы. К тому же, одной голосовой командой можно включать и выключать все устройства в определённой комнате.
В Правило на включение/выключение из списка выбираете соответствующие запросы. В лампе имеется возможность управления яркостью. Для этого нужно создать ещё одно правило, но значение параметра установить как . Тогда в запрос будет подставляться число от 0 до 100, которое будет обозначать требуемую яркость. Вам лишь остаётся обработать это значение в скетче.
Пример настройки виртуального устройства
Примечание Если вы планируете изменять яркость, то параметр value в веб-хуке на включение нужно изменить с 1 на 100.
Необходимые детали и узлы
Прежде чем приступить к сборке квадрокоптера своими руками, необходимо обзавестись всеми необходимыми деталями. Мозгом нашей самоделки станет полетный контроллер Arduino Uno. Его возможностей более чем достаточно для того, чтобы управлять беспилотником.
Помимо микроконтроллера, нам понадобятся:
- Аккумулятор (лучше несколько) на 3.7В
- Плата MPU-6050 (на ней установлены гироскоп и акселерометр)
- Транзистор ULN2003A
- Коллекторные двигатели с полым ротором 0820
- Провода
Необходимо сделать несколько замечаний. Так как мы собираем дешевый самодельный дрон, то наш выбор пал на коллекторные движки с полым ротором (так называемые coreless motors). Они далеко не так надежны, как бесколлекторные двигатели, но зато гораздо дешевле стоят. Кроме того, можно обойтись без дополнительных контроллеров скорости.
Зато невозможно обойтись без гироскопа и акселерометра. Гироскоп необходим для того, чтобы квадрокоптер мог удерживать заданное направление движения, тогда как акселерометр используется для измерения ускорения. Без этих устройств управлять коптером было бы гораздо сложнее (если вообще возможно), так как именно они предоставляют данные для сигнала, регулирующего скорость вращения винтов.
Мы не указали в списке необходимых деталей раму. Ее можно приобрести, а можно распечатать на 3D принтере каркас, лучи и крепления для двигателей. Второй вариант нам кажется более предпочтительным, тем более, что в интернете можно без труда найти проекты квадрокоптера.
Принцип работы ультразвукового датчика HC-SR04
Ультразвуковой датчик HC-SR04 в нашем проекте используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления. Основные принципы работы ультразвукового датчика состоят в следующем:
- Вначале с формируется сигнал высокого уровня длительностью 10 мкс, который запускает в работу ультразвуковой датчик.
- Затем модуль автоматически посылает 8 импульсов с частотой 40 кГц, а затем проверяет приняты они или нет.
- Если эти излученные сигналы принимаются, то вычисляется время между временем передачи этих импульсов и их приемом.
Расстояние затем можно рассчитать по следующей формуле:
Distance= (Time x Speed of Sound in Air (340 m/s))/2
где Time – измеренное датчиком время;Speed of Sound in Air – скорость звука в воздухе, равная 340 м/с.
Временные диаграммы
Как уже указывалось, измерение расстояний осуществляется на основе эхо. Вначале передается импульс длительностью 10 мкс чтобы запустить модуль в работу. После этого модуль автоматически передает 8 импульсов с частотой 40 кГц (то есть ультразвуковая частота) и проверяет эхо – то есть не вернулись ли эти импульсы обратно, отразившись от препятствия. Если импульсы вернулись обратно, то расстояние до препятствия можно рассчитать по следующей формуле:
Distance= (time x speed)/2
В этой формуле мы разделили произведение скорости и времени на 2 потому что измеренное время равно сумме времен распространения звуковой волны до препятствия и обратно. То есть время, чтобы звук достиг препятствия, равно половине времени, измеренного датчиком.
Временные диаграммы работы модуля приведены на следующем рисунке:
Печать корпуса и сборка
Возьмите скользящие контакты и поместите его в верхнюю часть корпуса. Убедитесь, что вращающаяся часть кольца находится на верхней стороне корпуса, чтобы она вращалась одновременно с диском. Теперь установите шаговый мотор, который фиксируется к корпусу двумя 3M винтами и гайкам. Крышка готова:
Вплавьте две резьбовые вставки в корпус вращающегося диска, на котором будет закрепляется датчик нужно вплавить вставные гайки. Для этого можно использовать паяльник:
Теперь пропускаем провода от скользящих контактов через отверстие вращающегося диска:
После чего берём датчик и припаиваем к нему 4 провода (+5V, GND, SCL и SDA) от скользящих контактов:
С помощью двух болтов М3 закрепляем модуль дальномера на корпусе вращающегося диска:
Если у вас модуль с другим расстоянием между крепёжными отверстиями, модуль можно закрепить только одним болтом. Если крепёжных отверстий совсем нет, модуль можно приклеить (двустороння липкая лента, термоклеем с помощью клеевого пистолета и т.д.).
Когда датчик будет закреплён, вращающийся диск надевается на подшипник:
На вращающуюся крышку приклеивается неодимовый магнит, а в верхнюю крышку вставляется датчик холла:
Магнит служит для того, чтобы на него на него срабатывал датчик Холла и в этот момент в коде происходит установка переменной «угол» в некоторое значение. Если магнит по размерам позволяет наклеить его по центру под датчиком, это будет самый лучший вариант, т.к. при срабатывании переменной «угол» нужно будет присвоить значение 0. Если нет, магнит можно наклеить возле датчика. Тогда переменной «угол» нужно будет присвоить не 0, а соответствующее значение (на какой угол относительно магнита повёрнут датчик). Если магнит находится с противоположной стороны, нужно присвоить 180. Если угол составляет 20 градусам (на фото выше угол немного больше):
Тогда переменной «угол» нужно присвоить 20 и т.д.
На макетную плату по схеме, приведенной ранее, запаиваем конденсатор, драйвер мотора, 10K резистор, датчик Холла, провода от Arduino и стабилизатора питания:
Всё припаяно, теперь закрепляем (двусторонней липкой лентой, клеем, термоклеем и т.д.) Arduino Nano внутри корпуса и наш лидар почти готов:
Осталось вплавить в нижнюю крышку корпуса три вставные гайки, затем прикрутить крышку корпуса, надеть на шкив пасик и можно переходить к программированию и экспериментам.
Ультразвуковой дальномер HC-SR04 Arduino
Ультразвуковой датчик (ещё его часто называют сонаром или ультразвуковым дальномером) определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.
По этому же принципу работает множество приборов для исследования пространства — эхолот, сонар, радиолокатор и даже полицейский радар для определения скорости автомобиля. Все эти приборы излучают узконаправленный ультразвуковой сигнал и получают обратно отраженный сигнал. В отличии от инфракрасных дальномеров (IR), на показания ультразвукового датчика (сонара) не влияет цвет объекта.
Но при настройке ультразвукового датчика на Ардуино могут возникнуть трудности с определением расстояния до звукопоглощающих объектов, поскольку они способны полностью погасить излучаемый сигнал. Для идеальной точности измерения расстояния, поверхность изучаемого объекта должна быть ровной и гладкой. Принцип работы ультразвукового датчика hc-sr04 показан на рисунке выше.
Предисловие
Так получилось, что в университете я изучаю C/C++. Для души пробую делать небольшие проекты на Python. Я много слышал про платформу Arduino, смотрел видео на YouTube, частенько посещал Arduino Project Hub и вот мне стало интересно самому поэкспериментировать, углубясь в разработку под микроконтроллеры. Купив стартовый набор с самой платой и горстью электронных компонентов и попробовав собрать проекты из обучающей брошюры, понял, что надо двигаться дальше. Продумав саму идею следующей самоделки, отправился на просторы Google и обнаружил, что не могу найти всего, что мне нужно на одном ресурсе. Безусловно, мне несложно было посетить несколько сайтитов и блогов с информацией, но я бы сильно сэкономил время, если бы нашел все в одном месте. Так и появилась эта статья-туториал.
Основы сборки дальномера
Ардуино – уникальная система, представляющая собой пластилин в руках инженера, из которого он может слепить, что пожелает.
Возможно это благодаря большому разнообразию датчиков и модулей разных направленностей. От простых чипов, измеряющих силу тока, до вещей вроде Arduino hc hc sr04.
Это специальный датчик, позволяющий, при помощи ультразвуковых волн, измерить расстояние до объекта, на который его направили. Несложно догадаться, что проще всего его применить для создания простого дальномера. Рассмотрим Arduino hc sr04 и какие нюансы в работе с ним стоит учитывать, прежде чем начать собирать проект.
Если вы собираетесь собрать дальномер на Ардуино, то без HC SR04 просто не обойтись. Ведь именно этот модуль чаще всего применяют в подобных системах из-за его высокой востребованности, по причине простоты работы, доступности и низкой стоимости
При этом точность показаний остаётся на высоте, что очень важно в подобных системах. Из данного чипа можно собрать не только дальномер на Ардуино, но и полноценного робота, который будет чувствовать расстояние до объекта и обходить любое препятствие
Однако сегодня мы рассмотрим именно вариант с дальномером на Аrduino, так как он идеально подойдёт для новичков в сфере, которые ещё не слишком хорошо разбираются в основах.
Если же вы захотите затем модифицировать своё изобретение, то можно научить его моделировать полноценную трехмерную карту помещения, что будет удобно для тех, кто занимается дизайном и конструированием мебели или зданий. Но сначала стоит рассмотреть, как вообще работает данный прибор и какие основы сборки стоит усвоить, прежде чем создать лазерный дальномер на Ардуино своими руками.
Наш дальномер на Arduino будет основан на сонаре, применяемом в природе дельфинами, для измерения расстояния до объектов и спокойного обхождения препятствий. Делается это с помощью физических свойств ультразвуковых волн, которые способны отражаться, сталкиваясь с твердыми объектами, и возвращаться обратно к датчикам.
Далее в ход вступает программный код, который высчитывает, сколько времени прошло между посланием и возвратом волны, делит его на два и с помощью формул и скорости звука высчитывает усреднённое расстояние до объекта.
Почему усреднённое?
Дело в том, что любой ультразвуковой датчик все равно будет ошибаться на десятые доли метра, связано это с тем, что различные материалы, окружение и прочие переменные могут повлиять на скорость движения и отражения от поверхности звука. А в данном проекте мы берём идеальную систему, которая в реальном мире работать не может.
Как подключить ультразвуковой датчик к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- УЗ дальномер HC-SR04;
- 1 светодиод и резистор 220 Ом;
- провода «папа-папа» и «папа-мама».
Схема подключения указана на рисунке выше. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic. После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:
Пояснения к коду:
- для подключения выходов Trig и Echo на датчике сонара Ардуино можно использовать любые цифровые входы на микроконтроллере;
- чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: cm = duration / 5,8; .
Примеры использования датчика расстояния
Давайте рассмотрим пример простого проекта с платой Arduino Uno и датчиком расстояния HC SR04. В скетче мы будем получать значение расстояния до предметов и выводить их в монитор порта в среде Arduino IDE. Вы сможете легко изменить скетч и схему подключения, чтобы датчик сигнализировал о приближении или отдалении предмета.
Подключение датчика к ардуино
При написании скетча использовалась следующий вариант распиновки подключения датчика:
- VCC: +5V
- Trig – 12 пин
- Echo – 11 пин
- Земля (GND) – Земля (GND)
Пример скетча
Начнем работу с датчиком сразу с относительного сложного варианта – без использования внешних библиотек.
В данном скетче мы выполняем такую последовательность действий:
- Коротким импульсом (2-5 микросекунды) переводим датчик расстояния в режим эхолокации, при котором в окружающее пространство высылаются ультразвуковые волны с частотой 40 КГц.
- Ждем, пока датчик проанализирует отраженные сигналы и по задержке определит расстояние.
- Получаем значение расстояния. Для этого ждем, пока HC SR04 выдаст на входе ECHO импульс, пропорциональный расстоянию. Мы определяем длительность импульса с помощью функции pulseIn, которая вернет нам время, прошедшее до изменения уровня сигнала (в нашем случае, до появления обратного фронта импульса).
- Получив время, мы переводим его в расстояние в сантиметрах путем деления значения на константу (для датчика SR04 это 29.1 для сигнала «туда», столько же для сигнала «обратно», что в сумме даст 58.2).
Если датчик расстояния не выполняет считывание сигнала, то преобразование выходного сигнала никогда не примет значения короткого импульса – LOW. Так как у некоторых датчиков время задержки варьируется в зависимости от производителя, рекомендуется при использовании указанных скетчей выставлять его значение вручную (мы это делаем в начале цикла).
Если расстояние составляет более 3 метров, при котором HC SR04 начинает плохо работать, время задержки лучше выставлять более 20 мс, т.е. 25 или 30 мс.
Скетч с использованием библиотеки NewPing
Теперь давайте рассмотрим вариант скетча с использованием библиотеки NewPing. Код существенно упростится, т.к. все описанные ранее действия спрятаны внутри библиотеки. Все, что нам нужно сделать – создать объект класса NewPing, указав пины, с помощью которых мы подключаем датчик расстояния и использовать методы объекта. В нашем примере для получения расстояния в сантиметрах нужно использовать ping_cm().
Пример подключения ультразвукового дальномера HC SR04 с одним пином
Подключение HC-SR04 к Arduino может быть выполнено посредством использования одного пина. Такой вариант пригодится, если вы работаете с большим проектом и вам не хватает свободных пинов. Для подключения вам нужно просто установить между контактами TRIGи ECHO резистор номиналом 2.2K и подключить к ардуино контакт TRIG.
Ремонт лазерного дальномера
Если повреждения несут в основном физический характер, а электроника работает исправно, прибор можно восстановить самостоятельно, при наличии желания и смекалки. В первую очередь необходимо установить источник проблемы, исходя из имеющегося дефекта. В данной теме, мы рассмотрим 2 случая поломок на конкретных моделях, и приведем рекомендации по их устранению.
В качестве первого пациента выступает дальномер Bosch DLE 50, с поврежденной фокусировкой луча в следствии падения со 2-го этажа. Вместо сконцентрированной точки, лазер принял форму фонарика с размытым пятном света. Измерительная способность устройства сократилась до 70 см, и при попытке измерения больших расстояний дисплей отображает ошибку “Error”. Задача заключается в калибровке фокусирующей линзы по отношению к измерительному каналу. Все элементы расположены внутри корпуса, поэтому разбирать необходимо.
Вполне вероятно, что производители модели Bosch DLE 50, исключили надобность в самостоятельном ремонте ещё на стадии проектирования. Корпус прибора, имеет всего 3 внешних резьбовых соединения (2 под батарейками и 1 на откидной скобе), в то время, как остальные элементы спаяны или приклеены. Разумеется, в гарантийном сервисе, разборка и сборка подобного монолита происходит без проблем, однако в быту этот процесс может вызвать затруднение. Потребуется паяльник, для отсоединения контактов питания, и термофен, для снятия приклеенной клавиатуры. Все соединительные элементы, представлены на приведенных ниже фотографиях, в порядке разборки инструмента.
Ультразвуковой датчик HC-SR04
Ультразвуковой датчик HC-SR04 — Ultrasonic Ranging Module HC — SR04 — Ultrasonic Sensor Distance Measuring Module — Sonar
Ультразвуковой дальномер HC SR04 самый известный датчик для применения в Arduino, Raspberry
Pi, ESP8266 и ESP32 модулях. Позволяет измерять расстояние до объекта в диапазоне от 2 до 400 (180) см. Например, если вы хотите собрать робота, который объезжает преграды, то данный дальномер прекрасно подойдет для ваших задач. Датчик имеет небольшие габариты и простой интерфейс. Рис. 4 Внешний вид ультразвукового датчика (сонара, ультразвукового сенсора, ультразвукового модуля) HC-SR04
Работа датчика
На выводе TRIG модуля подается сигнал высокого уровня на время, по крайней мере, 10мкс. Это запускает измерение расстояния с использованием звуковой волны частотой 40 кГц.
Ультразвуковая волна передается через ультразвуковой передатчик, и после отскока от обнаруженного препятствия, возвращается обратно и улавливается ультразвуковым приемником.
На выходе Echo устанавливается высокое состояние с длительностью, пропорциональной расстоянию от препятствия до модуля (датчика). Расстояние определяется по формуле:
Блок питания 0…30 В / 3A
Набор для сборки регулируемого блока питания…
Подробнее
Time * 343[м/с] / 2
где 343 м/с — скорость звука в воздухе при температуре 20 градусов Цельсия, a Time — длительность сигнала на выходе Echo.
Скетч для компьютера
Если при запуске появится сообщение, что не найдено Android SDK:
можно проигнорировать это сообщение и просто закрыть окно, нажав на крестик. Только при когда отобразиться окно программы, нужно будет переключить среду Processing из режима работы «Android» в режим «Java». Для этого слева вверху нажмите на «Android»:
И в появившемся меню выберете пункт «Java»:
После чего среда автоматически перезапустится:
Создайте новый скетч (файл -> создать) и скопируйте в него скетч:
Одно из отличий Processing от Arduino IDE заключается в том, как выбирается последовательный порт. В Processing порт выбирается не в меню, а в коде по индексу массива. При запуске скетча, внизу окна выводится список портов:
Найдите в списке порт, к которому подключена Arduino и в строчке:
myPort = new Serial(this, Serial.list(), 115200);
при необходимости поменяйте индекс. Если к примеру текущий порт «COM4», замените в коде ноль на единицу:
myPort = new Serial(this, Serial.list(), 115200);
https://vk.com/video_ext.php
Перевод: RobotoTehnika.ru
Детали используемые для драйвера:
- Arduino nano.
- 2x A4988 Драйверы шаговых двигателей.
- 1x IRFZ44N N-КАНАЛЬНЫЙ МОП-транзистор.
- 1x LM7805 Регулятор напряжения с радиатором.
- 1x 47 Ом и 1x 10 кОм резистор.
- 1x 1000 мкФ 16 В конденсатор.
- 1x 2,5 мм JST XH-Style 2-контактный разъем.
- Штыри заголовка мужского и женского пола.
- 1x (20 мм х 80 мм пустой печатной платы).
В GRBL защищены цифровые и аналоговые пины Arduino.
Шаговый контакт для осей X и Y прикреплен к цифровым контактам 2 и 3 соответственно. Вывод «Dir» для осей X и Y прикреплен к цифровым выводам 5 и 6 соответственно. D11 для лазерного включения. Arduino получает питание через USB-кабель. Драйверы A4988 через внешний источник питания. Все основание имеет общие связи. VDD A4988 подключены к 5V Arduino. Лазер, который использовался, работает на 5 В и имеет встроенную цепь постоянного тока. Для источника постоянного напряжения 5 В от внешнего источника питания используется регулятор напряжения LM7805. Радиатор является обязательным. IRFZ44N N-КАНАЛЬНЫЙ МОП-транзистор работает как электронный переключатель, когда получает цифровой высокий сигнал с контакта D11 Arduino. ПРИМЕЧАНИЕ: используем 5 В от Arduino Nano
Interfacing of Multiple Ultrasonic Sensor With Arduino
- Let me first summarize the working of ultrasonic sensor again. With ultrasonic sensor, what we need to do is to generate a trigger signal on its trigger pin for around 10 microsecond.
- As soon as the ultrasonic sensor gets this trigger signal, it sends out an ultrasonic signal.
- This ultrasonic signal then hits something and bounced back.
- Now, in order to check this bouncing signal, we have to read the Echo pin and check for how long it remains HIGH, and on the basis of this duration we calculate our distance with the object.
- This is the process for single ultrasonic sensor and when we are using multiple ultrasonic sensors, what we need to do is simply repeat the whole procedure for all the sensors one by one.
- First of all, we will generate the trigger pulse for first sensor and the read its echo pin and get the distance, then we generate the trigger pulse for second sensor and read its echo pin and so on for the third.
- So, here I am gonna use three ultrasonic sensor and the circuit diagram is shown below:
- I have tried my best while designing this image to make it simple but as there are too much wires so it has become a little complex.
- I am pointing out the pin configuration here so it will be easy for you to interface your sensors with arduino. The pin configuration is as follows:
- Vcc of all sensors will go into +5V of Arduino.
- GND of all sensors will go into GND of Arduino.
- Trig Pin of first sensor into Pin # 3 of Arduino.
- Echho Pin of first sensor into Pin # 2 of Arduino.
- Trig Pin of second sensor into Pin # 4 of Arduino.
- Echo pin of second sensor into Pin # 5 of Arduino.
- Trig Pin of third sensor into Pin # 7 of Arduino.
- Echo pin of third sensor into Pin # 8 of Arduino.
- After connecting the pins as discussed above, now copy the below code and upload it in your arduino board.
- After uploading the code in your arduino, open the Serial Terminal of Arduino software and you will start receiving the distances for all the three sensors.
#define trigPin1 3 #define echoPin1 2 #define trigPin2 4 #define echoPin2 5 #define trigPin3 7 #define echoPin3 8 long duration, distance, RightSensor,BackSensor,FrontSensor,LeftSensor; void setup() { Serial.begin (9600); pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); pinMode(trigPin3, OUTPUT); pinMode(echoPin3, INPUT); } void loop() { SonarSensor(trigPin1, echoPin1); RightSensor = distance; SonarSensor(trigPin2, echoPin2); LeftSensor = distance; SonarSensor(trigPin3, echoPin3); FrontSensor = distance; Serial.print(LeftSensor); Serial.print(" - "); Serial.print(FrontSensor); Serial.print(" - "); Serial.println(RightSensor); } void SonarSensor(int trigPin,int echoPin) { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; }
- The code is quite similar to the one we used while interfacing single ultrasonic sensor with arduino, the only thing we changed here is the repetition.
- Before, we were using the same function SonarSensor() but calling it only once for our single sensor interfaced with arduino but now we are calling it three times for all the three sensors.
- Its kind of a generic code, you can interface more sensors with it if you want and what you need to do is only calling this function for the next interfaced sensor.
Arduino Projects for Beginners
JLCPCB – Prototype 10 PCBs for $2 (For Any Color)China’s Largest PCB Prototype Enterprise, 600,000+ Customers & 10,000+ Online Orders DailyHow to Get PCB Cash Coupon from JLCPCB: https://bit.ly/2GMCH9w
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:
Управление яркостью светодиода
Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле
Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.