Ремонт ардуино уно своими руками

Добавил пользователь Евгений Кузнецов
Обновлено: 18.09.2024

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

Конструирование робототехнической системы - это многоплановая задача, требующая знаний по широкому кругу научных и технических вопросов. Изготовление электромеханических исполнительных узлов, например, ходовой части робота, потребует знаний по общей механике, электротехнике. Создание алгоритма действий для робототехнической системы, требует знаний по информатике, в первую очередь навыков программирования. Для получения информации из внешней среды роботу необходимы различные датчики, использование которых потребует знания физических принципов работы этих датчиков. Создание всей системы в целом невозможно без знания электроники. Таким образом, процесс создания робототехнической системы потребует в процессе работы получения большого объема информации по различным естественно научным и физико-математическим дисциплинам, выходящего далеко за пределы объема школьной программы.

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

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

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

Кроме приведенных выше вариантов, существует и третий путь – использование вычислительной платформы Arduino. Ее основой является специальная плата с микроконтроллером, а также специализированная среда разработки Wiring, созданная на основе языка C++.

Программное обеспечение полностью бесплатное, его можно скачать с официального сайта производителя. Имеются версии для всех основных операционных систем Windows, Linux, MacOS. При разработке программной части комплекса в данной среде от нас скрываются многие рутинные операции, что упрощает разработку. Однако с другой стороны программа пишется на языке высокого уровня, по этому при компиляции в машинные коды, полученная программа не будет оптимальной по размеру и времени выполнения.

Иными словами программа, написанная на языке Ассемблер, будет занимать места меньше, а выполняться быстрее. Если конструируется учебный робот, или бытовое электронное устройство, в большинстве случаев это не столь важно, в самом деле, если сигнализация среагирует на разбитое окно не через 0,1 с, а через 0,2 с, это ничего принципиально не изменит. Однако в ответственных случаях объем памяти требуемый для программы, и особенно, скорость работы могут стать критически важными, по этому среди специалистов по разработке аппаратно-программных комплексов отношение к данной платформе как минимум неоднозначное. Впрочем, в системах жизнеобеспечения, промышленных, авиационных и космических системах использовать Arduino никому и не придет в голову, к тому же любители крайне редко сталкиваются с необходимостью создания подобных систем.

В общем, Arduino позволяет с одной стороны изучить основы работы с микроконтроллерами и конструировать законченные устройства, с другой объем первоначальных знаний, необходимых для начала работы не слишком велик, и вполне доступен школьнику.

Описание аппаратной части Arduino

Физически Arduino представляет собой небольшую печатную плату. Самой распространенной на данный момент версией является Arduino UNO с габаритами 75x55 мм.

 Arduino представляет собой небольшую печатную плату

Для связи с компьютером на плате имеется разъем USB-BF. На платах разных производителей в этой части возможны существенные различия, кроме USB-BF автору встречались платы с micro-USB, на старых и самодельных платах, скорее всего, будет 9-контактный разъем COM-порта. На плате Arduino UNO установлен специальный преобразователь, поэтому подключенная к компьютеру плата, определяется как новый COM-порт. Одно из преимуществ Arduino состоит в том, что благодаря наличию программы загрузчика и возможности подключения Arduino к персональному компьютеру для ее программирования не нужен отдельный программатор.

 Arduino уно - плата

ARDUINO UNO - разъёмы

ARDUINO UNO - порты

Кроме цифровых на плате есть 6 аналоговых портов. Аналоговые порты подключены в 10 битному аналогово-цифровому преобразователю, при необходимости их также можно использовать в качестве цифровых портов.

ARDUINO на atmega

На плате имеются четыре светодиода – индикатор питания (обозначен, как ON), светодиод, подключенный к 13 порту (L), два светодиода индикации обмена данными через последовательный порт (TX и RX). Также на плате имеется кнопка для перезагрузки микроконтроллера.

ARDUINO UNO ДЛЯ НАЧИНАЮЩИХ

Плата Arduino UNO

Плата Arduino UNO хорошо подходит для отладки программ на стадии разработки и настройки конструкций. Но для множества практических приложений возможности Arduino UNO избыточны, ее размер для установки в готовые изделия может оказаться слишком большим. Кроме этого к Arduino UNO внешние устройства подключаются без пайки – с помощью разъемов. Со временем разъем может выпасть от вибрации или его контакты окислятся, что нарушит нормальный контакт, с очевидными последствиями для изготовленного устройства.

