Меню English Ukrainian російська Головна

Безкоштовна технічна бібліотека для любителів та професіоналів Безкоштовна технічна бібліотека


Arduino. Операції аналогового введення-виведення, робота зі звуком. Енциклопедія радіоелектроніки та електротехніки

Безкоштовна технічна бібліотека

Енциклопедія радіоелектроніки та електротехніки / Радіоаматор-конструктор

Коментарі до статті Коментарі до статті

Хоча цифрові операції вводу-виводу дозволяють вирішувати широке коло завдань, проте наявність в мікроконтролері плати Arduino вбудованого аналого-цифрового перетворювача (АЦП) і можливість виведення аналогових сигналів за допомогою широтно-імпульсної модуляції (ШІМ) забезпечують роботу з аналоговими датчиками та всілякими виконавчими пристроями, впливають на об'єкт пропорційно до керуючого сигналу.

У режимі виведення всі лінії портів Arduino можуть передавати тільки дискретні сигнали, що мають лише два стани. Але мікроконтролер здатний змінювати ці стани дуже швидко, генеруючи прямокутні імпульси. Якщо подати ці імпульси на будь-який пристрій, що володіє інерційними властивостями, воно поводитиметься так, ніби напруга, що подається на нього, постійна, рівна середньому значенню імпульсного, і змінюється плавно, а не стрибками між високим і низьким логічними рівнями.

У режимі ШІМ порт формує імпульсний сигнал постійної частоти та змінної шпаруватості (це відношення періоду проходження імпульсів до їх тривалості). Часто замість шпаруватості оперують оберненою їй величиною - коефіцієнтом заповнення, який можна змінювати від 0 (немає імпульсів) до 100% (імпульси слідують, злившись, без пауз). Отже, хоча кожен окремий момент вихідна напруга відповідає високому чи низькому логічному рівню, його середнє значення пропорційно коефіцієнту заповнення. Якщо підключити звичайний мультиметр до цього виходу, він покаже це значення (звичайно, якщо частота імпульсів досить висока).

В Arduino UNO в режимі ШІМ можуть працювати виходи D3, D5, D6, D9, D10 та D11. Зазвичай на платі вони позначені знаками "~" або абревіатурами "PWM". Слід зауважити, що у плат Arduino інших модифікацій кількість таких виходів може бути більшою або меншою.

У найпростішому випадку ШІМ можна застосувати для керування яскравістю світлодіоду. Цей прилад практично безінерційний, але людський зір має достатню інерційність, щоб послідовність швидких спалахів світлодіода сприймалася як безперервне світіння із залежною від коефіцієнта заповнення яскравістю.

Дискретні виходи, здатні формувати ШІМ, налаштовані використання цього режиму за промовчанням, тому викликати функцію pinMode() їхнього роботи у такому режимі не нужно. Для встановлення коефіцієнта заповнення ШІМ-сигналу є стандартна функція analogWrite(N, M), де N - номер виведення, M - число, пропорційне необхідному коефіцієнту заповнення. Воно має лежати в інтервалі від 0 до 255, причому 0 відповідає нульовому коефіцієнту заповнення (навихід постійний низький рівень), 255 - коефіцієнту заповнення 100% (на виході постійний високий рівень). Тимчасові діаграми вихідної напруги при деяких значеннях M і коефіцієнта заповнення Кз показані на рис. 1.

Arduino. Операції аналогового введення-виводу, робота зі звуком
Рис. 1. Тимчасові діаграми вихідної напруги

Наприклад розглянемо наведену у табл. 1 програму, яка поступово збільшує яскравість світла світлодіода, підключеного до цифрового виходу D9, а потім поступово зменшує її. Вона заснована на стандартному прикладі examples3.AnalogFading із комплекту поставки Arduino IDE. Перебір значень коефіцієнта заповнення імпульсів реалізований за допомогою вже розглянутих в [1] операторів циклу for.

Таблиця 1.

