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


Это контакты входов-выходов. Я обозначил эти выводы красным. У всех этих контактов есть внутреннее отверстие, куда вставляются провода. Для таких разъемов есть специальные соединительные провода. Так что, вы вставляете провод в отверстие и это отверстие сверху картинки или снизу соединено посредством дорожек на плате. Они соединены с ножками самой микросхемы главного процессора, расположенного внизу платы. На плате видно не все дорожки, они могут проходить внутри многослойной платы, или под ней, но они соединены. По-этому, если вам нужно подключиться к этому чипу микроконтроллера, подключайтесь к портам входов-выходов вверху или снизу, к тем, которые помечены красным. Сверху мы видим дискретные каналы. Эти каналы предназначены для исполнения роли дискретных входов и выходов. Они генерируют и принимают дискретные сигналы. В качестве дискретного сигнала у этой платы Arduino Uno выступают уровни ноль вольт и 5 В. Ноль вольт означает логический ноль, и 5 В означает логическую единицу. При этом есть другие платы из линейки Arduino, которые характеризуются  напряжением входов-выходов 3,3 В. Тоесть от нуля до 3,3 В, но сейчас мы будем работать с уровнями 0 В/5 В. Дискретные входы-выходы находятся сверху на картинке. А часть из тех выводов, что снизу, являются аналоговыми входами. Это те, что снизу справа. Они могут принимать аналоговые данные. На них можно подавать не только ноль или 5 В, а и все промежуточные значения. И эта информация может быть прочитана микроконтроллером. Мы поговорим о том, как это делается позднее. Так что аналоговые сигналы можно подавать только на эти входы. Ещё запомните, что такие платы не поддерживают аналоговые выходы. Просто эти процессоры так спроектированы. Так что, тут нет аналоговых  выходов, а только аналоговые входы. Конвертер аналоговых входов встроен внутри микроконтроллера.

Левее от аналоговых входов находятся выводы питания и перезагрузки. Обычно это выходные выводы. Там есть выводы общего провода и плюсов питания. Там есть выводы 5 В, 3,3 В, несколько общих проводов, и управляющие сигналы. Это все на этих выводах, к которым можно подключать какие-либо внешние схемы. Вам возможно прийдется брать 5 В с этой платы Arduino, подключая к этим выводам какую-либо електронную цепь, или соединять земли между платами Arduino. Вы можете взять землю среди этих выводов и соединить её с частью своей внешней цепи при помощи перемычки. Выводы общего провода вы будете использовать довольно часто потому что они необходимы для подключения датчиков и исполнительных механизмов. 

Теперь остановимся на двух важных составляющих платы Arduino. В составе данной платы есть два микроконтроллера. Главный - тот, который крупнее, ATmega328. В нём выполняется программа, которую вы загрузили в плату. Ваш написанный и скомпилированный код записывается в этот микроконтроллер ATmega328, который потом выполняет его. 


В дополнение к этому контроллеру мы видим тут ещё один микроконтроллер, с наименованием ATmega16U2, и он занимается только коммуникацией с USB-портом. USB - это протокол, а этот процессор всё, что умеет, - это просто понимает USB-протокол. И данные, приходящие с USB, он преобразует в то, что понимает главный процессор, и передает их в наш главный процессор. А, когда главный процессор хочет что-то передать в USB, дополнительный процессор  конвертирует это в USB-протокол и отправляет на порт. Это та вещь, под названием ATmega16U2, с которой вы вряд ли захотите сталкиваться на программном уровне. В его флеш памяти записана программа, которой вы не будете косаться. Она просто всегда будет там оставаться для общения с USB. Она позволяет загружать программу в ATmega328 прямо через USB без использования специальных программаторов. 

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