Для использования в готовых изделиях выпускаются платы ArdinoNano и ArdinoMini, они имеют меньшие физические размеры, и несколько меньшую стоимость. Эти платы совместимы программно с Arduino UNO, но не позволяют непосредственно подключать к ним шилды. ArdinoNano – плата уменьшенного размера, имеет разъем для непосредственной связи с компьютером, выводы позволяют использовать более надежное паяное соединение. ArdinoMini – еще более уменьшена, по сравнению с ArdinoNano, на плате отсутствует разъем для прямого подсоединения к компьютеру, для программирования требуется специальный переходник.

Если возможностей Arduino UNO недостаточно, можно применить расширенную версию ArdinoMega. Эта плата имеет расширенные возможности 54 цифровых порта из них 15 поддерживают ШИМ,16 — аналоговых портов, 128 кб (в поздних версиях 256 кб) — флэш-памяти для программ, 8 кб оперативной памяти.

Перечень различных вариантов аппаратной реализации Ardino этим платами не ограничивается, но подобные устройства ориентированы на специалиста достаточно высокой квалификации и для первоначального изучения подходят мало. Более подробно различные варианты плат описаны тут.

Основной стандарт плат Arduino, тоже изменялся со временем. Более подробно с различными версиями плат можно познакомиться на сайте разработчика. На данный момент самым современным вариантом является Arduino Leonardo. Однако на данный момент Arduino UNO распространена наиболее широко, так что в дальнейшем остановим свое внимание именно на Arduino UNO.

Надо отметить, что конструктивно Arduino не очень сложна и вполне доступна для самостоятельного изготовления, во всяком случае, если речь идет о подготовленном радиолюбителе-конструкторе. На сайте разработчика имеется вся необходимая документация для самостоятельного изготовления Arduino.

Форум по обсуждению материала ARDUINO UNO ДЛЯ НАЧИНАЮЩИХ


Переделываем игрушку обычный трактор в радиоуправляемый - фотографии процесса и получившийся результат.


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.

Название Arduino является в настоящее время этаким "модным" словом для большинства радиолюбителей и всех, кто мало-мальски знаком с электроникой, поскольку данная платформа позволяет создавать электронные устройства быстро и дешево. Наличие обширного онлайн сообщества данной платформы делает ее идеальным выбором для тех, кто только начал свое знакомство с электроникой и программированием. Даже людям, не имеющим технического образования (а именно для таких она и была первоначально создана), освоить Arduino будет достаточно просто.

Почему так актуальна эта платформа? Как начать работу с ней? Как она может улучшить ваш стиль жизни? Все эти вопросы будут рассмотрены в данной статье. Для этого мы познакомимся с установкой среды Arduino IDE на ваш компьютер и загрузим в нее небольшую программу, реализующую мигание светодиода, который мы подключим к Arduino с использованием макетной платы.

Что такое Arduino

К сожалению некоторые начинающие радиолюбители считают Arduino микроконтроллером, но это не совсем так. Давайте попробуем разобраться что же это.

Arduino представляет собой платформу разработки с открытым исходным кодом, которая состоит из простого в использовании оборудования и среды программирования. Наиболее распространенным типом оборудования является Arduino UNO, а среда программирования называется Arduino IDE. Кроме Arduino UNO существует еще достаточно много аналогичных плат - Arduino Mega, nano, mini, но в данной статье в целях обучения мы будем использовать именно Arduino UNO. А Arduino IDE – это как раз та программная среда, с помощью которой мы будем программировать плату Arduino UNO.

Установка Arduino IDE

Прежде чем начать работу с Arduino необходимо установить среду программирования Arduino IDE на ваш компьютер/ноутбук. Все описанные далее шаги по установке данной программной среды будут ориентированы на операционную систему Windows, для остальных операционных систем последовательность действий будет примерно такой же. Если возникнут проблемы с другими системами, то помощь можно найти по следующим ссылкам – для пользователей Mac и пользователей Linux. Перед началом установки Arduino IDE убедитесь что вы обладаете правами администратора на вашем компьютере – это облегчит установку.

Шаг 2. Запустите скачанный exe файл.

Шаг 3. В открывшемся окне кликните на “I Agree” чтобы согласиться с условиями лицензии Arduino.

Шаг 4. В окне опций установки отметьте все галочки (см. рисунок).

