Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 7

Популярные контроллеры Arduino: какую плату выбрать новичку?

1 год назад

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

152874544811581240.jpg

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

Теперь к техническому вопросу. Газ не проведён, зато есть электричество — 3 фазы, поэтому отопление будет электрическим. Все нагревательные элементы равномерно распределим по фазам, чтобы избежать перекоса фаз. Зимы лютые бывают, в связи с этим мощность ТЭН должна быть с запасом, ну мало ли что.

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

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

Для измерения температуры датчики: Dallas DS18B20 — это цифровые датчики температуры, их можно множество кидать на общую шину OneWire состоящего из одного провода (на датчик нужно подвести землю, питание по желанию:)), и с неплохой точностью измерять температуру. У каждого датчика есть свой уникальный адрес, и обращаясь по адресу получаем данные нужного датчика. Это очень удобно, и экономит порты контроллера.

152874590714432479.jpg

Ввод и вывод информации осуществит LCD дисплей 16х2 символа, соединенный через i2с и 3 тактовые кнопки соединенные через делитель напряжения, для экономии пинов, и воткнутые в аналоговый вход. Почему именно три? Что бы сделать интуитивно понятное меню. Клиентоориентированность во плоти:).

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

Для сравнения симисторы BTA41-600B в массивном корпусе TOP3 в сравнении с TO220 (Такой стоит в китайском реле)

1528746334173840156.jpg

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

На этом пока все, в дальнейшем планирую написать про программу, изготовление платы и прочие модули, спасибо что дочитали)

Что такое Ардуино

Ардуино представляет собой готовую аппаратно-программную платформу, главными компонентами которой являются небольшая плата-контроллер ввода/вывода и среда разработки на основе Processing/Wiring.

Первый прототип контроллера был выпущен еще в 2005 году, когда Массимо Банци разработал его для студентов Института проектирования взаимодействий города Ивреа, Италия. Название устройства происходит от имени короля Ардуина, правившего Италией всего два года в начале XI века, в честь которого был назван и пивной бар «ди Ре Ардуино», принадлежащий Массимо Банци, и расположенный на том самом месте, где по преданию родился король Ардуин.

Цель Ардуино – создать доступную среду для разработчиков программного обеспечения, которая позволит им войти в мир программирования микроконтроллеров. Программирование контроллеров данный фирмы происходит в простой и интуитивно понятной среде программирования – Arduino IDE. Эта среда удобна как и для начинающих пользователей, так и для опытных. Используется язык программирования С++, который дополнен множеством библиотек, что упрощает работу с устройством.

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

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

Микроконтроллеры платформы Ардуино

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

Программирование здесь осуществляется через специальную программную оболочку (IDE), которую можно бесплатно скачать на сайте Arduino. Написанная на Java, дружелюбная оболочка работает под Windows, Mac OS X, и Linux, она содержит текстовый редактор, менеджер проектов, препроцессорный компилятор, а также инструменты для загрузки программы непосредственно в микроконтроллер.

Используемые в Ардуино микроконтроллеры уже имеют прошитый загрузчик (bootloader), поэтому программатор не нужен, достаточно соединить плату с компьютером через USB или через переходник UART-USB, и загрузить программу.

Имеется на плате и возможность прошить загрузчик в микроконтроллер самостоятельно с помощью программатора, в Arduino IDE встроена поддержка наиболее популярных дешевых программаторов, есть штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).

В большинстве устройств Ардуино используются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. Есть также платы на процессоре ARM Cortex M.

Порты Ардуино

Плата Arduino UNO R3

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

Как следует из названия, на цифровых пинах у нас цифровой сигнал. Они могут выдавать только два значения: логический ноль (0, LOW) и логическую единицу (1, HIGH).

Аналоговые – похожи на цифровые, с той разницей, что их основная цель – подключение аналоговых датчиков.

Для того чтобы использовать (передавать сигнал) через эти порты, нам следует в своей программе инициализировать их, используя функцию pinMode (<номер пина>,<режим: INPUT/OUTPUT>), где номер пина – это номер разъема, указанный на плате Arduino. Режим INPUT требуется для чтения данных, OUTPUT – для передачи. В случае, когда мы используем такие пины без предварительного указания pinMode, полученные значения могут быть ошибочными.

Цифровые и аналоговые пины – порты коммутации (подключения). ШИМ – порты управления. При необходимости изменять параметры работы радиоэлемента, следует подключать его к ШИМ. Если достаточно просто включать/выключать элемент схемы – можно использовать любой порт Arduino.

Другим и последним важным критерием портов платы Arduino, является их физическая составляющая. Следует помнить, что каждый пин: имеет напряжение на выходе 5В. Может дать максимальное количество тока 0.02А

