Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Общие сведения об микроконтроллере Ардуино.

Лекция



Привет, Вы узнаете о том , что такое arduino, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое arduino , настоятельно рекомендую прочитать все из категории Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ.

Введение.

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

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

  • Недостаточно хорошо обрабатываются сигналы аппаратных устройств, подключаемых к контроллеру. Например, простейшие элементы – кнопки. Существует дребезг кнопок, они могут быть подключены длинными проводами, чувствительными к помехам. В надежной системе обязательно применение цифровой фильтрации сигналов с кнопок или датчиков сухого контакта. Как правило, в примерах уроков просто считывается состояние сигналов кнопок.
  • Надежные программы микроконтроллеров требуют циклической переустановки переменных, контроля целостности данных.
  • Хороший стиль программирования микроконтроллеров подразумевает структурное программирование. Это не формальные слова. Как известно можно писать красивые, структурные программы на ассемблере, а можно и на C++ такого нагородить.
  • Наверное, самое главное это многозадачность. Почти во всех уроках – последовательные действия программы. Посмотрели состояние кнопки, затем зажгли светодиод, вызвали какую-то непонятную функцию… Результат достигается просто, но и результат какой-то ущербный.

Если взять, к примеру, мою программу контроллера для холодильника на элементе Пельтье. Как ее сделать по такому принципу? Как с помощью простых последовательных операций выполнить все необходимые действия? Эта программа написана на ассемблере PIC контроллера. Она выполняет множество параллельных операций:

  • С периодом 10 мс опрашивает три кнопки, обеспечивает цифровую фильтрацию сигналов кнопок, устранения дребезга.
  • Каждые 2 мс регенерирует данные светодиодных семисегментных индикаторов и светодиодов.
  • Формирует сигналы управления и считывает данные с двух датчиков температуры DS18B20 с интерфейсом 1-wire. Необходимо каждые 100 мкс формировать новый бит чтения или записи для каждого датчика.
  • Каждые 100 мкс считывает аналоговые значения выходного тока, выходного напряжения, напряжения питания.
  • Усредняет значения выходных тока и напряжения за 10 мс, вычисляет мощность на элементе Пельтье.
  • Постоянно работает сложная система регуляторов:
    • стабилизация тока, напряжения, мощности на элементе Пельтье;
    • ПИД (пропорционально интегрально дифференциальный) регулятор температуры.
  • Обрабатываются защитные функции, проверка целостности данных.
  • Обеспечивает чтение и запись внутреннего EEPROM.
  • Ну и, конечно, общее управление системой, логика работы.

Все эти операции надо выполнять циклически с разными периодами циклов. И ничего нельзя пропускать или приостанавливать. Такую программу невозможно реализовать простой последовательностью действий.

Так вот, я в своих уроках программирования Ардуино собираюсь уделить внимание вышеуказанным проблемам, собираюсь научить практическому программированию. Программированию контроллеров Ардуино, которые работают с реальными объектами.

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

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

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

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

Общие сведения об Ардуино.

Ардуино (Arduino) это название аппаратно-программных средств для создания простых электронных систем автоматики и робототехники. Система имеет полностью открытую архитектуру и ориентирована на непрофессиональных пользователей.

Программная часть Ардуино состоит из интегрированной программной среды (IDE), позволяющей писать, компилировать программы, а также загружать их в аппаратуру.

Аппаратная часть представляет собой электронные платы с микроконтроллером, сопутствующими элементами (стабилизатор питания, кварцевый резонатор, блокировочные конденсаторы и т.п.), портом для связи с персональным компьютером, разъемами для сигналов ввода-вывода и т.п.

Общие сведения об микроконтроллере Ардуино.

Благодаря простоте разработке устройств система Ардуино получила крайне широкое распространение. Об этом говорит сайт https://intellect.icu . В одном Яндексе до 150 тысяч запросов ”Ардуино” в месяц. Несмотря на простоту разработки проектов, используя Ардуино, могут быть созданы достаточно сложные системы, особенно после появления высокопроизводительных вариантов контроллеров.

В платах Ардуино используются микроконтроллеры Atmel AVR с прошитым в них загрузчиком. С помощью загрузчика записывается программа в микроконтроллер из персонального компьютера без применения аппаратных программаторов.

Для программировании Ардуино используется язык C/C++, с некоторыми особенностями.