Опции установки Arduino IDE

Шаг 5. На этом шаге необходимо выбрать место установки Arduino IDE. По умолчанию стоит путь установки в Program files на диске C – крайне рекомендуется оставить именно этот путь.

Выбор каталога для установки Arduino IDE

Шаг 6. На этом шаге вы можете наблюдать как Arduino IDE устанавливается на ваш компьютер (см. рисунок). После того как установка будет завершена нажмите кнопку “completed”.

Процесс установки Arduino IDE

Шаг 7. После завершения установки запустите на выполнение файл Arduino.exe. Откроется окно IDE с минимумом кода внутри него – см. рисунок.

Окно Arduino IDE с начальным кодом

Подключение вашей платы Arduino к компьютеру

После того как вы установили Arduino IDE на свой компьютер следующим логичным шагом будет подключение платы Arduino UNO к компьютеру. Чтобы сделать это просто используйте кабель для программирования (синего цвета) и соедините его с платой Arduino и USB портом вашего компьютера.

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

  1. Он запитывает плату Arduino UNO, то есть чтобы обеспечить выполнение программ на ней необходимо просто запитать ее с помощью USB кабеля.
  2. Через него программируется микроконтроллер ATmega328, находящийся на плате Arduino UNO. То есть код программы пересылается из компьютера в микроконтроллер именно по этому кабелю.
  3. Он может функционировать в качестве кабеля для последовательной связи, то есть с его помощью можно передавать данные с Arduino UNO в компьютер – это полезно для целей отладки программы.

После того как вы подадите питание на плату Arduino UNO на ней загорится маленький светодиод – это свидетельствует о том, что на плату подано питание. Также вы можете заметить как мигает другой светодиод – это результат работы программы по управлению миганием светодиода, которая по умолчанию загружена в вашу плату ее производителем.

Поскольку вы подключаете плату Arduino в первый раз к компьютеру необходимо некоторое время чтобы драйвера для нее успешно установились. Чтобы проверить правильно ли все установилось и определилось откройте "Диспетчер устройств (Device manager)" на вашем компьютере.

Поиск диспетчера устройств на вашем компьютере

В диспетчере устройств откройте опцию "Порты" “Ports (COM & LPT)”, кликните на ней и посмотрите правильно ли отображается там ваша плата.

Поиск Arduino в диспетчере устройств

При этом стоит отметить, что не стоит обращать внимание на то, какой номер порта отобразился у вашей платы Arduino – он может, к примеру, выглядеть как CCH450 или что то подобное. Этот номер порта просто определяется производителем платы и больше ни на что не влияет.

Если вы не можете в диспетчере устройств найти опцию “Ports (COM & LPT)”, то это означает, что ваша плата не корректно определилась компьютером. В большинстве случает это означает проблему с драйверами – по какой то причине они автоматически не установились для вашей платы. В этом случае вы должны будете вручную установить необходимые драйверы.

В некоторых случаях в указанной опции диспетчера устройств может отобразиться два COM порта для вашей платы и вы не будете знать какой из них правильный. В этой ситуации отключите и снова подключите плату Arduino к компьютеру – какой из COM портов при этом будет появляться и исчезать, значит тот и правильный порт.

Следует помнить о том, что номер COM порта будет изменяться при каждом новом подключении вашей платы к компьютеру – не пугайтесь, в этом нет ничего страшного.

Загрузка программы мигания светодиода

Теперь загрузим нашу первую программу в плату Arduino при помощи программной среды Arduino IDE, которую мы только недавно установили. Установленная Arduino IDE содержит несколько примеров программ, которые будут весьма полезны для начинающих. Давайте откроем один из этих примеров программ используя следующий путь File -> Examples -> Basics -> Blink (как показано на рисунке).

Загрузка программы управления миганием светодиода

При этом откроется программа Blink – ее цель состоит в том чтобы заставить мигать встроенный светодиод на плате Arduino. После открытия программы нам необходимо выбрать правильную плату Arduino – чтобы сделать это выберите пункт меню Tool -> Boards -> Arduino UNO/Genuino как показано на рисунке ниже.

Выбор платы Arduino UNO

Далее мы должны выбрать правильный порт для нашей платы. Ранее мы увидели, что для нашей платы был определен порт COM13. В вашем случае это может быть другой порт. Но для нашего рассматриваемого случая мы должны выбрать пункт меню Tools -> Port -> COM13.