Arduino. Операції аналогового введення-виводу, робота зі звуком

Для прийому аналогових сигналів від зовнішніх пристроїв Arduino призначені входи A0-A5, за замовчуванням встановлені в потрібний для цього стан, так що додаткової ініціалізації не потрібно. АЦП, вбудований Arduino UNO, формує 10-розрядні двійкові коди і вхідна напруга, що лежить в інтервалі від 0 до +5 В, перетворює в ціле число від 0 до 1023 (210-1).

Для зчитування результату перетворення функція analogRead(N), де N - номер аналогового входу.

До аналогових входів Arduino можна підключати різноманітні датчики, вихідна напруга яких пропорційно до вимірюваної величини (змінні резистори, терморезистори, фоторезистори та ін.). Однак слід пам'ятати, що на аналоговий вхід можна подавати напругу лише від 0 до +5 В. Якщо вихідна напруга датчика лежить в іншому інтервалі або воно негативної полярності, сигнал необхідно попередньо укласти у вказаний інтервал. Опитування аналогового входу виконується з частотою менше 10 кГц [2], що може виявитися недостатнім для аналізу деяких швидкозмінних сигналів.

Наявність аналогових входів дозволяє перетворити Arduino на найпростіший цифровий вольтметр, що вимірює постійну напругу від 0 до +5 В і передає результат вимірювання на комп'ютер. Для цього достатньо завантажити в програму Arduino, наведену в табл. 2.

Таблиця 2

Arduino. Операції аналогового введення-виводу, робота зі звуком

Зверніть увагу, що в програмі константами задані зразкова напруга АЦП Uref (у мілівольтах) і коефіцієнт перерахунку вихідного коду АЦП в напругу Ku. Значення коефіцієнта обчислюється розподілом заданої зразкової напруги на 1023. Коефіцієнт зазвичай дробовий, тому константа Кі має тип float (число з плаваючою комою). Константа Uref має такий самий тип для правильного обчислення коефіцієнта. Оскільки правої частини формули перебувають лише константи, обчислює коефіцієнт не мікроконтролер, виконуючи програму, а сам компілятор на етапі її трансляції.

Все це дозволяє підвищити точність вольтметра, вимірявши мультиметром точне значення зразкової напруги на виводі Uref плати Arduino і записавши його в програму, надавши константі Uref. Про інші способи підвищити точність аналого-цифрового перетворення можна прочитати [3, 4].

Під час роботи програми на платі блимає світлодіод TX, що сигналізує про передачу інформації через послідовний порт. Світлодіод RX не світиться, оскільки комп'ютер нічого не передає у відповідь. Вбудований термінал Arduino IDE відображає прийняту інформацію (рис. 2) – результати вимірювання напруги гальванічної батареї 3332.

Arduino. Операції аналогового введення-виводу, робота зі звуком
Рис. 2. Вікно програми

Arduino може подавати як світлові, а й звукові сигнали. Для цього до одного з його виходів необхідно підключити п'єзовипромінювач звуку, наприклад, ЗП-1 (рис. 3).

Arduino. Операції аналогового введення-виводу, робота зі звуком
Рис. 3. Підключення п'єзовипромінювача звуку

Для роботи зі звуком передбачено спеціальну функцію tone(N, F, T), де N - номер виведення, на якому будуть сформовані прямокутні імпульси; F – частота звуку, Гц; T – тривалість звуку, мс. Останній параметр не є обов'язковим. За його відсутності звук буде безперервним. Щоб вимкнути його, передбачено функцію noTone(N).

Звичайно, п'єзокерамічний випромінювач звуку складно назвати пристроєм високоякісного відтворення, а сигнал, що формується мікроконтролером, має прямокутну форму, проте використання цих функцій дозволяє виконувати нескладні мелодії. Приклад наведено у табл. 3. Це трохи змінена програма examples 02.Digital oneMelody, що входить до комплекту середовища розробки Arduino IDE. Оскільки задавати вручну частоту кожної ноти мелодії незручно, до програми у її заголовку директивою #include підключено файл pitches.h. Ця операція є рівнозначною включенню в програму повного тексту цього файлу. У цьому випадку він містить список назв нот, які можна відтворити, та їх частот.