Существует громадное число клонов аппаратной части Ардуино. Большинство из низ являются полными аналогами фирменных Ардуино, часто не уступающими по качеству.

Общая информация о контроллере.

Arduino UNO R3 выполнен на микроконтроллере ATmega328. У него:

  • 14 цифровых портов входа-выхода ( 6 из них поддерживают режим ШИМ модуляции);
  • 6 аналоговых входов;
  • частота тактирования 16 МГц;
  • USB порт;
  • разъем питания;
  • разъем внутрисхемного программирования;
  • кнопка сброса.

У платы есть все необходимые компоненты для обеспечения работы микроконтроллера. Достаточно подключить USB кабель к компьютеру и подать питание. Микроконтроллер установлен на колодке, что позволяет легко заменить его в случае выхода из строя.

Технические характеристики.

Тип микроконтроллера ATmega328P
Напряжение питания микроконтроллера 5 В
Рекомендуемое напряжение питания платы 7 – 12 В
Предельно допустимое напряжение питания платы 6 – 20 В
Цифровые входы-выходы 14 (из них 6 поддерживают ШИМ)
Выходы ШИМ модуляции 6
Аналоговые входы 6
Допустимый ток цифровых выходов 20 мА
Допустимый ток выхода 3,3 В 50 мА
Объем флэш памяти (FLASH) 32 кБ (из которых 0,5 кБ используется загрузчиком)
Объем оперативной памяти (SRAM) 2 кБ
Объем энергонезависимой памяти (EEPROM) 1 кБ
Частота тактирования 16 мГц
Длина платы 68,6 мм
Ширина платы 53,4 мм
Вес 25 г

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

Контроллер программируется из интегрированной среды программного обеспечения Ардуино (IDE). Программирование происходит под управлением резидентного загрузчика по протоколу STK500. Аппаратный программатор при этом не требуется.

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

Отличие от других контроллеров Ардуино.

Arduino UNO R3, в отличие от предыдущих версий, не использует для подключения к компьютеру мост USB-UART FTDI. Эту функцию в нем выполняет микроконтроллер ATmega16U2.

Система питания.

Плата UNO может получать питание от USB порта или от внешнего источника. Источник питания выбирается автоматически. В качестве внешнего источника питания может использоваться сетевой адаптер или батарея. Адаптер подключается через разъем диаметром 2,1 мм (центральный контакт – положительный). Батарея подключается к контактам GND и Vin разъема POWER.

Напряжение внешнего источника питания может быть в диапазоне 6 – 20 В. Но рекомендуется не допускать снижение напряжения ниже 7 В из-за нестабильной работы устройства. Также нежелательно повышать напряжение питания более 12 В, т.к. может перегреется стабилизатор и выйти из строя. Т.е. рекомендуемый диапазон напряжения питания 7 – 12 В.

Для подключения питания могут быть использованы следующие выводы.

Vin Питание платы от внешнего источника питания. Не связано с питанием 5 В от USB или выходами других стабилизаторов. Через этот контакт можно получать питание для своего устройства, если плата питается от адаптера.
5 V Выход стабилизатора напряжения платы. На нем напряжение 5 В при любом способе питания. Питать плату через этот вывод не рекомендуется, т.к. не используется стабилизатор, что может привести к выходу микроконтроллера из строя.
3 V 3 Напряжение 3,3 В от стабилизатора напряжения на плате. Предельно допустимый ток потребления от этого вывода 50 мА.
GND Общий провод.
IOREF На выводе информация о рабочем напряжении платы. Плата расширения может считать значение сигнала и переключиться на режим питания 5 В или 3,3 В.

Память.

У микроконтроллера три типа памяти:

  • 32 кБ флэш (FLASH);
  • 2 кБ оперативной памяти (SRAM);
  • 1 кБ энергонезависимой памяти (EEPROM).

Входы и выходы.

Каждый из 14 цифровых выводов может быть использован в качестве выхода или входа. Уровень напряжения на выводах 5 В. Рекомендовано вытекающий и втекающий ток каждого вывода ограничивать на уровне 20 мА. Предельно допустимое значение этого параметра составляет 40 мА. Каждый вывод имеет внутренний подтягивающий резистор сопротивлением 20-50 кОм. Резистор может быть отключен программно.

Общие сведения об микроконтроллере Ардуино.

