Arduino, первое знакомство.

Приветствую всех ) Сегодня мы начнем новую рубрику  Arduino. Мне как раз в руки попала одна из плат этого проекта, для начинающих в робототехники и программирование микроконтроллеров.

Что такое Arduino ?

Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой плату с микроконтроллером (англ. boards) и платы расширения (так называемые шилды — калька с англ. shields). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).

В моем случае это плата Arduino Nano  которая мне очень понравилась :

Общие сведения:

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах. Она имеет схожую с Arduino Duemilanove функциональность, однако отличается сборкой. Отличие заключается в отсутствии силового разъема постоянного тока и работе через кабель Mini-B USB.

Входы и выходы :

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

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, о которых мы поговорим в следующих уроках.

  • I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI).

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

 

Первый урок. Мигание светодиода(Blink).

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

Необходимые компоненты :
  • Контролер Arduino.
  • Светодиод.
  • Резистор 1 кОм(можно меньше, больше).
  • Программная оболочка Arduino IDE.
  • USB шнур.
  • Макетная плата (не обязательно но очень удобно).
Схема подключения :

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

Мы подключаем резистор сопротивлением 220 Ом к выходу номер 13 (pin D13), к резистору в свою очередь подключаем анод (обычно длинная ножка) светодиода. Катод подсоединяем к земле (Grd). Затем подключаем контроллер через USB кабель к компьютеру и загружаем приведенный ниже код на котроллер Arduino.

На картинке плата Arduino UNO, но принцип я думаю понятен.

Код :

В коде мы первой строк задаем режим выхода для вход/выхода (pin) 13:

pinMode(13, OUTPUT); // Выход.

В основном цикле (loop) программы зажигаем светодиод:

digitalWrite(13, HIGH);

На выходе 13 появляется напряжение 5 В. Светодиод зажигается. Затем мы выключаем светодиод:

digitalWrite(13, LOW);

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

/*
 Зажигаем светодиод на одну секунду, затем выключаем его на 
 одну секунду в цикле.
 */
 
void setup() { 
 // Инициализируем цифровой вход/выход в режиме выхода.
 // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.
 pinMode(13, OUTPUT); 
}
 
void loop() {
 digitalWrite(13, HIGH); // зажигаем светодиод
 delay(1000); // ждем секунду
 digitalWrite(13, LOW); // выключаем светодиод
 delay(1000); // ждем секунду 
}

Как это все сделать ?

Давайте теперь все это запустим. Открываем программу Arduino IDE на компьютере. Создадим новый файл если нужно Файл->Новый (Ctrl-N) и напишем нашу программу.

Далее нам надо во вкладке Инструменты  выбрать нашу плату Arduinon Nano и выбрать контролер который установлен на ней ATmega 328P. В вашем случае все может быть по другому!

 

Теперь подключаем плату к компьютеру. Ждем пока  Windows определит ее и смотрим номер порта COM который ей был присвоен в диспетчере устройств.

Остался последний шаг. Скомпилировать и загрузить в контролер скетч. Нажимаем  кнопочку со стрелочкой(загрузить) и ждем результата. НА плате должен начать мигать светодиод.

Более подробно вы можете почитать про Arduino на сайтах www.arduino.cc и arduino.ru . Успехов 😉