Загальна інформація по Arduino UNO

Конструкції та програмування ARDUINO UNO
Відповісти
Аватар користувача
radioman
Site Admin
Повідомлень: 133
З нами з: 28 вересня 2020, 12:01
Звідки: Тернопіль
Дякував (ла): 8 разів
Подякували: 6 разів

Загальна інформація по Arduino UNO

Повідомлення radioman »

Arduino Uno - це пристрій побудований на основі мікроконтролера ATmega328. Для початку роботи досить підключити його до комп'ютера за допомогою USB-кабелю або подати зовнішнє живлення. В якості зовнішнього джерела живлення (не USB) може використовуватися мережевий AC / DC-адаптер або акумулятор. Штекер адаптера (діаметр - 2.1мм, центральний контакт - позитивний) підключається у відповідний роз'єм живлення на платі. У разі живлення від акумулятора, його під'єднують до контактів Gnd і Vin роз'єму POWER.
Програмується за допомогою програмного забезпечення Arduino IDE.

Характеристики:
Мікроконтролер- ATmega328
Робоча напруга - 5В
Напруга живлення (рекомендовано) - 7-12В
Напруга живлення (межова) - 6-20В
Цифрові входи-виходи - 14 (з них 6 можуть використовуватись в якості ШІМ-виходів)
Аналогові входи - 6
Максимальний ток одного виходу - 40 мА
Максимальний вихідний ток виходу 3.3V - 50 мА
Flash-пам’ять 32 КБ (ATmega328) з них 0.5 КБ використовується завантажувачем
SRAM - 2 КБ (ATmega328)
EEPROM - 1 КБ (ATmega328)
Тактова частота - 16 МГц

Входи і виходи
arduino_uno.png
VIN - за необхідності, через цей контакт подається зовнішнє живлення.
5V На цей контакт подається напруга 5В від стабілізатора на платі, не залежно від того, як живиться пристрій: від адаптера (7 - 12В), від USB (5В) або через контакт VIN (7 - 12В). Подавати напругу на контакти 5V або 3V3 не рекомендується, оскільки в цьому випадку не використовується внутрішній стабілізатор напруги, що може привести до виходу плати з ладу.
3V3 На цей контакт подається з плати 3.3В з внутрішнього стабілізатора. Максимальний струм через цей контакт становить 50 мА.
IOREF Цей контакт надає платам розширення інформацію про робочу напругу мікроконтролера Ардуіно. Залежно від неї, плата розширення може переключитися на відповідне джерело живлення або задіяти перетворювачі рівнів, що дозволить їй працювати як з 5В, так і з 3.3В-пристроями.
За допомогою функцій pinMode (), digitalWrite () і digitalRead () кожен з 14 цифрових контактів може працювати в якості входу або виходу. Рівень напруги на виходах становить 5В. Максимальний струм, який може віддавати або споживати один контакт, становить 40 мА. Всі контакти пов'язані з внутрішніми «підтягуючи ми» резисторами (за замовчуванням відключеними) номіналом 20-50 кОм.
Крім цього, деякі контакти Ардуіно можуть виконувати додаткові функції:
Контакти 0 (RX) і 1 (TX) - послідовний інтерфейс. Використовуються для отримання (RX) і передачі (TX) даних по послідовному інтерфейсу.
Контакти 2 і 3 - зовнішні переривання; за допомогою функції attachInterrupt ()по фронту, спаду або при низькому рівні сигналу на цих контактах генеруються зовнішні переривання.
Контакти 3, 5, 6, 9, 10 і 11 - ШІМ; за допомогою функції analogWrite () можна генерувати 8-бітний аналоговий ШІМ сигнал.
Контакти 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) використовуються для здійснення зв'язку по інтерфейсу SPI.
Контакт A4 (SDA) і контакт A5 (SCL) використовуються для здійснення зв'язку по інтерфейсу TWI.
AREF - опорна напруга для аналогових входів.
До 13 контакту приєднаний вбудований світлодіод. При встановленні рівня HIGH світлодіод включається, при відправці LOW - вимикається.
В Arduino Uno є 6 10-бітних (1024) аналогових входів (A0 - A5). За замовчуванням, вимір напруги здійснюється щодо діапазону від 0 до 5 В. Проте, верхню межу цього діапазону можна змінити, використовуючи контакт AREF і функцію analogReference ().
Reset - формування низького рівня (LOW) на цьому контакті призведе до перезавантаження мікроконтролера.

