- Датчик за сила или чувствителен към сила резистор
- Необходими компоненти
- Електрическа схема и работно обяснение
В този проект ще разработим забавна верига, използваща сензор за сила и Arduino Uno. Тази схема генерира звук, линейно свързан със сила, приложена върху сензора. За това ще свържем сензора FORCE с Arduino Uno. В UNO ще използваме 8-битова функция ADC (аналогово към цифрово преобразуване), за да свършим работата.
Датчик за сила или чувствителен към сила резистор
Сензорът 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. Така че с това имаме промяна на напрежението с теглото.
Сега е важно да се отбележи, че входът, взет от контролера за преобразуване на ADC, е само 50µAmp. Този ефект на натоварване на делител на напрежение, базиран на съпротивление, е важен, тъй като токът, извлечен от Vout на делителя на напрежението, увеличава процента на грешка, увеличава се, засега не е нужно да се тревожим за ефекта на натоварване
Как да проверите FSR сензор
Силовият резистор може да бъде тестван с помощта на мултицет. Свържете двата щифта на FSR сензора към мултицета, без да прилагате никаква сила и проверете стойността на съпротивлението, тя ще бъде много висока. След това приложете някаква сила към повърхността му и вижте намалението на стойността на съпротивлението.
Приложения на FSR сензор
Силовите резистори се използват главно за създаване на "бутони", чувствителни на натиск. Те се използват в различни области като сензори за заетост на автомобили, резистивни сензорни подложки, роботизирани върхове на пръстите, изкуствени крайници, клавиатури, системи за пронация на крака, музикални инструменти, вградена електроника, оборудване за тестване и измерване, OEM комплект за разработка и преносима електроника, спорт. Те се използват и в системите за разширена реалност, както и за подобряване на мобилното взаимодействие.
Необходими компоненти
Хардуер: Arduino Uno, захранване (5v), кондензатор 1000 uF, кондензатор 100nF (3 броя), резистор 100KΩ, зумер, резистор 220Ω, сензор за сила FSR400.
СОФТУЕР: Atmel studio 6.2 или Aurdino всяка вечер
Електрическа схема и работно обяснение
Връзката на веригата за свързване на резистор за чувствителност на сила с Arduino е показана на долната диаграма
Напрежението на сензора не е напълно линейно; ще бъде шумно. За да филтрират шума, кондензатори се поставят върху всеки резистор в разделителната верига, както е показано на фигурата.
Тук ще вземем напрежението, осигурено от разделителя (напрежение, което представлява тежестта линейно) и ще го подадем в един от ADC каналите на UNO. След преобразуване ще вземем тази цифрова стойност (представляваща тегло) и ще я свържем със стойността на ШИМ за задвижване на зумера.
Така че с теглото имаме PWM стойност, която променя своето съотношение на мито в зависимост от цифровата стойност. Колкото по-висока е цифровата стойност, толкова по-голямо е коефициентът на мито на ШИМ, толкова по-висок е шумът, генериран от зумера. Така че свързахме теглото със звука.
Преди да продължим, нека поговорим за ADC на Arduino Uno. ARDUINO има шест ADC канала, както е показано на фигурата. В тях всеки един или всички от тях може да се използва като входове за аналогово напрежение. UNO ADC е с 10-битова разделителна способност (така че целочислените стойности от (0- (2 ^ 10) 1023)). Това означава, че ще преобразува входните напрежения между 0 и 5 волта в целочислени стойности между 0 и 1023. Така че за всеки (5/1024 = 4.9mV) за единица.
Тук ще използваме A0 на UNO.
Трябва да знаем няколко неща.
|
На първо място UNO ADC каналите имат референтна стойност по подразбиране 5V. Това означава, че можем да дадем максимално входно напрежение от 5V за ADC преобразуване на всеки входен канал. Тъй като някои сензори осигуряват напрежение от 0-2,5V, с 5V референция получаваме по-малка точност, така че имаме инструкция, която ни позволява да променим тази референтна стойност. Така че за промяна на референтната стойност имаме (“analogReference ();”) Засега я оставяме като.
По подразбиране получаваме максималната разделителна способност на ADC на борда, която е 10 бита, тази разделителна способност може да бъде променена с помощта на инструкция („analogReadResolution (битове);“). Тази промяна на резолюцията може да бъде полезна за някои случаи. Засега го оставяме така.
Сега, ако горните условия са зададени по подразбиране, можем да прочетем стойност от ADC на канал '0', като директно извикаме функцията „analogRead (pin);“, тук „pin“ представлява щифт, където сме свързали аналогов сигнал, в този случай ще бъде „A0“. Стойността от ADC може да бъде взета в цяло число като „int SENSORVALUE = analogRead (A0); ”, Чрез тази инструкция стойността след ADC се съхранява в цялото число„ SENSORVALUE ”.
PWM на Arduino Uno може да се постигне на всеки от щифтовете, символизирани като „~“ на платката на печатната платка. В UNO има шест ШИМ канала. Ще използваме PIN3 за нашата цел.
analogWrite (3, VALUE); |
От горното условие можем директно да получим ШИМ сигнала на съответния щифт. Първият параметър в скоби е за избор на пинов номер на ШИМ сигнал. Вторият параметър е за писане на коефициент на мито.
Стойността на ШИМ на UNO може да бъде променена от 0 на 255. С „0“ като най-ниска до „255“ като най-висока. С 255 като коефициент на мито ще получим 5V при PIN3. Ако коефициентът на мито е даден като 125, ще получим 2.5V при PIN3.
Сега имаме стойност 0-1024 като изход ADC и 0-255 като коефициент на мито на ШИМ. Така ADC е приблизително четири пъти съотношението ШИМ. Така че като разделим резултата на ADC на 4, ще получим приблизителното съотношение на митото.
С това ще имаме ШИМ сигнал, чийто коефициент на запълване се променя линейно с теглото. Това се дава на зумера, имаме звуков генератор в зависимост от теглото.