Это небольшие критерии, о которых важно помнить, чтобы сэкономить множество времени.

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

Чтобы освоить базу программирования для Ардуино новичку, нужно всего несколько часов, ибо в сети уже есть огромное количество видео уроков, тематических публикаций, заметок и статей на тему разработки для Ардуино. Основа — C++, дополненный простыми функциями управления вводами/выводами платы, и более въедливые пользователи смогут работать хоть в Visual Studio, хоть в Eclipse, или даже через командную строку.

Внешние устройства и платы-расширения

Практически Ардуино предоставляет огромные возможности для создания любых устройств, можно подключать датчики, замки, моторы, дисплеи, роутеры, да хоть чайники. Можно расширять изделие дополнительными платами — шилдами, например для работы с GPS, для соединения по локальной сети или интернету, для bluetooth, Wi-Fi и т. д. Особенно популярна Ардуино в робототехнике.

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

Платы-расширения (шилды) уже продаются для множества разных функций, их можно соединять подобно бутерброду, благодаря удобному устройству разъемов. Это могут быть платы беспроводной коммуникации, платы управления шаговым двигателем, и любые другие контроллеры различных назначений.

Почему так популярно использование Ардуино

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

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

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

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

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

Огромное количество всевозможной периферии: кнопки, датчики, светодиоды, ЖК-индикаторы, и другие органы взаимодействия с окружающим миром, доступны для работы с Ардуино.

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

Контроллер Arduino Uno( один с Итальянского)  построен на платформе ATmega328, имеющей 14 цифровых входов/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.arduino-uno-vneshnij-vid-kontrollera-arduino-uno.jpg

Характеристики

Микроконтроллер   ATmega328   Рабочее напряжение   5 В   Входное напряжение (рекомендуемое)   7-12 В   Входное напряжение (предельное)   6-20 В   Цифровые Входы/Выходы   14 (6 из которых могут использоваться как выходы ШИМ)   Аналоговые входы   6   Постоянный ток через вход/выход   40 мА   Постоянный ток для вывода 3.3 В   50 мА   Флеш-память   32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика   ОЗУ   2 Кб (ATmega328)   EEPROM   1 Кб (ATmega328)   Тактовая частота   16 МГц   Схема и исходные данные   Файлы EAGLE: arduino-duemilanove-reference-design.zip

Питание

Arduino Uno может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

Выводы питания:

Память

Микроконтроллер ATmega328 располагает 32 кБ флэш памяти, из которых 0.5 кБ используется для хранения загрузчика, а также 2 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).

Входы и Выходы

Каждый из 14 цифровых выводов Uno может настроен как вход или выход, используя функции pinMode(), digitalWrite(), и digitalRead(), . Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (по умолчанию отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

Связь

На платформе Arduino Uno установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема ATmega8U2 направляет данный интерфейс через USB, программы на стороне компьютера «общаются» с платой через виртуальный COM порт. Прошивка ATmega8U2 использует стандартные драйвера USB COM, никаких стороних драйверов не требуется, но на Windows для подключения потребуется файл ArduinoUNO.inf. Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Uno.

ATmega328 поддерживает интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C.

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

Платформа программируется посредством ПО Arduino. Из меню Tools > Board выбирается «Arduino Uno» (согласно установленному микроконтроллеру). Подробная информация находится в справочнике и инструкциях.

Микроконтроллер ATmega328 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы ICSP (внутрисхемное программирование). Подробная информация находится в данной инструкции.

Автоматическая (программная) перезагрузка

Uno разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой Arduino на компьютере, а не нажатием кнопки на платформе. Одна из линий DTR микросхемы ATmega8U2, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеру ATmega328 через 100 нФ конденсатор. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Uno происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

На Uno имеется возможность отключить линию автоматической перезагрузки разрывом соответствующей линии. Контакты микросхем с обоих концов линии могут быть соединены с целью восстановления. Линия маркирована «RESET-EN». Отключить автоматическую перезагрузку также возможно подключив резистор 110 Ом между источником 5 В и данной линией.

Токовая защита разъема USB

В Arduino Uno встроен самовостанавливающийся предохранитель (автомат), защищающий порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатыват при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут востановлены.

Физические характеристики

Длина и ширина печатной платы Uno составляют 6.9 и 5.3 см соответственно. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Предыдущие работы

Используемые источники:

  • https://pikabu.ru/story/kontroller_otopleniya_doma_na_arduino_5960701
  • http://electricalschool.info/spravochnik/poleznoe/1674-programmiruemyjj-kontroller-arduino.html
  • https://playarduino.ru/project/kontroller-arduino-uno-kratkoe-opisanie-i-harakteristiki/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации