У цьому проекті ми будемо розробляти веселу схему з використанням датчика сили та Arduino Uno. Ця схема генерує звук, лінійно пов’язаний із силою, прикладеною до датчика. Для цього ми збираємось взаємодіяти датчик сили з Arduino Uno. В UNO ми будемо використовувати 8-бітну функцію АЦП (аналого-цифрове перетворення) для виконання цієї роботи.
Датчик сили або чутливий до сили резистор
Датчик FORCE - це перетворювач, який змінює свій опір при натисканні на поверхню. Датчик FORCE доступний різних розмірів та форм. Ми збираємось використовувати одну з дешевих версій, оскільки нам тут не потрібна велика точність. FSR400 - один з найдешевших датчиків сили на ринку. Зображення FSR400 показано на малюнку нижче. Вони також називаються чутливими до сили резисторами або FSR, оскільки його опір змінюється відповідно до сили чи тиску, що до нього застосовується. Коли на цей резистор, що сприймає силу, діє тиск, його опір зменшується, тобто опір обернено пропорційний прикладеному зусиллю. Отже, коли на нього не застосовується тиск, опір FSR буде дуже високим.
Тепер важливо зауважити, що FSR 400 чутливий по довжині, сила або вага повинні бути зосереджені на лабіринті в середині ока сенсора, як показано на малюнку. Якщо сила застосовується в неправильний час, пристрій може назавжди пошкодити.
Ще одна важлива річ, яку потрібно знати, що датчик може подавати струми високого діапазону. Тому пам’ятайте про струми струму під час встановлення. Також датчик має обмеження сили, яке становить 10 ньютонів. Отже, ми можемо застосовувати лише 1 кг ваги. Якщо застосовується вага більше 1 кг, датчик може мати деякі відхилення. Якщо він збільшився більше ніж на 3 кг. датчик може назавжди пошкодити.
Як вже було сказано раніше, цей датчик використовується для відчуття змін тиску. Отже, коли вага накладається поверх датчика FORCE, опір різко змінюється. Стійкість FS400 до ваги показана на графіку нижче,
Як показано на малюнку вище, опір між двома контактами датчика зменшується із збільшенням ваги або провідність між двома контактами датчика збільшується. Опір чистого провідника задається:
Де, p- Опір провідника
l = довжина провідника
A = площа провідника.
Тепер розглянемо провідник з опором «R». Якщо на провідник надається певний тиск, площа провідника зменшується, а довжина провідника збільшується внаслідок тиску. Отже, за формулою опір провідника повинен зростати, оскільки опір R обернено пропорційний площі, а також прямо пропорційний довжині l.
Тож із цим для провідника під тиском або вагою опір провідника збільшується. Але ця зміна незначна порівняно із загальним опором. Для значної зміни багато провідників складаються разом. Це те, що відбувається всередині датчиків сили, показаних на малюнку вище. При уважному розгляді можна побачити безліч ліній всередині датчика. Кожна з цих ліній представляє провідник. Чутливість датчика вказана в номерах провідників.
Але в цьому випадку опір буде зменшуватися з тиском, оскільки використаний тут матеріал не є чистим провідником. Тут FSR - це надійні пристрої з полімерної товстої плівки (PTF). Отже, це не пристрої з чистого провідника. Вони складаються з матеріалу, який демонструє зменшення опору зі збільшенням сили, прикладеної до поверхні датчика. Цей матеріал показує характеристики, як показано на графіку FSR.
Ця зміна опору не може принести користі, якщо ми не зможемо їх прочитати. Підручний контролер може зчитувати лише шанси напруги і не менше, для цього ми будемо використовувати схему дільника напруги, при цьому ми можемо отримати зміну опору у міру зміни напруги.
Дільник напруги є резистивним контуром і показаний на малюнку. У цій резистивній мережі ми маємо один постійний опір та інший змінний опір. Як показано на малюнку, R1 тут є постійним опором, а R2 - датчиком СИЛИ, який діє як опір. Середня точка гілки приймається для вимірювання. Зі зміною R2 ми маємо зміни на Vout. Отже, з цим ми маємо зміну напруги з вагою.
Зараз важливо відзначити, що вхід, який приймає контролер для перетворення АЦП, становить лише 50 мкАмпер. Цей навантажувальний ефект дільника напруги на основі опору є важливим, оскільки струм, який надходить від Vout дільника напруги, збільшує відсоток похибок, і наразі нам не потрібно турбуватися про ефект навантаження.
Як перевірити датчик FSR
Силовий резистор можна перевірити за допомогою мультиметра. Підключіть два штирі датчика FSR до мультиметра, не докладаючи жодної сили, і перевірте значення опору, воно буде дуже великим. Потім прикладіть деяку силу до її поверхні і побачите зменшення значення опору.
Застосування датчика FSR
Силочутливі резистори в основному використовуються для створення "кнопок", що контролюють тиск. Вони використовуються в різних галузях, таких як датчики місткості автомобілів, резистивні сенсорні панелі, роботизовані кінчики пальців, штучні кінцівки, клавіатури, системи пронації ніг, музичні інструменти, вбудована електроніка, обладнання для тестування та вимірювання, набір для розробки OEM та портативна електроніка, спорт. Вони також використовуються в системах доповненої реальності, а також для посилення мобільної взаємодії.
Потрібні компоненти
Апаратне забезпечення: Arduino Uno, блок живлення (5 В), конденсатор 1000 мкФ, конденсатор 100 нФ (3 штуки), резистор 100 кОм, зумер, резистор 220 Ом, датчик сили FSR400.
ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ: Atmel studio 6.2 або Aurdino nightly
Принципова схема та робоче пояснення
Схема з'єднання для взаємодії резистора, що сприймає силу, з Arduino показана на схемі нижче.
Напруга на датчику не є повністю лінійною; це буде шумно. Для фільтрації шуму конденсатори розміщують по кожному резистору в схемі дільника, як показано на малюнку.
Тут ми збираємося взяти напругу, яку забезпечує дільник (напруга, яка представляє вагу лінійно) і подати її в один з каналів АЦП UNO. Після перетворення ми візьмемо це цифрове значення (що представляє вагу) і зв’яжемо його зі значенням ШІМ для керування зумером.
Отже, з вагою ми маємо величину ШІМ, яка змінює коефіцієнт навантаження в залежності від цифрового значення. Чим вище цифрове значення, тим вищий коефіцієнт опору ШІМ настільки вищий, що створюється зумером Отже, ми пов’язали вагу зі звуком.
Перш ніж продовжувати, давайте поговоримо про АЦП Arduino Uno. ARDUINO має шість каналів АЦП, як показано на малюнку. У них будь-який один або всі з них можуть бути використані як входи для аналогової напруги. АЦП UNO має 10-бітну роздільну здатність (тому цілі значення від (0- (2 ^ 10) 1023)). Це означає, що він відобразить вхідні напруги від 0 до 5 вольт у цілі значення від 0 до 1023. Отже, для кожного (5/1024 = 4,9 мВ) на одиницю.
Тут ми будемо використовувати A0 UNO.
Нам потрібно знати небагато речей.
|
Перш за все, канали АЦП UNO мають стандартне опорне значення 5 В. Це означає, що ми можемо дати максимальну вхідну напругу 5 В для перетворення АЦП на будь-якому вхідному каналі. Оскільки деякі датчики забезпечують напругу від 0-2,5 В, при еталонному напрузі 5 В ми отримуємо меншу точність, тому ми маємо інструкцію, яка дозволяє нам змінювати це контрольне значення. Тож для зміни опорного значення ми маємо (“analogReference ();”) Наразі ми залишаємо це як.
За замовчуванням ми отримуємо максимальну роздільну здатність АЦП на платі, яка становить 10 біт, цю роздільну здатність можна змінити за допомогою інструкції (“analogReadResolution (біти);”). Ця зміна дозволу може стати в нагоді в деяких випадках. Наразі ми залишаємо це як.
Тепер, якщо вищевказані умови встановлені за замовчуванням, ми можемо зчитувати значення з АЦП каналу '0', безпосередньо викликаючи функцію “analogRead (pin);”, тут “pin” представляє pin, куди ми підключили аналоговий сигнал, в даному випадку це буде "A0". Значення з АЦП можна взяти у ціле число як “int SENSORVALUE = analogRead (A0); ”, За цією інструкцією значення після АЦП зберігається у цілому числі„ SENSORVALUE ”.
ШІМ Arduino Uno може бути досягнутий на будь-якому з контактів, символізованих як «~» на платі друкованої плати. В ООН є шість каналів ШІМ. Ми збираємось використовувати PIN3 для своєї мети.
analogWrite (3, VALUE); |
З вищевикладеної умови ми можемо безпосередньо отримати сигнал ШІМ на відповідному штифті. Першим параметром у дужках є вибір пін-номера ШІМ-сигналу. Другий параметр - для написання коефіцієнта мита.
Значення ШІМ UNO можна змінити від 0 до 255. З “0” якнайнижче до “255” як найвище. З коефіцієнтом оподаткування 255 ми отримаємо 5 В на PIN3. Якщо коефіцієнт мита подано як 125, ми отримаємо 2,5 В на PIN3.
Тепер ми маємо значення 0-1024 як вихід АЦП і 0-255 як коефіцієнт оподаткування ШІМ. Отже, АЦП приблизно в чотири рази перевищує коефіцієнт ШІМ. Отже, поділивши результат АЦП на 4, ми отримаємо приблизний коефіцієнт мита.
При цьому ми матимемо ШІМ-сигнал, коефіцієнт завантаження якого змінюється лінійно з вагою. З огляду на зумер, ми маємо генератор звуку залежно від ваги.