Arduino для начинающих. Часть 1

Предисловие


Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.


Введение


Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.


Начало


Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:


main(){
    void setup(){
    }
    void loop(){
    }
}

Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:


void setup(){
}
void loop(){
}

Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.


Первая программа


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


int Led = 13; // объявляем переменную Led на 13 пин (выход)
void setup(){
    pinMode(Led, OUTPUT); // определяем переменную
}
void loop(){
    digitalWrite(Led, HIGH); // подаём напряжение на 13 пин
    delay(1000); // ожидаем 1 секунду
    digitalWrite(Led, LOW); // не подаём напряжение на 13 пин
    delay(1000); // ожидаем 1 секунду
}

Принцип работы этой программы достаточно простой: светодиод загорается на 1 секунду и тухнет на 1 секунду. Для первого варианта нам не понадобиться собирать макет. Так как в платформе Arduino к 13 пину подключён встроенный светодиод.


Прошивка Arduino


Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие. Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.


Прототипирование/макетирование


Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.


На этом у нас конец первой части. Спасибо за внимание.

Поделиться публикацией

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

    +2
    Было бы лучше, если бы были фотографии и по больше конкретики. Например использовать резистор на 4,7K или 1R или какой под руку попадется. Начинающие не знают этого.
    А так да. Arduino для начинающих это круто)
      0
      Спасибо за Ваше мнение и совет. Буду учитывать это.
      +9
      Очередное мигание светодиодом? А это которое уже по счету?
        +1

        Вынужден вас огорчить.
        Там в коде — вечный цикл...

        +4
        Yet Another Arduino for Beginners.
        Да ещё с ошибками, рвущими глаза напрочь.
          0
          Неплохо бы дополнить все картинками и скринами
            0
            Будет учтено
            0
            подскажите — в ардуиновском варианте c++ правда можно вложенные функции писать?
              0
              Нет, неправда. Там обычный С++, по умолчанию в свежих версиях 11 стандарт, но можно 14 прикрутить.
              +4
              да сколько можно то… а когда будет ардуино для заканчивающих?
                0
                Возможно у светодиода из заводской упаковки лапки и разной длины, НО — лучше бы дали совет как определить что-где у светодиода с одинаковыми ножками (а их и в магазине могут продать). А вообще — по ардуино ресурсов, в том числе и русскоязычных, и для начинающих — гора и кепка сверху…
                  0
                  Согласен по обоим пунктам. Перепрыгнуть на ардуино с ненулевым опытом программирования просто, а вот потом хочешь сделать что-нибудь применимое в реальной жизни и начинает вылезать схемотехника в больших объёмах. В итоге профильные форумы, Сворень, Хоровиц и Хилл, Харрис и Харрис… Мне на первых шагах не хватало определителя и типовых схем, помню, как медитировал на триггер Шмитта на одной микросхеме.

                  Хотел бы увидеть простенькую серию в стиле «а еще есть такой элемент, применяется там-то, подробно описан в такой-то книге», серию «Руководство по материалам электротехники для всех» приняли очень тепло, хотя тема на первый взгляд кажется старой и простой.
                    0
                    Сдохшая батарейка CR2025 или её аналоги, которая уже не работает в пульте или другом девайсе, но она ещё долго может радовать светодиоды. Из-за своей убитости она не может давать ток способный мгновенно сжечь светодиод.
                    0
                    И в догонку — если уж делаете курс для «начинающих» — лучше начать с железа — что, как и зачем можно подключить. А то народ подумает, что на Analog IN можно 220В из розетки померять :)
                      0

                      Доколе, доколе, я вас спрашиваю, в ардуинах будет использоваться бейсикообразный делэй(1000)? Неужто нельзя изкаропки планировщик задач юзать?

                        0
                        На 2 килобайтах RAM?
                        0
                        Спасибо. Было неплохо в шапку поместить оглавление со ссылками

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

                        Самое читаемое