Проверка того, видит ли Arduino IDE вашу плату Arduino

Если все сделано правильно, то вы должны заметить что номер порта (в нашем случае COM 13) появится внизу экрана. После этого вам необходимо нажать кнопку загрузки программы (подсвечена синим цветом) на плату Arduino как показано на рисунке ниже.

Загрузка программы в плату Arduino

Загрузка программы на плату Arduino прошла успешно

Если у вас на данном этапе возникают какие либо ошибки, не рассмотренные в данной статье, то вы их можете попробовать найти в статье про 10 самых распространенных ошибок при работе с Arduino.

Теперь попробуем написать программу, которая будет зажигать светодиод при нажатии кнопки.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Кабель для программирования.
  3. Светодиод (любого цвета).
  4. Кнопка.
  5. Резистор 1 кОм.
  6. Макетная плата.
  7. Соединительные провода.

Схема соединений

Представлена на следующем рисунке.

Кнопку подсоединим ко второму контакту Arduino, то есть одним концом кнопка будет подсоединена ко второму контакту Arduino, а вторым – к земле. То есть всегда когда мы будем нажимать кнопку на второй контакт Arduino будет подаваться земля.

Светодиод подсоединен к контакту 3 через резистор 1 кОм. То есть катод светодиода подсоединен к земле, а анод – к контакту 3 Arduino через резистор.

Программирование Arduino

Теперь, когда необходимая нам схема собрана, мы можем начать программирование платы Arduino UNO. Полный текст программы будет приведен в конце статьи, в этом разделе будет дано объяснение некоторых участков кода этой программы.

В каждой программе для Arduino должны обязательно присутствовать две функции – это функции void setup () и void loop (), иногда их называют "абсолютным минимумом", необходимым для написания программы. Все операции, которые мы запишем внутри void setup (), исполнятся только один раз, а операции, которые мы запишем внутри void loop () – будут исполняться снова и снова. Пример этих функций показан в коде ниже – именно в таком виде они создаются когда вы выбираете пункт меню File -> New.

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

Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.

Что такое Arduino и для чего оно нужно?

Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!

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

проекты на Arduino

проекты на Arduino

Стартовый набор Arduino

Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:

Базовый набор ардуино для начинающих:Купить
Большой набор для обучения и первых проектов:Купить
Набор дополнительных датчиков и модулей:Купить
Ардуино Уно самая базовая и удобная модель из линейки:Купить
Беспаечная макетная плата для удобного обучения и прототипирования:Купить
Набор проводов с удобными коннекторами:Купить
Комплект светодиодов:Купить
Комплект резисторов:Купить
Кнопки:Купить
Потенциометры:Купить

Среда разработки Arduino IDE

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

Язык программирования Ардуино

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

Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:

  • После каждой инструкции необходимо ставить знак точки с запятой (;)
  • Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
  • Так же необходимо указывать тип данных перед объявлением переменной.
  • Комментарии обозначаются: // Строчный и /* блочный */

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

Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().

Функция setup

Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():

В этом примере просто открывается последовательный порт для связи с компьютером и пины 9 и 13 назначаются входом и выходом. Ничего сложного. Но если вам что-либо не понятно, вы всегда можете задать вопрос в комментариях ниже.

Функция loop

Макетная плата Breadbord

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

Макетная плата на 800 точек с 2 шинами питания, платой подачи питания и проводами: Купить
Большая макетная плата на 1600 точек с 4 шинами питания: Купить
Макетная плата на 800 точек с 2 шинами питания: Купить
Макетная плата на 400 точек с 2 шинами питания: Купить
Макетная плата на 170 точек: Купить
Соединительные провода 120 штук: Купить

Первый проект на Arduino

Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:

Управление яркостью светодиода

Управление яркостью светодиода

Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.

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

В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.

ШИМ Arduino

Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.

В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.

Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:

Аналоговые входы Arduino

Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.

Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:

Подключение фоторезистора к Ардуино

Подключение фоторезистора к Ардуино

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

Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.

Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.

19 комментариев

дело в том, что легче написать новую прошивку, чем разбираться в прошивке, а для этого надо понимать, как работает ваше устройство! т.е. надо работать вместе программист, и пользователь!
иначе никак!
илли 2 способ- изучите программирование, и пишите сами что вам надо!
поверьте- это не так сложно!

Хороший сайт. Спасибо.

Благодарен автору за полезное дело.
Помогать учиться, это самое лучшее занятие для человека.