Но, помимо кода приложения, в системах обычно есть понятие  аппаратного программного обеспечения. Это ПО нижнего уровня, которое поддерживает аппаратные функции, но напрямую не косается функций верхнего уровня. Это ПО обеспечивает все рабочие вещи, такие как интерфейс USB. Ардуине нужно общаться через USB. И вам, как программисту, не обязательно разбираться, каким образом происходит общение с USB интерфейсом, но самой Ардуине это необходимо знать. По-этому в ней предусмотрен код, предназначенный для общения по USB. Программа загрузчика предназначена для чего-то подобного и мы обсудим это позднее. Режимы питания. Изменение режимов питания с низкого потребления на обычное - это происходит на заднем плане. Вы как программист не обязаны это видеть. Если нажать кнопку перезагрузки, что происходит с устройством, это та часть ПО, в которой программист разбираться не обязан. Эта штука уже запрограммирована там изначально. Обычно мы называем это прошивкой. Программист её не пишет, но это программа, которая висит в Arduino, и идет ещё с завода. Когда вы покупаете ардуино с подобным микроконтроллером, прошивка уже стоит на нём. Различие между прошивкой и прикладной программой это вопрос перспективы. Таким образом ясно, что прикладная программа это то, что пишет конечный программист. Допустим вы берёте Arduino и используете его для управления камерой. Вы используете его для управления двигателями и перемещения линз. Для этого вы пишете программу, и вы пишете её на прикладном уровне. Но как только вы продадите такую камеру кому-то, они ведь не будут влезать в ваш код? У них не будет доступа к этой программе. По-этому для них эта программа будет считаться прошивкой. Этот код для них будет считаться прошивкой потому, что они никогда не будут модифицировать его? Так что такое представление об аппаратном программном обеспечении зависит от вашей перспективы. От положения, которое вы занимаете в цепи преобразований продукта. Если вы купили что-то, и это что-то уже имеет ПО на борту, которое вы не модифицируете, то это ПО можно называть прошивкой, и оно имеет доступ к нижнему уровню управления аппаратной части. Зачастую мы будем сами писать скетчи на этот Arduino, но доступа к прошивке у нас не будет. Но мы как минимум должны помнить что она там должна быть. Аппаратное ПО предустановлено на всех Arduino, прошивка уже загружена в наш ATmega328. 


Автор профессор Ian Harris из Калифорнийского университета

Перевод Гресько Евгений

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Переходник питания с кроны на Arduino

Переходник питания с кроны на Arduino

Переходник питания с батарейки крона на разъем  5,5х2,1ммПодходит для питания плат контрол..

12.63грн.

Кабель питания Orange PI

Кабель питания Orange PI

USB кабель питания для мини-компьютера Orange PIДлина кабеля 92 см...

41.70грн.

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 мм20 зубьевШирина 10 мм..

46.38грн.

Концевик с колесом для 3D принтера или CNC ramps 1.4

Концевик с колесом для 3D принтера или CNC ramps 1.4

Концевой выключатель для установки на 3D-принтер или CNC-станок системы ramps 1.4В комплекте ка..

34.90грн.

Модуль звукового сигнализатора

Модуль звукового сигнализатора

Пассивный звуковой сигнализатор для подключения к дискретному выходу контроллераПитание 5 В..

37.87грн.

Новое

Медный чулок для удаления припоя 2мм 1,5м

Медный чулок для удаления припоя 2мм 1,5м

Медная оплётка - применяется для залуживания дорожек печатной платы, а так же для удаления излишков ..

Модуль твердотельного реле 4-канальный

Модуль твердотельного реле 4-канальный

Модуль предназначен для коммутации нагрузок с переменным напряжением питания 75 ... 264 ВМаксимальны..

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара с транзистором на выходеПрименяется для гальванической развязки дискретного сигнала, а так ..

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Микросхема стабилизатор напряжения L78S05CVПрименяется для стабилизации пульсирующего напряжени..

Программатор AVR-контроллеров USBASP

Программатор AVR-контроллеров USBASP

Программатор для загрузки и отладки программ в микроконтроллеры компании ATMEL.Интерфейс програ..

Сдвиговый регистр 74HC595N

Сдвиговый регистр 74HC595N

Эту микросхему используют для управления светодиодными гирляндами и символьными индикаторами.Она поз..

Светодиод ультраяркий 3мм

Светодиод ультраяркий 3мм

Сверхяркий светодиод диаметром 3 ммКорпус прозрачный у светодиодов разного цвета свечения. То есть р..

Вентилятор для Orange PI толщиной 10мм

Вентилятор для Orange PI толщиной 10мм

Вентилятор для охлаждения процессора мини-компьютера Orange PI или Raspberry PIРаботает безшумноПита..

Терминальный разъемный коннектор угловой 4п

Терминальный разъемный коннектор угловой 4п

Разъемный 4-проводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и со..

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Используется для передачи и редукции крутящего момента от двигателяКоличество зубьев 20 шт.Диаметр о..

Терминальный разъемный коннектор угловой 3п

Терминальный разъемный коннектор угловой 3п

Разъемный трёхпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Терминальный разъемный коннектор угловой 2п

Терминальный разъемный коннектор угловой 2п

Разъемный двухпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Микроконтроллер ATTINY13A

Микроконтроллер ATTINY13A

Миниатюрный экономичный AVR 8-битный микроконтроллер, который можно программировать как программатор..

Логический анализатор 8 каналов

Логический анализатор 8 каналов

Надписи на корпусе могут отличаться от указанных на картинке, но суть остается неизменной.Цифровой л..

Линейный подшипник 8мм

Линейный подшипник 8мм

Подшипник для линейного скольжения рабочего органа 3D-принтера или CNC по своим осям.Одевается на ци..

Подшипник для зубчатого ремня GT2 без зубьев

Подшипник для зубчатого ремня GT2 без зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 ммПрименяется в 3D-принтерах и CNCШирина 10..