Приветствую всех ) Сегодня мы начнем новую рубрику 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 . Успехов 😉