Arduino — это общее название для серии аппаратных платформ (микрокомпьютеров) на основе микроконтроллеров ATmega.

Эти платы могут использоваться как для создания полностью автономных устройств/приборов/игрушек, так и подключающихся к компьютеру и взаимодействующих с каким-либо программным обеспечением.

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

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

По технической части
Платы Arduino и их аналоги представляют собой набор из собственно платы, на которой размещён микроконтроллер ATmega (разных версий) съёмный либо впаяный, с которого разведены несколько цифровых и аналоговых (ШИМ) вводов-выводов, а также сопутствующую обвязку, как правило это:
— токоограничительные резисторы на вводы-выводы
— несколько светодиодов-индикаторов
— резонатор (кварцевый или керамический)
— кнопка сброса
— стабилизатор напряжения +5в и/или +3.3в
— микросхема отвечающая на соединение по USB (может не быть в зависимости от версии)
— разъём USB (зависит от версии)
— разъём внешнего питания (зависит от версии)
— на версиях с внешним разъёмом питания — входной защитный диод от переполюсовки

Кому и зачем нужно?
Кому? Глупый вопрос — мне конешно :)
Зачем? Для реализации творческого процесса.
Если серьёзно, то на основе этих платформ можно соорудить практически всё что угодно (в разумных, конечно, пределах) начиная от охранной системы с кучей функций, типа включения сирены и отправки СМС, и заканчивая разнообразными контрольно-измерительными приборами.
Если несерьёзно, то при наличии фантазии и пары сервоприводов можно соорудить какую-нибудь игрушку, поворотное устройство (следящее за солнцем, например, или за фонариком), автокормилку для рыбок, механическую руку, устройство для заварки чая, наливайку для пива и многое другое :)

Что имеем на деле (варианты, версии, плюшки, фотки)
Заранее прошу прощения за качество фотографий — в отсутствие, на данный момент, нормального фотоаппарата, они сделаны вебкамерой.


Я позиционирую лично для себя это устройство как основную плату для проектирования. Точнее для максимально быстрого прототипирования, особенно в сочетании с мегашилдом:

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


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


Для конечного устройства в котором не предполагается контактов с внешним миром можно использовать исключительно дешёвую плату Arduino Pro Mini. Минус этой платы в том что для её программирования нужен либо переходник USB-serial, либо ещё одна плата Arduino с USB выходом. Своей фотки нет, даю с ДХ:


Примеры использования
Контроллер штангенциркуля + вывод на дисплей от Нокии 5510(3310) из обзора про штангенциркуль


Термометр и гигрометр на основе датчика DHT11 (фигня, DHT22 лучше, но на BiC нету) и вражеского неправославного LCD дисплея HD44780 (нет поддержки кириллицы):

Моторизированная вебкамера — управляемая с компьютера (подробности см. ниже)

Q: Как долго собиралось?
A: Железо — примерно 15 минут, программная часть 3-4 вечера, из-за своих же ошибок.

Q: Во сколько обошлось?
A: С учётом всех скидок — примерно в 25$ (считая дисплей бесплатным, т.к. самоделка)

Q: Какие языки программирования использовались?
A: Родной ардуинский для прошивки и вижуал басик 6.0 для web-com прокси.

Q: Можно более подробно о материальной и программной части?
A: Матчасть:
— ардуино уно (мегашилд можно исключить)
— две сервы (рулевые машинки по ссылке из обзора)
— вебкамера (любая USB)
— компутер
Программное обеспечение:
— среда разработки, например родная Arduino
— из программного комплекта ардуино — две библиотеки — serial и servo
— если просто рулить самому — достаточно виндовс терминала
— если так как у меня: апач, пхп, рамдиск (виртуальный диск в памяти для ускорения и разгрузки винчестера), веб-ком прокси (самопальная), и любая программа для вебкамеры, которая либо поток шлёт, либо сохраняет картинки на диск, либо регистриуется аккаунт на смотрикоме и транслируется видеопоток, без нагрузки на свой комп (но будет задержка секунд 7-10)

Постскриптум 2013
Сайт уже больше не представляет из себя одинокую страничку, всё переведёно на CMS движок, комп тот же, камера та же, экран — уже другой, в составе шилда, от USB я отказался, перевёл всё на LAN, сервы отработали почти полтора года и до сих пор живы.

Читайте также: