Програмування Arduino. Плата Arduino. Проекти, реалізовані на основі Arduino.

 Тема: Програмування Arduino. Плата Arduino. Прое­кти, реалізовані на основі Arduino .



Arduino – апаратно-програмна платформа, основними компонентами якої є микроконтролнрна плата вводу / виводу і середовище розробки на мові Processing / Wiring. Мова програмування Arduino запозичена з середовища програмування мультимедіа «Processing». Arduino, як і інші аналогічні засоби (Parallax Basic Stamp, Raspberry, Netmedia's BX-24, Phidgets, MIT's Handyboard і ін.), має на меті звільнити користувача від необхідності заглиблюватися в деталі внутрішнього устрою мікроконтролерів, надавши йому простий і зручний інтерфейс для їх програмування. 

Загальна інформація про контроллер.

Arduino UNO R3 виконаний на мікроконтролері ATmega328. У нього:

  • 14 цифрових портів входу-виходу (6 з них підтримують режим ШІМ модуляції);
  • 6 аналогових входів;
  • частота тактирования 16 МГц;
  • USB порт;
  • роз'єм живлення;
  • роз'єм внутрисхемного програмування;
  • кнопка скидання.

У плати є всі необхідні компоненти для забезпечення роботи мікроконтролера. Досить підключити USB кабель до комп'ютера і подати живлення.  Мікроконтролер встановлений на колодці, що дозволяє легко замінити його в разі виходу з ладу.

Технічні характеристики.

Тип мікроконтролераATmega328P
Напруга живлення мікроконтролера5 У
Рекомендоване напруга живлення плати7 - 12 В
Гранично допустима напруга живлення плати6 - 20 В
Цифрові входи-виходи14 (з них 6 підтримують ШІМ)
Виходи ШІМ модуляції6
аналогові входи6
Допустимий струм цифрових виходів20 мА
Допустимий струм виходу 3,3 В50 мА
Обсяг флеш пам'яті (FLASH)32 кБ (з яких 0,5 кБ використовується завантажувачем)
Об'єм оперативної пам'яті (SRAM)2 кБ
Обсяг енергонезалежної пам'яті (EEPROM)1 кБ
частота тактирования16 мГц
довжина плати68,6 мм
Ширина плати53,4 мм
вага25 г

Програмування.

Контролер програмується з інтегрованого середовища програмного забезпечення Ардуіно (IDE). Програмування відбувається під управлінням резидентного завантажувача по протоколу STK500. Апаратний програматор при цьому не потрібно.

Мікроконтролер можна запрограмувати через роз'єм для внутрисхемного програматора ICSP, не використовуючи, завантажувач. Вихідний код програми-завантажувача знаходиться у вільному доступі.

Відмінність від інших контролерів Ардуіно.

Arduino UNO R3, на відміну від попередніх версій, не використовує для підключення до комп'ютера міст USB-UART FTDI. Цю функцію в ньому виконує мікроконтролер ATmega16U2.

Система харчування.

Плата UNO може отримувати живлення від USB порту або від зовнішнього джерела. Джерело живлення вибирається автоматично. В якості зовнішнього джерела живлення може використовуватися мережевий адаптер або батарея. Адаптер підключається через роз'єм діаметром 2,1 мм (центральний контакт - позитивний). Батарея підключається до контактів GND і Vin роз'єму POWER.

Напруга зовнішнього джерела живлення може бути в діапазоні 6 - 20 В. Але рекомендується не допускати зниження напруги нижче 7 В через нестабільну роботу пристрою. Також небажано підвищувати напруга живлення більш 12 В, тому що може перегріється стабілізатор і вийти з ладу. Тобто рекомендований діапазон напруги живлення 7 - 12 В.

Пам'ять.

У мікроконтролера три типи пам'яті:

  • 32 кБ флеш (FLASH);
  • 2 кБ оперативної пам'яті (SRAM);
  • 1 кБ незалежній пам'яті (EEPROM).

 

Входи і виходи.

Кожен з 14 цифрових висновків може бути використаний в якості виходу або входу. Рівень напруги на висновках 5 В. Рекомендовано випливає і впадає струм кожного виведення обмежувати на рівні 20 мА. Гранично допустиме значення цього параметра складає 40 мА. Кожен висновок має внутрішній підтягаючий резистор опором 20-50 кОм. Резистор може бути відключений програмно.