Некоторые выводы могут выполнять дополнительные функции.

Последовательный интерфейс: выводы 0 (Rx) и 1 (Tx). Используются для приема (Rx) и передачи (Tx) последовательных данных логических уровней TTL. Эти выводы подключены к выводам передачи данных микросхемы ATmega16U2, используемой в качестве моста USB-UART.

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

ШИМ: выводы 3, 5, 6, 9, 10, 11. Могут работать в режиме ШИМ модуляции с разрешением 8 разрядов.

Последовательный интерфейс SPI: выводы 10(SS), 11(MOSI), 12(MISO), 13(SCK).

Светодиод: вывод 13. Светодиод, подключенный к выводу 13. Светится при высоком уровне сигнала на выводе.

Интерфейс TWI: вывод A4 или SDA и A5 или SCL. Коммуникационный интерфейс TWI.

У платы Arduino UNO есть 6 аналоговых входов, обозначенных A0-A5. Разрешающая способность аналогового цифрового преобразования 10 разрядов. По умолчанию, входное напряжение измеряется относительно земли в диапазоне 0-5 В, но может быть изменено с помощью вывода AREF и программных установок.

Еще 2 вывода платы имеют функции:

AREF. Опорное напряжение АЦП микроконтроллера.

RESET. Низкий уровень на этом выводе вызывает сброс микроконтроллера.

Коммуникационные интерфейсы.

Модуль Arduino UNO имеет средства для связи с компьютером, с другой платой UNO или с другими микроконтроллерами. Для этого на плате существует интерфейс UART с логическими уровнями TTL (5 В), связанный с выводами 0 (RX) и 1(TX). Микросхема ATmega16U2 на плате связывает UART интерфейс с USB портом компьютера. При подключении к порту компьютера, появляется виртуальный COM порт, через который программы компьютера работают с Ардуино. Прошивка ATmega16U2 использует стандартные драйверы USB-COM и установка дополнительных драйверов не требуется. Для операционной системы Windows необходим соответствующий .inf файл. В интегрированную среду программного обеспечения Ардуино (IDE) включен монитор обмена по последовательному интерфейсу, который позволяет посылать и получать с платы простые текстовые данные. На плате есть светодиоды RX и TX, которые индицируют состояние соответствующих сигналов для связи через USB (но не для последовательного интерфейса на выводах 0 и 1).

Микроконтроллер ATmega328 также поддерживает коммуникационные интерфейсы I2C (TWI) и SPI.

Автоматический (программный) сброс.

Для того, чтобы не приходилось каждый раз перед загрузкой программы нажимать кнопку сброс, на плате UNO реализована аппаратная функция сброса, инициируемая с подключенного компьютера. Один из сигналов управления потоком данных (DTR) микросхемы ATmega16U2 подключен к выводу сброса микроконтроллера ATmega328 через конденсатор емкостью 0,1 мкФ. Когда сигнал DTR переходит в низкое состояние, формируется импульс сброса микроконтроллера. Это решение позволяет загружать программу одним нажатием кнопки из интегрированной среды программирования Arduino (IDE).

Но такая функция может приводить к отрицательным последствиям. При подключении платы UNO к компьютеру с операционной системой Mac Os X или Linux, микроконтроллер будет сбрасываться при каждом соединении программы с платой. В течение половины секунды на плате UNO будет запущен загрузчик. Несмотря на то, что программа загрузчика игнорирует посторонние данные, она может принять несколько байтов из пакета сразу после установки соединения. Если в программе на плате Ардуино предусмотрено получение каких-либо данных при первом запуске, необходимо отправлять данные с задержкой примерно на 1 секунду после соединения.

На модуле UNO существует дорожка, которую можно перерезать для отключения функции автоматического сброса. Дорожка маркирована надписью ”RESET-EN”. Автоматический сброс также можно запретить, подключив резистор сопротивлением 110 Ом между линией питания 5 В и выводом RESET.

Защита USB порта от перегрузок.

В плате Arduino UNO линия питания от интерфейса USB защищена восстанавливаемым предохранителем. При превышении тока свыше 500 мА, предохранитель разрывает цепь до устранения короткого замыкания.

Схема контроллера Arduino UNO.

Общие сведения об микроконтроллере Ардуино.

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

создано: 2020-04-06
обновлено: 2021-03-13
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ

Термины: Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