Что можно собрать на ардуино в авто
Arduino в быту, на работе, в машине
В последнее время все больше и больше постов посвящается поделкам на основе плат Arduino. Я тоже хочу рассказать о нескольких проектах, созданных на основе этих плат. Не являюсь автором этих проектов и имею к ним косвенное отношение. Но настоящие авторы дали мне добро на использование их разработок в этой публикации. Дело в том, что они не имеют никакого отношения к IT и, соответственно, не имеют аккаунтов на Хабре и его отпрыске Geektimes.
Привожу дословное описание проектов от авторов.
В быту
Управление кухонным освещением от Engineer200
Проект призван начать решать проблемы поиска выключателей, забывания отключения и необходимости зажмуривания. Первая часть реализует плавное включение подсветки рабочей поверхности на кухне и подсветки внутри шкафа, например, под мойку обычно приходится нырять с фонариком. Подсветка рабочего поверхности кухни реализуется размещением светодиодной ленты на нижней части верхних шкафов. Короткие нажатия на кнопку просто включают и выключают свет. Длительное нажатие включает режим изменения уровня света, постепенное притухание, по достижению ноля, снова включается ярко. Когда кнопка отпущена — уровень света запоминается и дальнейшие короткие нажатия на кнопку, включают свет до запомненного уровня. Внутри шкафа свет плавно включается-выключается по срабатыванию геркона, встраиваемого в стенку шкафа. Дальнейшее развитие предполагает подключение датчиков присутствия, освещённости, увеличение количества каналов управления, осуществление декоративной подсветки стеклянных полок и дверей.
Программа тестировалась на Arduino UNO с контроллером AFMega8A-PU, а реализована на Arduino PRO Mini.
Первые шаги использования Ардуино в автомобиле
Совсем недавно недорогие микроконтроллеры, такие как Arduino, открыли новые двери для тех, кто хочет сделать интересные приспособления для своих автомобилей. В этой статье мы рассмотрим популярный проект, связанный с Аrduino в автомобиле, который использует эту популярную открытую аппаратную плату.
Возможность применения Arduino в автомобиле для его улучшения
Самый распространенный проект на Ардуино для автомобиля – установка в машине ЖК-дисплея с особыми функциями и показателями.
Когда Ардуино-дисплей в авто находится в движении, отображаются: процент нагрузки двигателя, напряжение батареи, температура в салоне и температура охлаждающей жидкости двигателя (есть несколько других статистических данных о транспортном средстве, которые могут отображаться, если нужны). Помимо дисплея и микроконтроллера, понадобятся различные датчики для создания этого Аrduino проекта для автомобиля.
Если Аrduino для автомобиля совместим с IDE Teensy 3.6, то читается анимированный растровый образ машины и резервные датчики. Каждый из четырех датчиков на своем месте, так же, как и анимационная картинка автомобиляоторая меняет цвет, исходя из того, насколько близко объект находится к машине (только зеленый означает Какие датчики можно подключить к Ардуино
В конечном итоге, пользователь получит отличное приспособление, контролирующие все возможные параметры автомобиля. Список деталей, которые понадобятся для создания этого ЖК-дисплея Ардуино для автомобиля, приведен ниже:
Подключение, запуск и настройка автоустройств на Ардуино
Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:
/Содержание/Java/hardware/teensy/avr/libraries
В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:
/Applications/Arduino.app/Contents/Java/hardware/teensy/avr
Из-за проблемы с внутренним температурным датчиком пользователь устанавливает температурный датчик модуля DS18B20.
В zip-файле, который находится по ссылке выше, вы увидите 4 эскиза Аrduino.
Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20, выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.
Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить». В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.
Вскоре после установки дисплея пользователь поймет, что дисплей работает даже тогда, даже когда автомобиль выключен.
Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.
Затем, используя мультиметр, необходимо заглянуть в коробку предохранителей на стороне водителя и протестировать существующие предохранители, чтобы узнать, какой предохранитель получил питание после того, как ключ был включен в зажигание.
В конце пользователь подключает добавочный провод к предохранителю, который нужен для того, чтобы дисплей теперь включался только тогда, когда автомобиль работает и находится на ходу. Проведите некоторое исследование того, как правильно добавить схему к вашему автомобилю. Многие подобные проекты описаны на нашем сайте с подробными разъяснениями.
Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.
Arduino в автомобиле. Озвучивание панели приборов
Говорящее устройство рассчитано на тех, кто не замечает лампочки на панели приборов, и периодически ловит себя на том, что едет с ручником или дальним светом. Или что стрелка спидометра незаметно уползла сильно вперёд… Ага, для себя делал.
Проверялось на (заточено на) Daewoo Nexia N150, но должно работать на любой машине с электронным спидометром (датчик скорости — 6 импульсов на метр, вроде как стандарт). Фотографии немного мутные (любительские):
1. Говорит голосом (5 уровней громкости) о различных событиях (события описаны далее)
а) мужским
б) женским
Голоса синтезированы на компьютере, записаны в виде набора mp3-файлов на микроСД карту. Это значит, что вы можете их поменять или записать.
2. Настройки выполняются с ПДУ от телевизора (или любого другого с достаточным количеством кнопок, настоятельно рекомендую ПДУ с кнопками 0-9). Настройки запоминаются в момент изменения.
3. В случае отказа/потери ПДУ, извещатель может быть оперативно переключен на режимы «нет звуков» или «нет звуков, кроме ручника». Для этого используется тройное включение габаритов (идея использовать мигание габаритами в качестве управляющего сигнала для настройки спёрта с какого-то устройства регулировки яркости ДХО).
— Ручник (если горит лампочка ручника во время движения)
— Включен дальний свет (мигание дальним игнорируется, предупреждает один раз после включения, далее не напоминает, пока дальний не переключат)
— Включите ходовые огни (если начато движение без включенных габаритов, у меня ДХО и ближний не работают, если не включены габариты).
— Напряжение бортовой сети (точность до десятой доли вольта)
— Превышение порога скорости 40, 50,… 120, 130 км/ч.
— Понижение порога скорости 40, 50,… 120, 130 км/ч.
— Изменение громкости, переключение голоса, отключение/включение каждого из озвучиваемых событий (включение вольтметра вызывает одновременно озвучивание напряжения).
Видео с демонтрацией:
1. К спидометру — сразу три провода: земля, +12 (отсюда берём питание на устройство и данные для вольтметра), сигнал от датчика скорости.
2. К лампочкам — ручника, дальнего света, подсветки приборов (габариты).
Согласование уровней сделано довольно просто — выводы ардуины подтянуты внутренним резистором в «1», а сигналы 12В уровня из приборной панели идут через диоды. Когда с панели идет +12, диод закрыт — на ардуине «лог.1». Когда сигнал с панели идет землёй — диод открыт, внутренний подтягивающий резистор игнорируется, на выводе ардуино «лог.0».
Вольтметр — просто резистивный делитель на аналоговый вход. Отношение примерно 1:13, из того расчета, что при максимальном напряжении бортовой сети 16В (аварийный режим) АЦП достигнет своего предела при опорном сигнале 1,2В.
2. Модуль mp3 — DFplayer mini
Данный модуль в интернет-схемах подключается по tx/rx сигналам, я добавил анализ сигнала busy, для поимки момента окончания воспроизведения звука, чтоб новое оповещение не перебивало текущее, а вставало в очередь.
3. Усилитель PAM8403 (необязательный элемент)
Из текста прошивки можно легко увидеть, куда заведены все анализируемые сигналы, куда прописать коды вашего ИК-пульта (взять их можно с помощью демо-скетча IRRecvDump). Также константами явно прописаны моменты срабатывания озвучки скоростей (обратите внимание на то, что скорости озвучиваются несколько раньше, чем будут реально достигнуты — чтоб успеть сбавить, не превысив).
Для отладки, доводки и демонстрации использовалась другая ардуина — arduino uno и модулем LCD-дисплея и кнопками.
Она умеет выдавать сигналы — габариты, дальний свет, ручник, и менять скорость с 0 до 150 примерно. Из недостатков — нет подавления дребезга контактов, но мне не особо мешает этот момент.
Arduino – находка для автолюбителя!
Кричухин Илья Владимирович
Arduino – это микроконтроллер. Он позиционируется как конструктор для любителей электроники. Предназначен для использования и новичками, и профессионалами. При его применении не нужно обладать специальным техническим образованием. А лицензия открыта для свободного воспроизведения копий. Поэтому данное устройство обрело широкую популярность в разных странах мира. Кстати, в своих проектах данную платформу используют даже дети.
Давайте разберемся, что это за электронный гаджет, и где его может применить автолюбитель. Но для начала хочется заметить, что моделей под названием «Arduino» много, но они отличаются незначительно: размерами, количеством входов и выходов, видами разъемов. В данной статье хочется рассказать о модификации «Arduino UNO», так как именно для этого микроконтроллера в глобальной сети существует много примеров, что облегчит реализацию собственных идей любому начинающему.
Устройство из себя представляет плату, на которой расположены стабилизаторы напряжения, кнопка сброса, микроконтроллер для подключения USB, основной микроконтроллер ATmega328p, 2 интерфейса для подключения питания и шнура USB от принтера, 6 аналоговых, 16 цифровых и 8 выходов питания. Размер 7 х 5 см.
Чтобы начать работать с «Arduino UNO» вам потребуется компьютер и бесплатная программа ««Arduino» с официального сайта, которая поддерживает все самые популярные операционные системы. Конечно, нужно USB шнуром от принтера подключить микроконтроллер к компьютеру, запустить программу и установить драйвер (находится в папке с бесплатной программой с официального сайта). Если используется китайская копия, то тогда нужно посмотреть название дополнительного микроконтроллера на плате. Если это CH340 (чаще всего), то к нему драйвер можно без проблем найти на просторах Интернета. Всё. Устройство готово к программированию.
Языка программирования, который используется при работе с «Arduino UNO», не нужно бояться. Это только звучит страшно. На самом деле, любой, кто в школе хоть раз решал задачи на языке Pascal, без труда разберется с Wiring. Вообще, это набор команд, которые при загрузке на «Arduino UNO» автоматически будет компилироваться на язык C/CC++. Но не станем вдаваться в детали. Авторы платформы для того и упростили процесс программирования, чтобы людям не пришлось досконально изучать все нюансы. В крайнем случае можно найти среди своих знакомых того, кто увлекается компьютерными технологиями для того, чтобы разобраться с кодом. Однажды созданный код можно многократно использовать для создания подобных устройств в дальнейшем времени.
Для того, чтобы было все понятно, можно разобрать простой пример при конструировании дневных ходовых огней. Дело в том, что ПДД содержат условия работы ДХО. Например, автоматическое включение, автоматическое отключение при включении фар головного света или ПТФ, возможность полного отключения без применения специального инструмента. Согласитесь, что реализовать такую схему на аналоговых компонентах типа транзисторов и реле достаточно утомительно и не так увлекательно, как хотелось бы. И здесь может выручит микроконтроллер.
Давайте рассмотрим код программы (с комментариями), который подошел бы для решения нашей задачи из примеров с официального сайта Arduino с небольшой доработкой.
const int DHO=9; // переменной DHO (ДХО) присваивается значение 9
const int FARY=2; // переменной «ФАРЫ» присваивается значение – 2
const int KLIUCH=3; // переменной «КЛЮЧ» присваивается – 3
const int KNOPKA=4; // переменной «КНОПКА» присваивается – 4
pinMode (DHO, OUTPUT); // цифровой порт 9 (DHO) назначается выходом
pinMode (FARY, INPUT); // 2 – назначается входом
pinMode (KLIUCH, INPUT); // 3 – назначается входом
pinMode (KNOPKA, INPUT); //4 – назначается входом
if (digitalRead(KLIUCH) == HIGH && digitalRead(FARY) == LOW && digitalRead(KNOPKA) == LOW) // если (if) ключ (KLIUCH) включен (HIGH) и (&&) фары выключены (LOW) и кнопка в салоне выключена
digitalWrite(DHO, HIGH); // в случае истины на контакт 9 (DHO) подать 5 вольт
digitalWrite(DHO, LOW); // на ДХО подается 0 вольт
Таким образом, из кода видно, что микроконтроллер 1000 раз в секунду проверяет состояние ключа зажигания, фар и кнопки в салоне. При определенной комбинации условий микроконтроллер ДХО включает, а при другой – выключает, что будет соответствовать ГОСТу. Вручную включать ДХО было бы утомительно, не правда ли! И ничего в этом сверх сложного нет!
Теперь давайте рассмотрим способ подключения прошитого микроконтроллера в автомобиле.
На микроконтроллере находим интерфейс для подключения питания. Максимально можно подать 12 вольт (оптимально – 9 вольт). Но в бортовой сети автомобиля напряжение, обычно, выше. Поэтому питание подключаем через резистор (так как статья создавалась в сжатые сроки, то способ подбора резистора был опущен из текста, но в глобальной сети способы найти можно) так, чтобы на контроллер приходило около 9 вольт. На Arduino цифровой контакт 9 подключаем через транзистор (КТ315, не тестировался, предлагается гипотетически) подсоединяется к управляющей обмотке реле, которое будет включать и выключать ДХО. Цифровой контакт (ЦК) 2 через резистор (по принципу делителя напряжения будет подавать не более 5 вольт) подключаем к плюсовому проводу питания фар. ЦК 3 – через резистор к плюсовому проводу замка зажигания. ЦК 4 – к кнопке выключения ДХО в салоне. Монтируем микроконтроллер «Arduino UNO» там, где удобно. К работе устройство готово.
Конечно, для примера был выбран самый простой способ реализации огромного потенциала устройства «Arduino UNO». Это было сделано с целью облегчения понимания принципов работы микроконтроллера. Но, кроме ДХО, через этот девайс можно управлять климатом в салоне, можно подключить амперметр, который будет выполнять функцию датчика положения кузова в пространстве, можно собрать на базе платформы «Arduino UNO» бортовой компьютер или усилитель для сабвуфера с дистанционным управлением. В общем, способы воплощения идей могут быть ограничены только фантазией.
Ясно, что современные автомобили уже имеют набор умных функций по умолчанию с завода, и «ардуинщик» самое большое поле для деятельности найдет на старых автомобилях. Но вопрос защиты от угона остается актуальным даже для ультрасовременных автомобилей. Да, есть спутниковые системы, есть промышленные сигнализации. В этом и заключается их слабое место. Злоумышленник имеет возможность изучить принцип работы промышленных устройств для успешного взлома системы безопасности. А если система защиты от угона будет собрана на «Arduino UNO», то похититель машины столкнется с уникальной схемой защиты с неизвестной локацией микроконтроллера, что сделает угон вашего автомобиля для него почти невозможным. Например, можно сделать где-нибудь секретную кнопку, которая будет при определенной комбинации длительности сигналов включать через «Arduino UNO» топливный насос или что-нибудь в этом роде вплоть до кодового замка, который будет включать зажигание.
Цена вопроса – копия микроконтроллера стоит в районе 200 рублей на момент написания статьи. Датчики промышленного изготовления для данной платформы стоят в этих же пределах. В общем, получается рентабельно.
Автор надеется, что у него получилось пробудить интерес к Arduino у читателя. Спасибо за внимание к моей статье!
Arduino в автомобиле: использование с жк-дисплеем
Блог сообщества Arduino для автомобиля — DRIVE2
Доброго времени суток уважаемые форумчане. Предупреждаю сразу, кто пишет на Си или пользуется готовыми библиотеками, Вам это будет неинтересно, переходите к следующему посту в ленте. Я не очень люблю…
Привет! Постепенно собираю свою союственную плату, которая сможет коммутировать необходимые мне сигналы с автомобиля всконтроллер для обработки и вывода данных в цифровом виде! Своего рода бортовой ко…
1 год +3 фотографии
Давно я интересовался микроконтроллерами, но все никак не мог придумать, как же подступиться к этой теме. Ситуацию усложняло то, что язык C для меня вызывал стойкую ассоциацию с национальными языками…
Завершающий на ближайшее время пост про генераторы на Ардуино. В комментариях ко второй версии некто MozgiNaStene91 написал что есть готовый проект до до 8 МГц. Я конечно открыл, посмотрел. В общем, п…
В продолжение постов про генераторы хотел бы затронуть транзистор-тестер (ESR tester) на базе ардуинного процессора ATMEL 328P. После его прошивки со сток на модифицированную, появляется возможность и…
Прошлый генератор прямоугольных импульсов на энкодере (“GENERATOR ver.1”) получился неплохим, но ограничение в 8 кГц кого то может не устроить. Конечно, можно его разогнать до 32 кГц, но для этого при…
Добавил кириллицу для стандартного табло Написал 3 демо скетча для передачи фраз на табло через блютуз онлайн. Ранее я использовал МАХ7219. Решил попробовать стандартное табло.Пока для установки н…
1 год +6 фотографий
Посмотрел видео и тоже собрал себе небольшую коробочку. Заморачиваться особо не надо, все комплектующие из блоков, МК — Ардуино Нано, переключатель реализовал на энкодере (на 20 положений). Немного по…
Продублирую тут.Некоторое время назад занялся CAN шиной. Наконец созрела статья, как сделать простейший кан сниффер для Астры (легко адаптировать к любой другой марке, конечно). Начнём сразу со схемы!…
Всем привет. Ха, вы таки думаете, что все так просто? Ан нет. Имеется несколько Nano (из одной партии). Robotdyn, раньше вообще проблем не было. Но не в этот раз. Некоторые прошиваются без проблем,…
Приветствую всех. в связи с переводом моего форда на эбу январь (от ваза), у меня встал вопрос по приборной панеле. встоке она работает по кан шине и с январём её не подружить простыми путями. ездить…
в Honda Prelude одометр из XX века, механический, на барабанчиках, за 20 с лишним лет… умер, было решено заменить его на электронный с бриджем и светскими дамами, но что бы подходил по стилю. Присмат…
Решил добавить в машину дополнительные приборы, но что бы не строить грядку из показометров, использовал второй блок штатных вакуумно-люминесцентных индикаторов уровня топлива и температуры охлаждающе…
Видел на сайте много разных бортовых компьютеров, и на атмеге и на ардуинке, некоторые слишком умные, у меня нет разъёма OBD, поэтому решил собрать свой БК, 2 термометра, вольтметр и тахометр, порылс…
Обновление от 07.09.2017 + Neowey M590E и реле 2 канала Ребят может кому пригодятся макросы для навесного монтажа популярных плат Arduino. Собираем так сказать красиво, просто и без бороды проводов…
Знакомый, не знакомого у которого тоже есть знакомый. короче, в парке аттракционов навернулся контроллер, который расположен, понятное дело на детском аттракционе, который является машинкой. (сообщест…
Доброго времени суток всем. Недавно заморочился переделкой доп. стоп сигнала. Есть некоторые проблеммы в программировании: Есть кнопка которой можно переключать режим работы при этом после нажатия вы…
Arduino в автомобиле. Озвучивание панели приборов
Говорящее устройство рассчитано на тех, кто не замечает лампочки на панели приборов, и периодически ловит себя на том, что едет с ручником или дальним светом. Или что стрелка спидометра незаметно уползла сильно вперёд… Ага, для себя делал.
Проверялось на (заточено на) Daewoo Nexia N150, но должно работать на любой машине с электронным спидометром (датчик скорости — 6 импульсов на метр, вроде как стандарт). Фотографии немного мутные (любительские):
Говорит голосом (5 уровней громкости) о различных событиях (события описаны далее) а) мужским б) женским Голоса синтезированы на компьютере, записаны в виде набора mp3-файлов на микроСД карту. Это значит, что вы можете их поменять или записать.
Настройки выполняются с ПДУ от телевизора (или любого другого с достаточным количеством кнопок, настоятельно рекомендую ПДУ с кнопками 0-9). Настройки запоминаются в момент изменения.
3. В случае отказа/потери ПДУ, извещатель может быть оперативно переключен на режимы «нет звуков» или «нет звуков, кроме ручника». Для этого используется тройное включение габаритов (идея использовать мигание габаритами в качестве управляющего сигнала для настройки спёрта с какого-то устройства регулировки яркости ДХО).
Озвучиваемые события (отключаемые)— Ручник (если горит лампочка ручника во время движения) — Включен дальний свет (мигание дальним игнорируется, предупреждает один раз после включения, далее не напоминает, пока дальний не переключат) — Включите ходовые огни (если начато движение без включенных габаритов, у меня ДХО и ближний не работают, если не включены габариты). — Напряжение бортовой сети (точность до десятой доли вольта) — Превышение порога скорости 40, 50,… 120, 130 км/ч. — Понижение порога скорости 40, 50,… 120, 130 км/ч. — Изменение громкости, переключение голоса, отключение/включение каждого из озвучиваемых событий (включение вольтметра вызывает одновременно озвучивание напряжения). Видео с демонтрацией:
Подключение к авто1. К спидометру — сразу три провода: земля, +12 (отсюда берём питание на устройство и данные для вольтметра), сигнал от датчика скорости.
2. К лампочкам — ручника, дальнего света, подсветки приборов (габариты).
Согласование уровней сделано довольно просто — выводы ардуины подтянуты внутренним резистором в «1», а сигналы 12В уровня из приборной панели идут через диоды. Когда с панели идет +12, диод закрыт — на ардуине «лог.1».
Когда сигнал с панели идет землёй — диод открыт, внутренний подтягивающий резистор игнорируется, на выводе ардуино «лог.0». Вольтметр — просто резистивный делитель на аналоговый вход.
Отношение примерно 1:13, из того расчета, что при максимальном напряжении бортовой сети 16В (аварийный режим) АЦП достигнет своего предела при опорном сигнале 1,2В.
Состав устройства1. Arduino nano v3
2.
Модуль mp3 — DFplayer mini Данный модуль в интернет-схемах подключается по tx/rx сигналам, я добавил анализ сигнала busy, для поимки момента окончания воспроизведения звука, чтоб новое оповещение не перебивало текущее, а вставало в очередь.
3. Усилитель PAM8403 (необязательный элемент)
4. Макетная плата, 5 резисторов (2 на АЦП вольтметра, и 3 на выводы DFplayer), 4 диода (согласование с +12В), а также пара конденсаторов и микросхема стабилизатора питания +5В типа LM7805 (у меня стоит DC/DC преобразователь AMSR 7805, потому что был в запасе и не греется), пъезозуммер (пищит при переполнении очереди мр3-файлов, больше для поиска ошибок при отладке), разъемы для подключения ИК-датчика (джек 2.5 в моем случае, но это непринципиально) и динамика (я взял RCA), ну и разъем для панели приборов (я взял IDC10, с защелками на папе — достаточно легкий и многоконтактный)
Прошивка:Из текста прошивки можно легко увидеть, куда заведены все анализируемые сигналы, куда прописать коды вашего
Arduino для автомобиля, а как это подключить? — Community «Arduino для автомобиля» on DRIVE2
Привет всем, разработка частично освещенная здесь: www.drive2.ru/c/469589872424780508/ двигается семимильными шагами. Дошел до железной части, встал вопрос, а каким образом вообще мне все это подключить так, чтобы ничего не сгорело и все работало.
Схема такая, ардуина подключенная к штатным авто — датчикам (датчик температуры окружающего воздуха, датчик уровня топлива, датчик скорости, блок управления двигателем), снимает показания и отправляет их на Android через последовательный интерфейс (USB — OTG).
Если изобразить все это, то получится так:
То как это должно быть в теории, когда все будет закончено
И тут начинается небольшое непонимание ситуации. Для того, чтобы Arduino смогла снимать показания датчиков, очевидно, что нужно чтобы ее земля — была общей с землей авто.
В случае когда телефон запитан напрямую от автомобильного аккумулятора, это условие соблюдается верно? (или я ошибаюсь уже тут?).
То есть следуя схеме, авто — аккум, питает планшет, от планшета в свою очередь питается Arduino земля у всех девайсов общая, проблем со снятием показаний датчиков нет. Поправьте меня если я не прав уже на этом шаге, поскольку дальше будет интересней.
Очевидно, что на этапе разработки я не буду подключать все так как на схеме, у меня должна быть возможность принести все это барахло в машину, подключить, испытать и унести домой. Первое решение в лоб, было таким:
Похоже, что так работать ничего не будет
Планшет питает Arduino от своего собственного аккумулятора, похоже, что так работать ничего не будет, поскольку Arduino не сможет снимать показания автомобильных датчиков, т. к. у ардуины и авто — нет общей земли, поэтому разницы потенциалов между выходом датчика и ардуиновской землей не будет. Это верно?
Начал искать как решить проблему, наткнулся на кабель “USB — OTG с внешней зарядкой”, нашел, купил:
USB — OTG с внешней зарядкой
Подключил, и как с телевизором тем, купил, включил, не работает. Ну то есть подключаю телефон к нему, подключаю внешнюю зарядку — телефон не заряжается, подключаю Arduino — коммуникация между планшетом и Arduino — работает.
Отключаю внешнее питание, Arduino — работает (то есть питается от планшета), отключаю планшет, Arduino — питается от внешней зарядки. Короче кабель работает, но как то странно.
Я думал, что внешняя зарядка будет заряжать мне и планшет и питать Arduino — тем самым я бы получил искомую общую землю у всех девайсов, на деле же выходит, что планшет от него не заряжается вообще, вместо этого:
— Arduino + зарядка — ардуино питается от зарядки— Arduino + планшет — ардуино питается от планшета
— Arduino + планшет + зарядка — планшет не заряжается, коммуникация работает, Arduino работает, а вот от чего? От аккумулятора планшета или зарядки?
Вообщем запутался я совсем, помогайте!
Дополню немного, соединение между автомобилем и Arduino — выглядит так:
то как подключается Arduino
Апдейт:
Совместными усилиями вырисовывается вот такая схема:
Планшет в безопасности так как зарядку при подключении OTG — он брать не имеет права?
Какие подводные камни тут?
Подключение дисплея LCD 1602 к arduino по i2c / IIC
LCD дисплей – частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов.
Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов.
В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.
Жк дисплей arduino lcd 1602
Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино.
Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат Arduino Uno или Nano.
Если контактов не хватает, то вам придется покупать плату Arduino Mega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.
Краткое описание пинов LCD 1602
Давайте посмотрим на выводы LCD1602 повнимательней:
Каждый из выводов имеет свое назначение:
Технические характеристики дисплея:
Схема подключения LCD к плате Ардуино без i2C
Стандартная схема присоединения монитора напрямую к микроконтроллеру Ардуино без I2C выглядит следующим образом.
Из-за большого количества подключаемых контактов может не хватить места для присоединения нужных элементов. Использование I2C уменьшает количество проводов до 4, а занятых пинов до 2.
Где купить i2c 1602 экраны для ардуино
LCD экран 1602 довольно популярен, поэтому вы без проблем сможете найти его как в отечественных интернет-магазинах, так и на зарубежных площадках. Приведем несколько ссылок на наиболее доступные варианты:
Описание протокола I2C
Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.
I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips.
В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами.
Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.
Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.
Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.
В работе I2C можно выделить несколько преимуществ:
Модуль i2c для LCD 1602 Arduino
Самый быстрый и удобный способ использования i2c дисплея в ардуино – это покупка готового экрана со встроенной поддержкой протокола. Но таких экранов не очень много истоят они не дешево.
А вот разнообразных стандартных экранов выпущено уже огромное количество.
Поэтому самым доступным и популярным сегодня вариантом является покупка и использование отдельного I2C модуля – переходника, который выглядит вот так:
С одной стороны модуля мы видим выводы i2c – земля, питание и 2 для передачи данных. С другой переходника видим разъемы внешнего питания. И, естественно, на плате есть множество ножек, с помощью которых модуль припаивается к стандартным выводам экрана.
Для подключения к плате ардуино используются i2c выходы. Если нужно, подключаем внешнее питание для подстветки. С помощью встроенного подстроечного резистора мы можем настроить настраиваемые значения контрастности J
На рынке можно встретить LCD 1602 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.
Подключение ЖК экрана к Ардуино по I2C
Для подключения необходимы сама плата Ардуино, дисплей, макетная плата, соединительные провода и потенциометр.
Если вы используете специальный отдельный i2c переходник, то нужно сначала припаять его к модулю экрана. Ошибиться там трудно, можете руководствоваться такой схемой.
Жидкокристаллический монитор с поддержкой i2c подключается к плате при помощи четырех проводов – два провода для данных, два провода для питания.
И это все! Никаких паутин проводов, в которых очень легко запутаться. При этом всю сложность реализации i2C протокола мы можем просто доверить библиотекам.
Библиотеки для работы с i2c LCD дисплеем
Для взаимодействие Arduino c LCD 1602 по шине I2C вам потребуются как минимум две библиотеки:
Скачать библиотеку для работы с экраном I2C LiquidCrystal_I2C.
После подключения к скетчу всех необходимых библиотек мы создаем объект и можем использовать все его функции. Для тестирования давайте загрузим следующий стандартный скетч из примера.
#include #include // Подключение библиотеки
//#include // Подключение альтернативной библиотеки LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 – 2 строки по 16 символов в каждой //LiquidCrystal_PCF8574 lcd(0x27); // Вариант для библиотеки PCF8574 void setup()
< lcd.init(); // Инициализация дисплея lcd.backlight(); // Подключение подсветки lcd.setCursor(0,0); // Установка курсора в начало первой строки lcd.print(“Hello”); // Набор текста на первой строке lcd.setCursor(0,1); // Установка курсора в начало второй строки lcd.print(“ArduinoMaster”); // Набор текста на второй строке
>
void loop()
<
>
Описание функций и методов библиотеки LiquidCrystal_I2C:
Альтернативная библиотека для работы с i2c дисплеем
В некоторых случаях при использовании указанной библиотеки с устройствами, оснащенными контроллерами PCF8574 могут возникать ошибки. В этом случае в качестве альтернативы можно предложить библиотеку LiquidCrystal_PCF8574.h. Она расширяет LiquidCrystal_I2C, поэтому проблем с ее использованием быть не должно.
Скачать библиотеку можно на нашем сайте. Библиотека также встроена в последние версии Arduino IDE.
Проблемы подключения i2c lcd дисплея
Если после загрузки скетча у вас не появилось никакой надписи на дисплее, попробуйте выполнить следующие действия.
Во-первых, можно увеличить или уменьшить контрастность монитора. Часто символы просто не видны из-за режима контрастности и подсветки.
Если это не помогло, то проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный i2c переходник, то проверьте еще раз качество пайки контактов.
Другой часто встречающейся причиной отсутствия текста на экране может стать неправильный i2c адрес. Попробуйте сперва поменять в скетче адрес устройства с 0x27 0x20 или на 0x3F.
У разных производителей могут быть зашиты разные адреса по умолчанию.
Если и это не помогло, можете запустить скетч i2c сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Пример скетча i2c сканера.
Если экран все еще останется нерабочим, попробуйте отпаять переходник и подключить LCD обычным образом.
Заключение
В этой статье мы рассмотрели основные вопросы использования LCD экрана в сложных проектах ардуино, когда нам нужно экономить свободные пины на плате. Простой и недорогой переходник i2c позволит подключить LCD экран 1602, занимая всего 2 аналоговых пина.
Во многих ситуациях это может быть очень важным. Плата за удобство — необходимость в использовании дополнительного модуля — конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.
Автономная “смарт” машина на Arduino
Основная идея проекта – создать недорогую автономную четырехколесную подвижную платформу.
В проекте используется логика на базе Arduino, недорогая радиоуправляемая машина, источник питания 9 вольт. В качестве датчиков обратной связи используется инфракрасный передатчик.
Так как оборудование недорогое, можно расценивать эту статью исключительно как общую инструкцию и первый шаг для дальнейших модификаций вашей автономной четырехколесной платформы.
Необходимое оборудование и материалы
*Обратите внимание: если в вашей машине установлена большая плата контроллера, то это, скорее всего, чип TX2 или RX2. Если это так, то вы можете сэкономить немного денег и использовать для двигателей встроенные контроллеры. Хороший пример (на английском языке!) есть здесь.
Разбираем машинку
Ваш первый шаг – разобрать машинку. Снимите корпус и извлеките все платы из машинки. Моторы не трогаем. В проекте нам понадобятся родные шасси, колеса и моторы.
Подготавливаем сенсоры
Подготавливаем электронику. Для начала припаяйте резистор на 100 Ом к одному из контактов на вашем ИК передатчике. Припаиваем провода к другой ноге резистора и ноге датчика. После этого припаиваем два провода к ногам вашего ИК приемника.
Устанавливаем Arduino и датчик
В корпусной части машинки надо сделать отверстия под крепеж вашего контроллера Arduino. Отверстия под крепеж зависят от габаритов подвижной платформы машинки. В данном конкретном случае плата была расположена “перпендикулярно” несущей системе. Подобное расположение удобно еще и тем, что расстояния от двигателей передней и задней подвески до пинов платы примерно одинаковое.
Над передней подвеской устанавливаем наши эмиттер и детектор. Их желательно установить повыше относительно земли. В дальнейшем можно предусмотреть сзади светодиоды, которые будут включаться во время заднего хода машинки.
Переходим к следующему шагу.
Питание
В проекте используется одна батарейка на 9 В (крона). В данном случае ее получилось установить под несущей системой платформы на колесах. Крепим пластиковыми стяжками. В принципе, для увеличения времени автономной работы нашего автомобиля, можно установить две кроны параллельно.
Подключение к Arduino
С подключением можно разобраться и на основании фото. Но на всякий случай, ниже приведена схема подключения в текстовой форме.
Не забывайте, что позитивная нога светодиода – более длинная. Если вы все равно не уверены, можете посмотреть эту инструкцию по подключению светодиодов к Arduino.
Позитивный контакт – 5v
Отрицательный контакт – Ground
Позитивный контакт – Analog pin 5
Негативный контакт – Ground
Позитивный контакт – Мотор шилд Channel A +
Негативный контакт – Мотор шилд Channel A –
Двигатель для поворота
Позитивный контакт – Мотор шилд Channel B +
Негативный контакт – Мотор шилд Channel B –
Позитивный контакт – Мотор шилд Vin
Негативный контакт – Мотор шилд Gnd
Программа Arduino
Учитывая специфику проекта, вам надо внести в приведенный ниже базовый скетч достаточно много изменений, которые зависят от размера машинки и колес, скорости вращения колес, веса авто, освещения окружающей среды.
//настройка канала A (Channel A)
pinMode(12, OUTPUT); //инициализация контакта Motor Channel A
pinMode(9, OUTPUT); //Инициализация контакта тормоза – Brake Channel A
ambientir = ambientir + analogRead(irsensor);
measure = measure + 1;
while(measure ambientir – 50)<
Приведенный выше костяк программы для Arduino можно (и даже нужно!) дорабатывать под вашу конкретную конструкцию, но общий концепт вы должны были уловить.
Результат, тестирование и дальнейшие варианты модификаций
Как видите на фото, оригинальный корпус машинки был окрашен в бежевый цвет и установлен на стойках на подвижную четырехколесную платформу.
После тестирования разработанной конструкции можно выделить следующие проблемы:
В принципе, внести компенсацию в зависимости от уровня освещения можно, но это отдельная история и модификация, которые не входили в задачи базового проекта.
Машинка не врезается в стены, но с 90% вероятностью соберет бампером все ножки стульев и столов в комнате. То есть, с обнаружением более мелких препятствий есть явные проблемы. Соответственно, надо либо увеличивать количество эмиттеров, либо использовать более дорогостоящие модели с большей чувствительностью.
Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!
Подключение (питание) Ардуино (Arduino) к бортовой сети автомобиля (видео)
Наши автомобили давно уже стали не просто средством передвижения, а целым комплексным решением сложных и порой высокопроизводительных систем имеющих косвенное отношение к передвижению.
Это и мультимедиа отвечающие за развлечения и комфорт в салоне, и устройства улучшающие визуализацию сигнальных световых огней, и устройства воспроизводящие различные звуковые информационные сигналы, и датчики, а также другие опции. Таким образом, мы прежде хотим охарактеризовать и упомянуть микроконтроллеры и микроэлектронные устройства работающих на наше благо.
При этом такие устройства могут добавляться в наш автомобиль по мере наших пожеланий и возможностей. Одним из таких устройств, своеобразных игрушек и помощников стала Ардуино.
Что такое Ардуино и зачем оно в автомобиле
Вначале давайте о том, что такое Ардиуино, ведь наверное еще не все знают к чему такая вещь в автомобиле.
Надо сказать, без какой-то доли иронии, что это практически готовое функциональное устройство, которое можно настроить путем заливки в нее программы и тем самым заложить определенные полезные функции.
Скажем мигающий стоп-сигнал по вашему алгоритму или ленивый поворотник или обеспечить индикацию и воспроизведение (звук, свет) срабатывания датчиков. Да нам фантазии не хватит перечислить все то, что можно сделать с этим девайсом.
Если кратко, то вы задаете какие-то условия для реализации определенных действий, а вот мозгами обеспечивающими такую работу будет Ардуино. Так что если у вас есть логические задачи, которые вы хотели бы решать в автомобиле, то доверьте это все вашему маленькому помощнику.
Однако, как и все ассистенты, так и наш Ардуино хочет кушать. А питается он электричеством от бортовой сети автомобиля. При этом логика Ардуино работает от 5 и 3,3 вольт. Конечно, штатно в Ардуино стоит стабилизатор напряжения, но его может не хватить для того, чтобы обеспечить должную мощность для питания. Именно поэтому следующий абзац как раз и будет посвящен снижению напряжения для подключения Ардуино.
Какое напряжение питание необходимо Ардуино в автомобиле
Итак, теперь о самом главном, о чем собственно и была написана наша статья. Да, конечно, можно было бы просто направить читателя на страничку «Как преобразовать 12 вольт в 5 вольт на машине», да и забыть про все… Однако раз уж мы взвалили этот груз на свои плечи, то давайте продолжим все же в тематическом ключе.
Если взглянуть в технические характеристики Ардуино то можно найти информацию о том, что Ардуино UNO питается от 9 вольт. На самом деле такое завышенное напряжение вполне оправдано, ведь если подать на Ардуино сразу 5 вольт, то его может не хватить. Все дело в том, что на плате у Ардуино есть свои стабилизаторы напряжения, а они тоже имеют какой-то КПД.
В итоге если подать номинальное рабочее напряжение, то после них оно будет уже ниже номинального из-за собственного сопротивления стабилизаторов. Опять же если подать 12-14 вольт, то этого будет уже многовато. Ведь стабилизаторы, как правило, выполнены в корпусе SOT-223, а в таком корпусе рассеиваемая мощность у стабилизаторов 1117 серии всего-то 0,8 Вт. Давайте прикинем.
Если подключить нагрузку эквивалентную 8-10 светодиодам, то это будет порядка 100 мА. В итоге на штатных стабилизаторах упадет от 7 до 9 вольт. Получается 0,1*9=0,9 Вт. То есть в этом случае микросхема – стабилизатор уже потребует радиатора, которого априори нет в Ардуино. Вот ту мы и приходим к выводу об оптимальном питании в 7-9 вольт.
А дальше Ардуино сама из этого напряжения получит то, что ей надо. Теперь о том, как получить такое напряжение.
Питание (подключение) Ардуино к машине (преобразователи)
Начнем мы с абсурдного, но быть может с того, что кому-то может прийти в голову! При питании Ардуино сразу отказываемся от сопротивлений подключенных последовательно и снижающих напряжение.
При этом не важно, что они мощные и способны рассеивать нужную мощность.
Все дело в том что Ардуино может в разные промежутки времени потреблять разную мощность, а значит токоограничивающее сопротивление должно изменяться, что невозможно при обычном статическом, так его назовем, сопротивлении!
Итак, мы должны иметь динамически изменяющуюся составляющую в питании микроконтроллера. Здесь самое время обратиться к микросхемам – стабилизаторам. Скажем LM7809, 7808 способны выдавать ток до 1,5 А и снижать напряжение. Давайте и здесь прикинем. 14-9=5. 5 вольт надо погасить стабилизатору. Пусть потребляемый ток 150 мА.
В итоге 0,15*5=0,75 Вт надо рассеять будет на корпусе ТО-220. Ну что сказать, все вполне жизненно и реально. Часть тепла рассеется на внешнем стабилизаторе, а часть на штатном.
Опять же повторимся, что не следует брать 7805, так как это будет слишком низкое питание для Ардуино, да к тому же еще и рассеиваемая мощность на таком стабилизаторе подлетит в два раза, то есть надо будет наверняка ставить радиатор.
(Подключение 7809 и 7805 аналогично)
Ну, и если шагать в ногу со временем, то быть может стоит обратить внимание на ШИМ питание. Широко импульсная модуляция это когда напряжение выдается на нагрузку не постоянно, а импульсами. При этом на нагрузке как бы остается среднее значение от суммарного значения импульсов.
В конце концов перерывы между этими импульсами позволяют сэкономить на энергозатратах при питании и не требуют элементов для рассеивания тепла – радиаторов. Единственное ШИМ несколько дороже чем просто микросхемы-стабилизаторы, да и собирать своими руками такую схему вряд ли кто станет.
Проще купить готовый блок, но повторимся это более прогрессивно.
Подводя итог…
Что же, в принципе здесь уже можно подвести итог.
Если у вас возникла необходимость подключения Ардуино к бортовой сети автомобиля, то самым лучшим вариантоы будет применение модуля ШИМ, при этом с рабочим напряжением 7-9 вольт.
Все остальное ардуино сделает сама. Модули на 5 вольт и микросхемы стабилизаторы на то же самое напряжения не рекомендуются, так как из-за потерь питание может быть ниже номинального.
Видео о подключении Ардуино к 12 вольтам в автомобиле
Несколько причин не использовать Arduino в своих конструкциях
» Статьи » Открытые МК-платформы · Arduino
Arduino
Vassilis K. Papanikolaou, Греция
На самом деле идея Arduino замечательна. Это золотое дно для новичков, т.к. на ее основе можно разрабатывать конструкции простого и среднего уровня за короткие сроки.
Это великолепная микроконтроллерная платформа для отладки и прототипирования с огромным количеством готовых проектов с открытым исходным кодом, учебных материалов, форумов и пр., что очень важно для всех при изучении встраиваемых систем.
Используя простую интегрированную среду разработки и код на С++-подобном языке, USB кабель и несколько пассивных компонентов, возможно в считанные секунды заставить мигать светодиод, или организовать обмен данными с ПК за несколько минут, не имея серьезного опыта в электронике.
Это, несомненно, отличное стартовое решение, но как далеко Вы можете зайти в использовании Arduino? Ну, довольно далеко, но до определенного предела, потому что (как и вообще в жизни) всегда приходится выбирать между простотой и производительностью.
Наверное, именно поэтому наблюдается появление высокопроизводительных клонов Arduino, таких как ChipKIT на микроконтроллерах компании Microchip семейства PIC32 или Netduino на микроконтроллерах ARM.
Эта альтернатива может спасти разработчика во многих случаях приростом производительности, но, в конечном счете, все же остаются скрытые функции и библиотеки, которые используют ресурсы микроконтроллера, и пользователи будут вынуждены изучать аппаратную часть микроконтроллера.
Автор лично решил полностью отказаться от Arduino после нескольких месяцев изучения. Фактически, как утверждает автор, сама платформа Arduino подтолкнула его на этот шаг. Ниже приведены причины, но сначала рассмотрим преимущества Arduino.
Плюсы Arduino (Что замечательно):
Минусы Arduino (Что ужасно):
В связи с этим автор утверждает, что настало время использовать чистый AVRGCC. Однако, у него тоже есть свои плюсы и минусы.
Трудности при использовании AVRGCC:
Польза от использования AVRGCC:
Как и для Arduino, для AVRGCC имеется большое количество вспомогательных средств, готовых проектов, библиотек и учебных материалов. Выбор остается за пользователями.
Тахометр на Arduino
Тахометр – это полезный инструмент для подсчета RPM (оборотов в минуту) колеса или всего, что крутится. Самый простой способ сделать тахометр – это использовать ИК передатчик и приемник. Когда связь между ними прерывается, вы знаете, что что-то вращается и можете применять код для вычисления RPM, ориентируясь на частоту прерывания связи.
В этой статье мы рассмотрим, как использовать ИК-передатчик и приемник для изготовления тахометра с применением Arduino. Результат отображается на ЖК-дисплее 16х2.
Целью данного проекта является создание системы с одним входом и одним выходом. На входе устройства присутствует сигнал, изменяющийся с высокого (+5В) на низкий (+0В) уровень при нарушении связи.
Согласно этому сигналу, Arduino будет увеличивать значение внутреннего счетчика.
Потом проводится дополнительная обработка и расчет, и по прерыванию триггера на ЖК-дисплей будет выводиться рассчитанное RPM.
Для связи мы будем использовать ИК-луч от ИК-светодиода, включенного через низкоомный резистор так, чтобы светиться ярко. В качестве приёмника мы будем использовать фототранзистор, который при отсутствии света ИК-светодиода “закрывается”.
Компьютерный вентилятор будет размешен между ИК-передатчиком и приёмником и включен. ИК-приёмник включенный через транзисторную схему, будет генерировать прерывания.
Для вывода результата будет использоваться Arduino LCD интерфейс, поэтому мы можем вывести окончательное значение RPM на ЖК-дисплей.
Элементы: Arduino UNO 16×2 LCD Макетная плата Подстроечный резистор 5 кОм Перемычки SIP разъёмы 2x 2N2222 NPN транзистор Инфракрасный светодиод Фототранзистор Резистор 10 Ом Резистор 100 кОм Резистор 15 кОм или 16 кОм
Подробный список элементов
Все элементы используемые в проекте указаны выше, но я более подробно опишу функции основных элементов.
Arduino UNO
Это плата Arduino, которую мы будем использовать для обработки импульсов от прерывания ИК-луча, которые сообщают о нахождении лопасти компьютерного вентилятора между приемником и датчиком. Arduino будет использовать эти импульсы наряду с таймером, чтобы вычислить RPM вентилятора.
ЖК-дисплей 16×2
После того, как Arduino вычислило RPM, эта значение будет отображаться на дисплее в понятном для пользователя виде.
Подстроечный резистор 5 кОм
Этот подстроечный резистор будет использоваться для регулировки контрастности ЖК-дисплея 16×2. Он дает аналоговое напряжение в диапазоне от 0 до +5В, позволяя настроить яркость ЖК-дисплея.
Инфракрасный светодиод и Фототранзистор
Фототранзистор открывается, когда мощный ИК-свет падает на него. Поэтому, когда ИК-светодиод горит, он держит фототранзистор открытым, но если ИК-светодиод закрывается например, лопастью вентилятора, то фототранзистор закрывается.
2N3904 и 2N3906
Эти транзисторы используются для преобразования уровня сигнала, с целью обеспечения выходных импульсов с фототранзистора для Arduino, в которых нет никаких напряжений кроме +0 и +5В.
Принципиальная схема
В схеме, интерфейс связи с ЖК-дисплеем упрощен и имеет только 2 линии управления и 4 линии передачи данных.
Особенности схемы
Интерфейс ЖК-дисплея 16×2
2 управляющих контакта и 4 для передачи данных подключены от Arduino к ЖК-дисплею. Это то, что указывает ЖК-дисплею, что и когда делать.
Схема обрыва ИК-луча
Сигнал обрыва ИК-луча идет на 2-ой цифровой контакт Arduino. Это прерывает Arduino, что позволяет ему засчитать импульс и позволяет тахометру получать данные.
Arduino LCD библиотека
Для этого проекта мы будем использовать Arduino LCD библиотеку. В основном мы будем просто обновлять значение RPM на второй строке на новое.
В качестве подготовки, посмотрите на код приведенный ниже, в котором при помощи этой библиотеки на ЖК-дисплей выводиться “Hello, World!” В тахометре мы будем использовать похожий код, особенно: “lcd.print(millis()/1000);”.
Разберитесь в функциях этой ЖК-библиотеки как можно подробнее, прежде чем двигаться дальше. Она не слишком сложна и хорошо документирована на сайте Arduino.
Подсчет RPM при помощи Arduino
Так как мы собираемся подсчитать RPM компьютерного вентилятора, мы должны понимать, что для подсчета мы используем прерывание ИК-луча. Это очень удобно, но мы должны учитывать, что у компьютерного вентилятора 7 лопастей. Это значит, 7 прерываний равно 1 обороту.
Если мы будем отслеживать прерывания, мы должны знать, что каждое седьмое прерывание означает, что только что произошел 1 полный оборот. Если мы отследим время, необходимое для полного оборота, то мы легко вычислим RPM.
Время 1-го оборота = P * (µS/оборот)
RPM = кол-во оборотов/мин = 60 000 000 * (µS/мин) * (1/P) = (60 000 000 / P) * (кол-во оборотов/мин)
Для расчета RPM мы будем использовать формулу приведенную выше. Формула точная, и точность зависит от того, насколько хорошо Arduino сможет отслеживать время между прерываниями и посчитывать количество полных оборотов.
Сборка схемы
На фотографии ниже вы можете увидеть все необходимые детали и перемычки как на схеме.
Для начала подключается +5В и линии данных/управления ЖК-дисплея. Затем ЖК-дисплей, потенциометр контрастности и светодиод питания.
Схема обрыва ИК-луча собрана. Старайтесь, чтобы между ИК-светодиодом и фототранзистором было расстояние. На этой фотографии видно расстояние между ИК-светодиодом и фототранзистором, где я размещу компьютерный вентилятор.
Хватит разговоров о аппаратной части! Давайте начнем делать прошивку/программу, чтобы увидеть работу устройства!
Программная часть
-Обновление времени прерываний
В основном цикле считаются обороты и обновления ЖК-дисплея. Поскольку основной цикл это гигантский while(1) цикл, то он будет работать всегда, RPM считаться, а ЖК-дисплей обновляться несколько раз в секунду. Функция в прерывании подсчитывает время между прерываниями ИК, поэтому считать RPM можно в основном цикле.
Помните, что компьютерный вентилятор имеет 7 лопастей, так что это тахометр предназначен для работы только с такими вентиляторами. Если ваш вентилятор или другое устройство дает только 4 импульса за оборот, измените в коде “(time*4)”.
Обзор тахометра на Arduino
Вентилятор генерирует импульсы прерывания, а на выходе мы видим RPM. Хотя точность не 100%, а примерно 95%, при стоимости элементов 10$ есть смысл построить этот тахометр на Arduino.
Что теперь делать?
Системы на основе обрыва луча полезны не только при измерении RPM, но и в качестве других датчиков. Например, вы хотите знать, открыта дверь или закрыта. Возможно, вы хотите знать, не проходило-ли что то под роботом. Есть много применений обрыва луча, а схема используемая тут настолько проста, что есть много путей для улучшения и сборки других удивительных устройств.
Заключение
В целом, я считаю этот проект успешным… Но дело во времени и опыте.. Так или иначе, система работает как задумывалось и достаточно надежно, а мы получили ожидаемый результат. Надеюсь, вам понравилось прочитать эту статью и узнать как сделать свой собственный тахометр на Arduino!