Подключение RFID-метки к Arduino UNO

В быту каждый из нас неоднократно встречался с бесконтактными системами контроля доступа. Открываются они не ключами, как все привыкли, а различными карточками или брелоками. Принцип их работы можно увидеть на примере: офисного пропуска, или бесконтактных карточек для прохода в метро. Система для работы устройств такого типа называется —  RFID. Что же это такое? Если коротко, то RFID (радиочастотная идентификация) — это способ автоматической идентификации объектов, в котором посредством радиосигналов считываются или записываются данные, хранящиеся в так называемых транспондерах, или RFID-метках. Любая RFID-система состоит из считывающего устройства (считыватель, ридер) и транспондера (RFID-метка).

Внешний вид RFID- модуля (RC522):

7b7496dd6b604459901549d4b2903fe8

Принцып работы:

Принцип работы устройства довольно прост. В основе технологии лежит использование энергии электромагнитного поля, что позволяет считывать и записывать данные на специальное устройство – RFID метку. Следует учесть что в самой метке нет никакого источника питания, образу магнитное поле одновременно служит и источником питания и каналом связи. Полученная информация может дополняться или перезаписываться. В памяти метки содержится информация об уникальном идентификационном номере и данные о самом объекте. В свою очередь при считке узнав номер, производится дальнейшая идентификация. Карточки могут нести в себе от нескольких десятков байт до нескольких килобайт данных (в том числе — уникальный серийный номер).

Читать далее »

Управление Servo — приводом на Arduino UNO

Сервоприводы — широко используются в робототехнике, заводских и хоббийных девайсах для управления движениями различных исполнительных узлов, в ЧПУ станках, 3D-принтерах, авиамоделировании и не только. За счет малой стоимости, большому моменту удержания и сравнительно простому управлению — пользуются большой популярностью. Именно поэтому, сегодня хочу поднять вопрос устройства сервопривода, его подключение к плате  Arduino UNO и написание программного кода в среде разработки Arduino IDE.

6cbcfb7bbdc72ba36170cde54b77371d

Сервопривод — это прежде всего привод, который может изменять положение выходного вала на заданный угол и удерживать это положение, но при этом будет необходима плата с контроллером (находится внутри корпуса сервопривода) для его управления. Также имеет сравнительно большой момент удержания за счет наличия понижающего редуктора, который выполнен из шестеренок (пластиковых или металлических). Отличие от обычного коллекторного двигателя заключается в возможности точно задать (в градусах) положение, в которое встанет вал.

В корпусе сервопривода находится:

—  коллекторный двигатель

— набор шестеренок (пластиковых или металлических)

— плата с электроникой (контроллером)

— узел обратной связи  (потенциометр)

Подключение сервопривода к плате Arduino UNO:

Безымянный

Читать далее »

Тактовые кнопки их устройство и подключение к Arduino

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

butt_minismd_side2x4_med

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

htmlconvd-StdrmQ_htmіl_m559b8b2d

 

Тактовая кнопка не имеет возможности оставаться в определенном положении (не имеет фиксации), в связи с этим она и получила такое название. Сфера применения тактовых кнопок довольно широка: клавиатуры, пульты, панели для управления различными электронными устройствами на микроконтроллерах и тд. Давайте, в качестве примера, представим, что у нас есть устройство: с LCD — дисплеем в качестве вывода информации , платой Arduino UNO в качестве устройства обработки информации и парочка исполнительных устройств. Поставлена следующая задача: включать/выключать нагрузку с последующим выводом состояния на LCD — дисплей. И тут нам явно не хватает органа управления, в качестве него и будут использованы тактовые кнопки.

Читать далее »

Делаем I2C — сканер адреса устройства на Arduino

Ограниченность количества портов ввода/вывода рано или поздно даст о себе знать. Решение данной проблемы может быть использование специализированных протоколов передачи данных: I2C,1-wire,SPI,USART. Сейчас речь пойдет об интерфейсе I2C. Данный интерфейс хорош тем, что по нему можно подключить до 127 устройств, при этом использовать только два порта ввода/вывода Arduino. Но как известно, у каждого устройства есть свой уникальный адрес. Так вот зная адрес, устройство можно легко идентифицировать и получать/принимать с него необходимые данные.

Вопрос в другом, где же этот адрес можно взять? Как правило, производитель указывает его в тех. документации. Но если нет возможности ее найти (такое бывает) или маркировка на корпусе частично затерта, можно воспользоваться платой Arduino UNO в качестве сканера адреса. Для осуществления данной задачи был написан небольшой скетч, который достаточно только залить в Arduino и подсоединить устройство с которого требуется считать адрес.

Пример программного кода:

На самом деле все достаточно просто, для большей ясности сделал много комментариев в коде. Заливайте, пробуйте, все работает!

Читать далее »

Цифровой вольтметр на Arduino и LCD

При конструировании устройств или разработке всевозможных исполнительных узлов нам приходится работать с напряжением. Но не всегда под рукой есть тестер или вольтметр для его мониторинга. Решить данную проблему можно с помощью платы Arduino UNO, LCD-дисплея, нескольких резисторов и конденсаторов в качестве обвязки. В предыдущей статье уже описывал подключение LCD к Arduino, поэтому проблем с этим возникнуть не должно.

В качестве примера предлагаю создать цифровой вольтметр, который будет измерять постоянное напряжение в диапазоне 0 — 55 вольт. Этого диапазона измерений, как по мне, должно хватить на большинство случаев, что могут возникнуть при сборке или тестировании. Применений у данного девайса — множество: отслеживать напряжение на аккумуляторе в машине, вольтметр для самодельного блока питания или зарядного устройства и тд.

mnvf7yaQJXk

Как видно из схемы, измеряемое напряжение подается не напрямую на порт ввода/вывода А0, а через резистивный делитель. Сделано это потому что с помощью аналогового входа Arduino можно измерить напряжение только в диапазоне от 0 до 5 В. Получается что воспользовавшись делителем напряжения, диапазон (0-5 Вольт) можно расширить до необходимого нам (0-55 Вольт). Делитель понижает измеряемое напряжение до необходимого для аналогового входа уровня. Затем идет оцифровка аналогового сигнала в цифровой код.

Читать далее »