Электротехнический интернет-журнал Electrik.info

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


Схемы подключения | Принципиальные схемы | Электроснабжение
Розетки и выключатели | Автоматы защиты | Кабель и провод | Монтаж электропроводки Ремонт электротехники | Молодому электрику

Электрик Инфо » Электрическая энергия в быту и на производстве » Практическая электроника » Подключение и программирование Ардуино для начинающих
Количество просмотров: 121844
Комментарии к статье: 13


Подключение и программирование Ардуино для начинающих


Arduino - хорошее начало обучения программированию

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

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

Изучение микроконтроллеров кажется чем-то сложным и непонятным? До появления Арудино – это было действительно не легко и требовало определенный набор программаторов и прочего оборудования.

10 причин, почему вы должны изучать электронику

Что такое Arduino?

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

Сборка сложнейших схем и соединение плат может осуществляться без паяльника, а с помощью перемычек с разъёмными соединениями «папа» и «мама». Так могут подключаться как навесные элементы, так и платы расширения, которые на лексиконе ардуинщиков зовут просто «Шилды» (shield).

Что такое Arduino

Какую первую плату Arduino купить новичку?

Базовой и самой популярной платой считается Arduino Uno. Эта плата размером напоминает кредитную карту. Довольно крупная. Большинство шилдов которые есть в продаже идеально подходят к ней. На плате для подключения внешних устройств расположены гнезда.

Arduino Uno

В отечественных магазинах на 2017 год её цена порядка 4-5 долларов. На современных моделях её сердцем является Atmega328.

Arduino Uno

Изображение платы ардуино и расшифровка функций каждого вывода, Arduino UNO pinout

Микроконтроллер на данной плате это длинна микросхема в корпусе DIP28, что говорит о том, что у него 28 ножек.

Следующая по популярности плата, стоит почти в двое дешевле предыдущей – 2-3 доллара. Это плата Arduino Nano. Актуальные платы построены том же Atmega328, функционально они аналогичны с UNO, различия в размерах и решении согласования с USB, об этом позже подробнее. Еще одним отличием является то, что для подключения к плате устройств предусмотрены штекера, в виде иголок.

Arduino Nano

Количество пинов (ножек) этой платы совпадает, но вы можете наблюдать что микроконтроллер выполнен в более компактном корпусе TQFP32, в корпусе добавлены ADC6 и ADC7, другие две «лишних» ножки дублируют шину питания. Её размеры довольно компактные – примерно, как большой палец вашей руки.

Aruino Nano pinout 

Третья по популярности плата – это Arduino Pro Mini, на ней нет USB порта для подключения к компьютеру, как осуществляется связь я расскажу немного позже.

Сравнение размеров Arduino Nano и Pro Mini

Сравнение размеров Arduino Nano и Pro Mini

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

Arduino Pro Mini pinout, в верхней части схема подключения USB-UART, пин «GRN» - разведен на цепь сброса микроконтроллера, может называться по иному, для чего это нужно вы узнаете далее.

Итоги:

Если UNO удобна для макетирования, то Nano и Pro Mini удобны для финальных версий вашего проекта, потому что занимают мало места.

Arduino для начинающих

Как подключить Arduino к компьютеру?

Arduino Uno и Nano подключаются к компьютеру по USB. При этом нет аппаратной поддержки USB порта, здесь применено схемное решение преобразования уровней, обычно называемое USB-to-Serial или USB-UART (rs-232). При этом в микроконтроллер прошит специальный Arduino загрузчик, который позволяет прошиваться по этим шинам.

В Arduino Uno реализована эта вязь на микроконтроллере с поддержкой USB – ATmega16U2 (AT16U2). Получается такая ситуация, что дополнительный микроконтроллер на плате нужен для прошивки основного микроконтроллера.

В Arduino Nano это реализовано микросхемой FT232R, или её аналогом CH340. Это не микроконтроллер — это преобразователь уровней, этот факт облегчает сборку Arduino Nano с нуля своими руками.

Обычно драйвера устанавливаются автоматически при подключении платы Arduino. Однако, когда я купил китайскую копию Arduino Nano, устройство было опознано, но оно не работало, на преобразователе была наклеена круглая наклейка с данными о дате выпуска, не знаю нарочно ли это было сделано, но отклеив её я увидел маркировку CH340.

До этого я не сталкивался с таким и думал, что все USB-UART преобразователи собраны на FT232, пришлось скачать драйвера, их очень легко найти по запросу «Arduino ch340 драйвера». После простой установки – всё заработало!

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

Что делать если на моей плате нет USB?