Деякі виходи можуть виконувати додаткові функції.

Послідовний інтерфейс: виходи 0 (Rx) і 1 (Tx). Використовуються для прийому (Rx) і передачі (Tx) послідовних даних логічних рівнів TTL. Ці виходи підключені до виходів передачі даних мікросхеми ATmega16U2, яку використовують в якості моста USB-UART.

Зовнішні переривання: виходи 2 і 3. Ці виходи можуть бути використані як входи зовнішніх переривань. Програмно можуть бути встановлені на переривання по низькому рівню, позитивному чи негативному фронту, або на зміну рівня сигналу.

ШІМ: виходи 3, 5, 6, 9, 10, 11. Можуть працювати в режимі ШІМ модуляції з роздільною здатністю 8 розрядів.

Послідовний інтерфейс SPI: виходи 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).

Світлодіод: виход 13. Світлодіод, підключений до виходу 13. Світиться при високому рівні сигналу на виводі.

Інтерфейс TWI: виходи A4 або SDA і A5 або SCL. Комунікаційний інтерфейс TWI.

У плати Arduino UNO є 6 аналогових входів, позначених A0-A5 . Роздільна здатність аналогового цифрового перетворення 10 розрядів. За замовчуванням, вхідна напруга вимірюється щодо землі в діапазоні 0-5 В, але може бути змінено за допомогою виведення AREF і програмних установок.

Ще 2 виведення плати мають функції:

AREF. Опорна напруга АЦП мікроконтролера.

RESET. Низький рівень на цьому виході викликає скидання мікроконтролера.

 

Комунікаційні інтерфейси.

Модуль Arduino UNO має засоби для зв'язку з комп'ютером, з іншого платою UNO або з іншими микроконтроллерами. Для цього на платі існує інтерфейс UART з логічними рівнями TTL (5 В), пов'язаний з виходи 0 (RX) і 1 (TX). Мікросхема ATmega16U2 на платі пов'язує UART інтерфейс з USB портом комп'ютера. При підключенні до порту комп'ютера, з'являється віртуальний COM порт, через який програми комп'ютера працюють з Ардуіно. Прошивка ATmega16U2 використовує стандартні драйвери USB-COM і установка додаткових драйверів не потрібно. Для операційної системи Windows необхідний відповідний .inf файл. В інтегроване середовище програмного забезпечення Ардуіно (IDE) включений монітор обміну по послідовному інтерфейсу, який дозволяє посилати і отримувати з плати прості текстові дані. На платі є світлодіоди RX і TX,

Мікроконтролер ATmega328 також підтримує комунікаційні інтерфейси I2C (TWI) і SPI.

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

Для того, щоб наступного разу  перед завантаженням програми не потрібно було натискати кнопку скидання, на платі UNO реалізована апаратна функція скидання, що ініціюється з підключеного комп'ютера. Один із сигналів управління потоком даних (DTR) мікросхеми ATmega16U2 підключений до виходу скидання мікроконтролера ATmega328 через конденсатор ємністю 0,1 мкФ. Коли сигнал DTR переходить в низький стан, формується імпульс скидання мікроконтролера. Це рішення дозволяє завантажувати програму одним натисканням кнопки з інтегрованого середовища програмування Arduino (IDE).

Але така функція може призводити до негативних наслідків. При підключенні плати UNO до комп'ютера з операційною системою Mac Os X або Linux, мікроконтролер буде скидатися при кожному з'єднанні програми з платою. Протягом половини секунди на платі UNO буде запущений завантажувач. Незважаючи на те, що програма завантажувача ігнорує сторонні дані, вона може прийняти кілька байтів з пакета відразу після установки з'єднання. Якщо в програмі на платі Ардуіно передбачено отримання будь-яких даних при першому запуску, необхідно відправляти дані з затримкою приблизно на 1 секунду після з'єднання.

 

На модулі UNO існує доріжка, яку можна перерізати для відключення функції автоматичного скидання. Доріжка маркована написом "RESET-EN". Автоматичне скидання також можна заборонити, підключивши резистор опором 110 Ом між лінією живлення 5 В і виходом RESET.

Захист USB порту від перевантажень.

У платі Arduino UNO лінія живлення від інтерфейсу USB захищена відновлюваним запобіжником. При перевищенні струму понад 500 мА, запобіжник розриває ланцюг для усунення короткого замикання.





Немає коментарів:

Дописати коментар