Таблиця 3

Arduino. Операції аналогового введення-виводу, робота зі звуком

Випромінювач звуку має бути підключений до виходу D8.

Для програми мелодія – це послідовність однотипних констант (значень частоти), які зручно об'єднати у масив – пронумерований список однотипних елементів. При оголошенні масиву необхідно або перерахувати всі його елементи, або вказати їх загальне число. Зверніть увагу, що нумерація елементів масиву завжди починається з нуля.

У прикладі використані два масиви: int melody[] містить назви нот мелодії, int note Durations[] - їх тривалість в мілісекундах. Для звернення до елемента масиву вказують його ім'я із укладеним у квадратні дужки порядковим номером. Щоб легко змінювати число нот у мелодії, воно обчислюється з допомогою функцій sizeof(V), повертають число байтів, займаних її аргументом (змінної чи його масивом) у пам'яті мікроконтролера. У цьому випадку масив melody займає 16 байт, а довжина його елементів типу int - два байти. Тому змінна Note отримує значення 8 і саме стільки разів буде повторено тіло циклу for, що по черзі відтворює ноти.

Якщо до масиву melody[] додати кілька нот, відповідно зміниться значення Note. Потрібно не забути доповнити масив noteDurations[] тривалістю звучання цих нот.

Оскільки мелодія виконується один раз, всі необхідні для цього операції розміщені всередині функції setup().

Для повторного виконання потрібно привести мікроконтролер у вихідний стан, натиснувши на кнопку Arduino, що знаходиться на платі Arduino,

Розглянуті у статті програми для Arduino можна завантажити з ftp://ftp.radio.ru/pub/2016/09/aninout.zip.

література

  1. Лекомцев Д. Arduino. Операції цифрового введення-виводу. – Радіо, 2016, № 8, с. 51-54.
  2. Аналогові виміри з Arduino. - URL: robotosha.ru/arduino/analog-measurements-arduino.html.
  3. Arduino Language Reference. Аналог I/O - analogReference(). - URL: arduino.cc/en/Reference/AnalogReference.
  4. Функція analogReference(). - URL: arduino.ru/Reference/AnalogReference.

Автор: Д. Лекомцев

Дивіться інші статті розділу Радіоаматор-конструктор.

Читайте та пишіть корисні коментарі до цієї статті.

<< Назад

Останні новини науки та техніки, новинки електроніки:

Машина для проріджування квітів у садах 02.05.2024

У сучасному сільському господарстві розвивається технологічний прогрес, спрямований на підвищення ефективності догляду за рослинами. В Італії було представлено інноваційну машину для проріджування квітів Florix, створену з метою оптимізації етапу збирання врожаю. Цей інструмент оснащений мобільними важелями, що дозволяють легко адаптувати його до особливостей саду. Оператор може регулювати швидкість тонких проводів, керуючи ним із кабіни трактора за допомогою джойстика. Такий підхід значно підвищує ефективність процесу проріджування квітів, забезпечуючи можливість індивідуального налаштування під конкретні умови саду, а також сорт та вид фруктів, що вирощуються на ньому. Після дворічних випробувань машини Florix на різних типах плодів результати виявились дуже обнадійливими. Фермери, такі як Філіберто Монтанарі, який використовував машину Florix протягом кількох років, відзначають значне скорочення часу та трудовитрат, необхідних для проріджування кольорів. ...>>

Удосконалений мікроскоп інфрачервоного діапазону 02.05.2024