Плата Arduino Pro Mini имеет меньшие габариты. Это достигли тем что убрали USB разъём для прошивки и тот самый USB-UART преобразователь. Поэтому его нужно докупить отдельно. Простейший преобразователь на CH340 (самый дешевый), CPL2102 и FT232R, продаётся стоит от 1 доллара.

При покупке обратите внимание на какое напряжение рассчитан этот переходник. Pro mini бывает в версиях 3.3 и 5 В, на преобразователях часто расположен джампер для переключения напряжения питания.

Arduino Pro Mini

При прошивке Pro Mini, непосредственно перед её началом необходимо нажимать на RESET, однако в преобразователях с DTR это делать не нужно, схема подключения на рисунке ниже.

Схема подключения для прошивки

Стыкуются они специальными клеммами «Мама-Мама» (female-female).

Подключение ардуино

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

Штекера

Как писать программы для Arduino?

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

Программа для Arduino

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

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

Интерфейс программы

В нижней части окна – область для вывода информации о проекте, о состоянии кода, прошивки и наличии ошибок.

Основы программирования в Arduino IDE

В начале кода нужно объявить переменные и подключить дополнительные библиотеки, если они имеются, делается это следующим образом:

#include biblioteka.h; // подключаем библиотеку с названием “Biblioteka.h”

#define peremennaya 1234; // Объявляем переменную со значением 1234

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

int led = 13; // создали переменную “led” и присвоили ей значение «13»

Программа может определять состояние пина, как 1 или 0. 1 –это логическая единица, если пин 13 равен 1, то напряжение на его физической ножке будет равняться напряжению питания микроконтроллера (для ардуино UNO и Nano – 5 В)

Запись цифрового сигнала осуществляется командой digitalWrite (пин, значение), например:

digitalWrite(led, high); //запись единицы в пин 13(мы его объявили выше) лог. Единицы.

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

digitalWrite (13, high); // устанавливаем вывод 13 в едиицу

Часто востребованная функция задержки времени вызывается командой delay(), значение которой задаётся в миллисекундах, микросекунды достигаются с помощью

delayMicroseconds() Delay (1000); //микроконтроллер будет ждать 1000 мс (1 секунду)

Настройки портов на вход и выход задаются в функции void setup{}, командой:

void setup() {

 pinMode(NOMERPORTA, OUTPUT/INPUT); // аргументы – название переменной или номер порта, вход или выход на выбор

}

Void loop{}

Понимаем первую программу «Blink»

В качестве своеобразного «Hello, world» для микроконтроллеров является программа мигания светодиодом, давайте разберем её код:

В начале командой pinMode мы сказали микроконтроллеру назначить порт со светодиодом на выход. Вы уже заметили, что в коде нет объявления переменной “LED_BUILTIN”, дело в том, что в платах Uno, Nano и других с завода к 13 выводу подключен встроенный светодиод и он распаян на плате. Он может быть использован вами для индикации в ваших проектах или для простейшей проверки ваших программ-мигалок.

Далее мы установили вывод к которому подпаян светодиод в единицу (5 В), следующая строка заставляет МК подождать 1 секунду, а затем устанавливает пин LED_BUILTIN в значение нуля, ждет секунду и программа повторяется по кругу, таким образом, когда LED_BUILTIN равен 1 – светодиод(да и любая другая нагрузка подключенная к порту) включен, когда в 0 – выключен.

Всё работает и всё понятно? Тогда идём дальше!

Читаем значение с аналогового порта и используем прочитанные данные

Микроконтроллер AVR Atmega328 имеет встроенный 10 битный аналогово цифровой преобразователь. 10 битный АЦП позволяет считывать значение напряжение от 0 до 5 вольт, с шагом в 1/1024 от всего размаха амплитуды сигнала (5 В).

Чтобы было понятнее рассмотрим ситуацию, допустим значение напряжения на аналоговом входе 2.5 В, значит микроконтроллер прочитает значение с пина «512», если напряжение равно 0 – «0», а если 5 В – (1023). 1023 – потому что счёт идёт с 0, т.е. 0, 1, 2, 3 и т.д. до 1023 – всего 1024 значения.

Вот как это выглядит в коде, на примере стандартного скетча «analogInput»

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

void setup() {

 pinMode(ledPin, OUTPUT);

}

void loop() {

 sensorValue = analogRead(sensorPin);

 digitalWrite(ledPin, HIGH);

 delay(sensorValue);

 digitalWrite(ledPin, LOW);

 delay(sensorValue);

}

Схема подключения потенциометра к Arduino, по аналогии центральный вывод вы можете подключить к любому аналоговому входу

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