Більш детальну інформацію можна отримати на спеціалізованому форумі.

PS. В архіві DATASHEET ATmega328P.
ATmega328P_Datasheet.7z
DATASHEET ATmega328P
(6.39 МіБ) Завантажено 641 раз
pawa
Повідомлень: 75
З нами з: 28 вересня 2020, 20:26
Дякував (ла): 1 раз
Подякували: 5 разів

Re: Загальна інформація по Arduino UNO

Повідомлення pawa »

Не полюбляю я ці Ардуіни за скетчи. Навіщо було вигадувати нову мову програмування, якщо є звичайний та зрозумілий Сі, а бо той самий асм, якого достатньо для початкової ланки мк Атмел.
Аватар користувача
radioman
Site Admin
Повідомлень: 133
З нами з: 28 вересня 2020, 12:01
Звідки: Тернопіль
Дякував (ла): 8 разів
Подякували: 6 разів

Re: Загальна інформація по Arduino UNO

Повідомлення radioman »

pawa писав: 13 жовтня 2020, 00:51 Не полюбляю я ці Ардуіни за скетчи. Навіщо було вигадувати нову мову програмування, якщо є звичайний та зрозумілий Сі...
Програмування дуже подібне до С/С++; зроблено для залучення більш широкого кола користувачів.
pawa писав: 13 жовтня 2020, 00:51 ...або той самий асм, якого достатньо для початкової ланки мк Атмел.
Для цього потрібно більш грунтовно вавчити архітектуру МК; що значно звужує коло користувачів.
Програмне забезпечення для Ардуіно є безкоштовним; для програмування не потрібно додаткових пристроїв; наявність плат розширення спрощує виготовлення тестових зразків. Це як конструктор - дуже зручно.
pawa
Повідомлень: 75
З нами з: 28 вересня 2020, 20:26
Дякував (ла): 1 раз
Подякували: 5 разів

Re: Загальна інформація по Arduino UNO

Повідомлення pawa »

Так ардуіно це конструктор, але я за те щоб освоювати поширену, загальновизнану і універсальну мову програмування таку як Сі, тим більше така можливість нічим не обмежена.
Для ардуіно була розроблена "мова бібліотек", так саме є бібліотеки у мові Сі. Бувають випадки що бібліотеку треба відредагувати, щоб підлагодити якусь функцію, або переробити на свою. Знаючи мову "оригіналу" зробити це буде не важко.
Що до мови асемблеру - то знання архітектури мк потрібні не більш ніж для програмування на Сі.
Аватар користувача
radioman
Site Admin
Повідомлень: 133
З нами з: 28 вересня 2020, 12:01
Звідки: Тернопіль
Дякував (ла): 8 разів
Подякували: 6 разів

Re: Загальна інформація по Arduino UNO

Повідомлення radioman »

pawa писав: 13 жовтня 2020, 16:22...Для ардуіно була розроблена "мова бібліотек", так саме є бібліотеки у мові Сі. Бувають випадки що бібліотеку треба відредагувати, щоб підлагодити якусь функцію, або переробити на свою. Знаючи мову "оригіналу" зробити це буде не важко...
Ті самі бібліотеки можна редагувати і при написанні скетчів для Arduino. Але краще мінімізувати їх використання, так як це сповільнює виконання програми через зайві операції. Але, для початківців це зручно, так як зовсім не вимагає знання архітектури МК.
Аватар користувача
radioman
Site Admin
Повідомлень: 133
З нами з: 28 вересня 2020, 12:01
Звідки: Тернопіль
Дякував (ла): 8 разів
Подякували: 6 разів

Re: Загальна інформація по Arduino UNO

Повідомлення radioman »

Простий скетч генератора меандру
Для перевірки підсилювача низьких частот за схемою металошукача Fisher 75 написав простенький скетч для генерації меандру. Вхід підсилювача підключений до 3 контакту, а земля до GND плати ARDUINO UNO:

Код: Виділити все

const int conTime = 2000;       // константа для затримки переключення рівня (мкс)

void setup()
{
  pinMode(3, OUTPUT);           // визначаємо 3 пін як вихід
}

void loop()
{
  digitalWrite(3, HIGH);        // встановлюємо високий рівень на 3 контакті
  delayMicroseconds(conTime);   // чекаємо час, заданий константою
  digitalWrite(3, LOW);         // встановлюємо високий рівень на 3 контакті
  delayMicroseconds(conTime);   // чекаємо час, заданий константою
}
Відповісти