Ардуино нано в автомобили

Содержание
  1. Проекты от Ардуино для автомобилей
  2. Особенности применения Ардуино в автомобиле для его улучшения
  3. Какие датчики можно подключить
  4. Инструкция по подключению, запуску и настройке автоустройств на Arduino
  5. Первые шаги использования Ардуино в автомобиле
  6. Возможность применения Arduino в автомобиле для его улучшения
  7. Подключение, запуск и настройка автоустройств на Ардуино
  8. Arduino в автомобиле: использование с жк-дисплеем
  9. Блог сообщества Arduino для автомобиля — DRIVE2
  10. Arduino в автомобиле. Озвучивание панели приборов
  11. Arduino для автомобиля, а как это подключить? — Community «Arduino для автомобиля» on DRIVE2
  12. Подключение дисплея LCD 1602 к arduino по i2c / IIC
  13. Жк дисплей arduino lcd 1602
  14. Краткое описание пинов LCD 1602
  15. Схема подключения LCD к плате Ардуино без i2C
  16. Где купить i2c 1602 экраны для ардуино
  17. Описание протокола I2C
  18. Модуль i2c для LCD 1602 Arduino
  19. Подключение ЖК экрана к Ардуино по I2C
  20. Библиотеки для работы с i2c LCD дисплеем
  21. Альтернативная библиотека для работы с i2c дисплеем
  22. Проблемы подключения i2c lcd дисплея
  23. Заключение
  24. Автономная “смарт” машина на Arduino
  25. Необходимое оборудование и материалы
  26. Разбираем машинку
  27. Подготавливаем сенсоры
  28. Устанавливаем Arduino и датчик
  29. Питание
  30. Подключение к Arduino
  31. Программа Arduino
  32. Результат, тестирование и дальнейшие варианты модификаций
  33. Подключение (питание) Ардуино (Arduino) к бортовой сети автомобиля (видео)
  34. Что такое Ардуино и зачем оно в автомобиле
  35. Какое напряжение питание необходимо Ардуино в автомобиле
  36. Питание (подключение) Ардуино к машине (преобразователи)
  37. Подводя итог…
  38. Видео о подключении Ардуино к 12 вольтам в автомобиле
  39. Несколько причин не использовать Arduino в своих конструкциях
  40. Arduino
  41. Тахометр на Arduino
  42. Подробный список элементов
  43. Принципиальная схема
  44. Arduino LCD библиотека
  45. Подсчет RPM при помощи Arduino
  46. Сборка схемы
  47. Обзор тахометра на Arduino

Проекты от Ардуино для автомобилей

Плата Arduino является одним из самых популярных аппаратных модулей для модификации машин. Она не занимает большое количество свободного пространства в салоне и обладает высокой мощностью. Для реализации Ардуино-проектов для автомобиля не требуются знания микроэлектроники и программирования.

Особенности применения Ардуино в автомобиле для его улучшения

Для улучшения периферийных деталей авто рекомендуется использовать микроконтроллер Arduino Pro Mini.

С помощью этого устройства можно создать следующие приборы:

Во время движения транспортного средства на нем отображаются следующие показатели:

Если плата Arduino совместима с платформой IDE Teensy 3.6, то можно установить в салоне датчики движения. Они рассчитывают расстояние между машинами, что позволит снизить риск возникновения дорожно-транспортного происшествия.

Дистанция рассчитывается с помощью микропроцессора. Если расстояние между объектами меньше 1,5 м, то светодиоды на датчиках становятся зелеными. При меньшей дистанции диоды меняют цветовой оттенок.

При использовании микроконтроллера Ардуино нужно знать основные свойства проприетарного протокола связи. С его помощью осуществляется передача данных между устройствами. Работа самодельных устройств осуществляется при помощи скетча, написанного в программной среде Arduino IDE. Вывод данных производится через портативную консоль. Для стабильной работы платы рекомендуется приобрести SD-карту, где будут храниться скетчи и дополнительное программное обеспечение.

Какие датчики можно подключить

Для создания основных проектов на базе Ардуино требуются следующие датчики:

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

Инструкция по подключению, запуску и настройке автоустройств на Arduino

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

При подключении платы к основным комплектующим могут возникнуть ошибки, связанные с некорректной работой приборов при недостаточном освещении или низкой температуре. Для устранения неполадок необходимо вставить скетч display_code_with_new_temperature_sensor и загрузить его на микроконтроллер. Для включения платы требуется подать на нее питание с помощью кабеля 12 В, подключаемого к порту OBD-II.

Источник

Первые шаги использования Ардуино в автомобиле

Совсем недавно недорогие микроконтроллеры, такие как 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 в автомобиле: использование с жк-дисплеем

Блог сообщества 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 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.

Читайте также:  Выставка автомобилей во франкфурте 2017 видео

Подключение ЖК экрана к Ардуино по 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!

Источник

Популярные рекомендации экспертов
Adblock
detector