Объявляем переменные:

  • Ledpin – самостоятельно назначаем пин со встроенным светодиодом на выход и даём индивидуальное имя;

  • sensorPin – аналоговый вход, задаётся соответственно маркировке на плате: A0, A1, A2 и т.д.;

  • sensorValue – переменная для хранения целочисленного прочитанного значения и дальнейшей работы с ним.

Код работает так: sensorValue сохраняем прочитанное с sensorPin аналоговое значение (команда analogRead). – здесь работа с аналоговым сигналом заканчивается, дальше всё как в предыдущем примере.

Записываем единицу в ledPin, светодиод включается и ждем время равное значению sensorValue, т.е. от 0 до 1023 миллисекунд. Выключаем светодиод и снова ждем этот период времени, после чего код повторяется.

Таким образом положением потенциометра мы задаем частоту миганий светодиода.

Функция map для Арудино

Не все функции для исполнительных механизмов (мне ни одной не известно) в качестве аргумента поддерживают «1023», например, сервопривод ограничен углом поворота, т.е на пол оборотоа (180 градуов) (пол оборота) сервомоторчика максимальный аргумент функции равен «180»

Теперь о синтаксисе: map (значение которое мы переводим, минимальная величина входного, максимальная величина входного, минимальная выходного, максимальная выходного значения).

В коде это выглядит так:

(map(analogRead(pot), 0, 1023, 0, 180));

Мы считываем значение с потенциометра (analogRead(pot))от 0 до 1023, а на выходе получаем числа от 0 до 180

Значения карты величин:

  • 0=0;

  • 1023=180;

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

И схема подключения.

Схема подключения

Выводы Ардуино – очень удобное средство для обучения работы с микроконтроллерами. А если использовать чистый C AVR, или как его иногда называют «Pure C» - вы значительно уменьшите вес кода, и его больше поместиться в память микроконтроллера, в результате вы получите отличную отладочную плату заводского исполнения с возможностью прошивки по USB.

Ардуино для начинающих

Мнение автора:

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

Для тех, кто хочет проиграться с электроникой, как продвинутый конструктор – отлично подойдёт, а для опытных программистов как плата, не требующая сборки, тоже станет полезной!

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

Обучение работе с Ардуино: 7 учебных курсов по работе с Ардуино, онлайн обучение проектированию и конструированию электронной аппаратуры

Алексей Бартош

Популярные публикации:

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