Мікроскопи відіграють важливу роль у наукових дослідженнях, дозволяючи вченим занурюватися у світ невидимих ​​для ока структур та процесів. Однак різні методи мікроскопії мають обмеження, і серед них було обмеження дозволу при використанні інфрачервоного діапазону. Але останні досягнення японських дослідників із Токійського університету відкривають нові перспективи вивчення мікросвіту. Вчені з Токійського університету представили новий мікроскоп, який революціонізує можливості мікроскопії в інфрачервоному діапазоні. Цей удосконалений прилад дозволяє побачити внутрішні структури живих бактерій із дивовижною чіткістю в нанометровому масштабі. Зазвичай мікроскопи в середньому інфрачервоному діапазоні обмежені низьким дозволом, але нова розробка японських дослідників дозволяє подолати ці обмеження. За словами вчених, розроблений мікроскоп дозволяє створювати зображення з роздільною здатністю до 120 нанометрів, що в 30 разів перевищує дозвіл традиційних метрів. ...>>

Пастка для комах 01.05.2024

Сільське господарство - одна з ключових галузей економіки, і боротьба зі шкідниками є невід'ємною частиною цього процесу. Команда вчених з Індійської ради сільськогосподарських досліджень – Центрального науково-дослідного інституту картоплі (ICAR-CPRI) у Шимлі представила інноваційне вирішення цієї проблеми – повітряну пастку для комах, яка працює від вітру. Цей пристрій адресує недоліки традиційних методів боротьби зі шкідниками, надаючи дані про популяцію комах у реальному часі. Пастка повністю працює за рахунок енергії вітру, що робить її екологічно чистим рішенням, яке не вимагає електроживлення. Її унікальна конструкція дозволяє відстежувати як шкідливі, так і корисні комахи, забезпечуючи повний огляд популяції в будь-якій сільськогосподарській зоні. "Оцінюючи цільових шкідників у потрібний час, ми можемо вживати необхідних заходів для контролю як комах-шкідників, так і хвороб", - зазначає Капіл. ...>>

Випадкова новина з Архіву

Відлуння древнього землетрусу 28.11.2001

Як показала група французьких та швейцарських сейсмологів, у районі Базеля (Швейцарія) досі можна вловити відлуння землетрусу потужністю 6-6,5 бала, що трапився тут 18 жовтня 1356 року.

З середньовічних хронік відомо, що місту тоді було завдано величезних збитків, а навколо нього було зруйновано три десятки лицарських замків. Тонкі сейсмографи й досі відзначають дрібні струси. На південь від Базеля геологи знайшли активну зону розлому, яка й надалі може викликати землетруси кожні півтори – дві з половиною тисячі років. Останні 8500 років цей район внаслідок тектонічних процесів піднявся на 180 сантиметрів.

Наступний землетрус тут відбудеться не раніше, ніж через тисячу років, але вже зараз фахівці рекомендують розробити нові стандарти безпеки для місцевих АЕС та хімічних заводів.

Інші цікаві новини:

▪ Сумки Louis Vuitton з AMOLED-екранами

▪ Nubia Red Magic 3 – смартфон з вентилятором

▪ Найменший супутник-телескоп

▪ Шокова терапія розумного браслета

▪ Сонячні панелі з дешевої сировини

Стрічка новин науки та техніки, новинок електроніки

 

Цікаві матеріали Безкоштовної технічної бібліотеки:

▪ Розділ сайту Особистий транспорт: наземний, водний, повітряний. Добірка статей

▪ стаття Лебідь, Рак та Щука. Крилатий вислів

▪ стаття Що таке бобслей? Детальна відповідь

▪ стаття Камелія евгенольна. Легенди, вирощування, способи застосування

▪ стаття Світлодіодний маячок. Енциклопедія радіоелектроніки та електротехніки

▪ стаття Цоколівка поширених біполярних та польових транзисторів. Енциклопедія радіоелектроніки та електротехніки

Залишіть свій коментар до цієї статті:

ім'я:


E-mail (не обов'язково):


коментар:





All languages ​​of this page

Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт

www.diagram.com.ua

www.diagram.com.ua
2000-2024