Подписывайтесь на канал в Telegram про электронику для профессионалов и любителей: Практическая электроника на каждый день



Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Способы чтения и управления портами ввода-вывода Arduino
  • Arduino Uno против Arduino Leonardo - какая плата лучше?
  • Какую плату Arduino выбрать
  • Виды и устройство микроконтроллеров AVR
  • Как подключить Arduino к компьютеру, смартфону, интернету
  • 7 учебных курсов по работе с Ардуино, онлайн обучение проектированию и конс ...
  • Подключение аналоговых датчиков к Ардуино, считывание показаний датчиков
  • Дистанционное управление микроконтроллером: ИК-пульт, Arduino, ESP8266, 433 ...
  • Новая плата Arduino Nano RP2040 Connect
  • Arduino Edge Control - плата Ардуино для автоматизации сельского хозяйства
  • Категория: Электрическая энергия в быту и на производстве » Практическая электроника

    Микросхемы, Программирование Ардуино, Arduino для начинающих, Ардуино

      Комментарии:

    #1 написал: ElectroMAG |

    Какую литературу по изучению кода программирования посоветуете? 

      Комментарии:

    #2 написал: Андрей |

    ElectroMAGУлли Соммер. Программирование микроконтроллерных плат Arduino/Freeduino, Джереми Блум. Изучаем Arduino. Инструменты и методы технического волшебства, Джон Бокселл. Изучаем Arduino. 65 проектов своими руками. Книги про Ардуино на озоне: electrik.info/arduino_books.php

      Комментарии:

    #3 написал: Виктор |

    Очень интересный и захватывающий материал, спасибо!

      Комментарии:

    #4 написал: Ural |

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

      Комментарии:

    #5 написал: Dima |

    Что-то не нахожу для arduino шилдов для обмена по mil-std-1553b, хотя для комповых шин - завались, очень популярный интерфейс. Ткните, где можно поискать-прикупить.

    p.s. не отображается дата статьи - может ей 10 лет и не стоит уже комменты писать?

      Комментарии:

    #6 написал: Eremino |

    Как сделать на Ардуино повторитель сигнала входа на 4 или любое количество выходов.

    Аналогично сделать с 4 входных каналов на 16 выходных каналов. При этом нужно переключить вход на любоые 4 выхода одновременно по каждому каналу входа.

      Комментарии:

    #7 написал: Олег |

    Ребята, подскажите, где вы научились программировать? Я много инфы пересмотрел и никто не написал понятно. Тут вся информация не для начинающего, толком ничего не понятно много, недосказанностей. Много написано слов про которые ни слова например автор пишет в начале нужно обьявить библеотеки и вписывает #include biblioteka.h; // но про вот это слово он ничего не написал #include зачем оно как можно это все понять. У меня уже терпения не хватает, никто не может по нормальному пояснить, а пояснить так что бы произошло вот это нужно написать это. Ну конечно ноль но пытаюсь читаю смотрю ничего непонятно, много лишнего которое не обьясняют. И могу сказать я то я не дурак глупый могу почти любую электронику отремонтировать то есть я дружу с головой, но это не пойму потому что пишут те кто знает, а про нюансы забыли как сами вникали.

      Комментарии:

    #8 написал: Никита |

    Олег, Здравствуй, вся инфа в основном по таким вопросам есть в учебниках по программированию С++, узнай базу С++, а все остальное, что тут написано, разберешься позже) Желаю удачи !!!

      Комментарии:

    #9 написал: Кирилл Иванов |

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

      Комментарии:

    #10 написал: Александр Ганжин |

    Arduino - это название целой экосистемы решений с микроконтроллерами.Самая популярная (во всем мире) плата из этого семейства - Arduino UNO.

      Комментарии:

    #11 написал: Роберт |

    Готовое электронное устройство состоит из функциональных блоков, которые часто можно использовать многократно. Например, если мы строим частотомер с микроконтроллером — то кроме блока усилителя — нам понадобятся почти те же комплектующие, что и для построения таймера. Я имею в виду микроконтроллер с «окружением» (резисторы, конденсаторы, кварц и др.), дисплеем, кнопками и разъемами. Очевидно, что счетчик частоты не будет нуждаться в реле для переключения внешнего устройства и таймера широкополосного входного усилителя, но ядро ​​останется прежним. Таким образом, ключом к самостоятельной разработке электронных устройств является понимание принципов работы отдельных строительных блоков и последующее объединение их функциональных возможностей. Такие платформы, как Arduino, не требуют от пользователя знания принципа работы отдельных электронных компонентов. Можно просто подключить плату Arduino к модулю расширения и запустить работающее устройство. С другой стороны, если у нас нет хотя бы базовых знаний о компонентах, то в случае проблем с работой нашего устройства мы обречены блуждать в темноте. Между тем, при поиске компонентов Arduino, чаще всего мы ожидаем быстрого эффекта. Такие ожидания трудно совместить с необходимостью приобретения нужных знаний, ведь достаточно ввести несколько команд, чтобы увидеть первые эффекты на экране, но понять, почему так произошло, иногда приходится долго.

      Комментарии:

    #12 написал: Михаил |

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

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

    1. Приобретите Ардуино. Существует множество различных моделей Ардуино на рынке, но для начала можно начать с Arduino Uno, который является самым распространенным и доступным. Также нужно приобрести USB-кабель для подключения Ардуино к компьютеру.

    2. Загрузите программное обеспечение Arduino IDE на свой компьютер. Оно доступно на официальном сайте Arduino и бесплатно. Это позволит вам программировать Ардуино.

    3. Подключите Ардуино к компьютеру с помощью USB-кабеля.

    4. Откройте Arduino IDE и выберите нужную платформу и порт, на который подключен Ардуино.

    5. Напишите программу на языке Arduino (он основан на языке C/C++), которая будет выполнять нужную функцию. Программирование в Ардуино происходит с помощью скетчей (sketches), которые можно создавать в Arduino IDE.

    6. Загрузите скетч на Ардуино, используя соответствующую команду в Arduino IDE.

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

    8. Тестируйте вашу программу и устройство, которое вы создали.

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

      Комментарии:

    #13 написал: Котофей |

    Arduino является популярным инструментом для обучения программированию микроконтроллеров. Она позволяет изучить основы работы с микроконтроллерами, такие как обработка входов и выходов, работа с датчиками и исполнительными устройствами, а также основы программирования на языке Arduino IDE. После изучения Arduino можно перейти к программированию настоящих микроконтроллеров, таких как PIC, AVR, ARM и другие.

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Электрик Инфо на Яндекс Дзен

     

    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки
    Андрей Повный - все статьи автора



    Copyright © 2009-2024 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.