Свързване на тахометър към arduino. Тахометър, базиран на Arduino. Извеждане на данни към HD44780 LCD дисплей с помощта на arduino

Тахометърът е полезен инструмент за отчитане на RPM (обороти в минута) на колело или нещо, което се върти. Най-лесният начин да направите тахометър е да използвате IR предавател и приемник. Когато комуникацията между тях се прекъсва, вие знаете, че нещо се върти и можете да използвате кода, за да изчислите RPM въз основа на честотата на прекъсванията на комуникацията.

Надеждните системи за мониторинг и диагностика на машини с правилни измервателни входове са високо ценени. Тахометърът е устройство, което измерва оборотите в минута на ротора на двигателя или турбината. Те се използват за проследяване на скоростите, които имаме в учебния процес, което ще ни уведоми дали работи правилно. С този тип инструменти ще избегнем спирането на оборудването и ще можем да извършим поддръжка в точното време. Може също да се използва за познаване на разстоянията, изминати от колела, зъбни колела или ленти. Настоящата работа се основава главно на внедряването на устройство, в което може да се наблюдава управлението на двигателя и да се измерва неговата скорост с помощта на цифров дотамометър. Причината за този тип преобразуване е, че е много по-лесно точното предаване и декодиране на поредица от импулси, отколкото аналогов сигнал, особено ако разстоянието, на което трябва да се предава сигналът, е дълго и шумно. В тези случаи преобразувателят честота-напрежение ще бъде поставен в края на предавателната линия, за да получи отново аналоговия сигнал. Най-често срещаното приложение на честотно-напреженови преобразуватели е при измерване на скоростта на двигателя, където поредица от импулси, пропорционални на скоростта на двигателя, се формират в аналогов сигнал, който трябва да бъде измерен и евентуално също използван за управление на скоростта. Линейността на това напрежение обикновено е 3% от пълната скала. Поради тази причина той не пречи на уравнението на мащаба на преобразуване. Аналоговият вход зарежда пробата и я задържа в кондензатора. Изходът за проба и задържане в кондензатора е вход към преобразувателя. След това преобразувателят генерира резултат за цифрово аналогово ниво, като използва последователни приближения. Тези регистри са:  Записване на висок краен резултат  Записване на нисък  Регистър за проверка 0  Регистър за проверка 1 6 Бита 6-4: Не е внедрено, чете се като относителна ширина на периодичен работен цикъл на положителната му страна спрямо периода. В двигателите модулацията на ширината на импулса е техника, използвана за контролиране на скоростта на въртене на електрическата индукция или асинхронни двигатели. Поддържа постоянен въртящ момент и не позволява отпадъци електрическа енергия. Други системи за промяна на скоростта електрическо напрежение, намаляване на въртящия момент на двигателя; или паста електрическо съпротивление, като по този начин се губи енергия под формата на топлина в това съпротивление. 10. Преди няколко седмици отворихме поредица от публикации за сензори и първата, която измислихме, беше.

В тази статия ще разгледаме как да използвате IR предавател и приемник, за да направите тахометър с помощта на Arduino. Резултатът се показва на 16x2 LCD дисплей.

Целта на този проект е да се създаде система с един вход и един изход. На входа на устройството има сигнал, който се променя от високо (+5V) на ниско (+0V) ниво при прекъсване на комуникацията. Според този сигнал Arduino ще увеличи стойността на вътрешния брояч. След това се извършва допълнителна обработка и изчисление и когато тригерът бъде прекъснат, изчислените RPM ще бъдат показани на LCD дисплея.

Много евтин сензор, който има интересни приложения. Този сензор е чудесен за откриване на препятствия пред вас и има няколко приложения в роботиката. Вече видяхме, че е бил използван за създаване на последователи на родови роботи, а също и в сумо бойни роботи, за да се избегне напускане на бойното поле. И в двата случая се използва отразяващ оптичен сензор за откриване на маркиращи линии, които определят или пътя, който роботът трябва да следва, или границите на бойното поле.

Съдържа два компонента, които са прикрепени към пластмасова вложка. Работата му е много подобна на тази на транзистора, има колектор, емитер и база е това, което в този случай се активира след получаване на инфрачервен лъч светлина. Така че тези два компонента работят заедно. Моля, обърнете внимание, че цветът и материалът на обекта могат да повлияят на работата на сензора. Има материали, които отразяват по-малко светлина от други. Пример за това са черните предмети, които не са добри отражатели, особено ако повърхността им не е гладка.

За комуникация ще използваме инфрачервен лъч от инфрачервен светодиод, свързан чрез резистор с ниско съпротивление, така че да свети ярко. Като приемник ще използваме фототранзистор, който се "затваря" при липса на IR LED светлина. Компютърният вентилатор ще бъде поставен между IR предавателя и приемника и ще бъде включен. IR приемник, свързан чрез транзисторна верига, ще генерира прекъсвания. За показване на резултата ще се използва Arduino LCDинтерфейс, за да можем да покажем крайната стойност на RPM на LCD дисплея.

LED анод LED катод фототранзистор колектор Фототранзистор емитер. За този проект ще ви трябват следните компоненти. Схемата на свързване изглежда така. Както можете да видите, това е много проста схема. Сензорите с ефект на Хол се използват за откриване на близостта на магнит. Те могат да се използват и като позиционен енкодер, енкодер, детекция на въртене.

Първоначално първото използване на това откритие беше фокусирано върху периодичната класификация. химически елементи. Сензорите с ефект на Хол бяха използвани за измерване на постоянни или статични магнитни полета, но изискваха сензорът да е в движение. Това създаде това, което днес класически наричаме цифров изходен превключвател с ефект на Хол.

елементи:

Дъска за хляб

Тример резистор 5 kΩ

Джъмпери

SIP конектори

2x 2N2222 NPN транзистор

инфрачервен светодиод

Фототранзистор

Резистор 10 ома

Резистор 100 kΩ

Резистор 15 kΩ или 16 kΩ

компютърен вентилатор

Подробен списък с артикули

Всички елементи, използвани в проекта, са изброени по-горе, но ще опиша функциите на основните елементи по-подробно.

Непрекъснатата еволюция на технологията на преобразувателя на Хол с прогресията на едноелементните компоненти в ортогонални двуелементни компоненти. Това беше направено, за да се намали потенциалната разлика на Хол между терминалите. Следващата прогресия доведе до създаването на четириелементни квадратични преобразуватели. Тези 4 елемента са подредени ортогонално в конфигурация на мост. Всички тези силициеви сензори са направени от биполярни съединения.

Това дава възможност да се намали потенциалната разлика на грешката на входа на операционния усилвател. Всички грешки, които възникват в нерегулирани вериги, водят до грешки при превключване или потенциална разлика или грешки на усилването на сензора за линеен изход. Този механизъм елиминира типичните шумови потенциални разлики в полупроводниковите елементи с ефект на Хол. Той също така компенсира температурата и индукциите, причинени от разликите в потенциалните паразити.

Arduino UNO

то ардуино платка, който ще използваме за обработка на импулсите от прекъсването на IR лъча, които показват наличието на перка на компютърен вентилатор между приемника и сензора. Arduino ще използва тези импулси заедно с таймер за изчисляване на RPM на вентилатора.

LCD дисплей 16×2

След като Arduino изчисли RPM, тази стойност ще се покаже на дисплея по удобен за потребителя начин.

Всички тези подобрения водят до надеждни сензори с ефект на Хол. Бъдещето ще види програмируеми сензори за създаване на "интелигентни" сензори. Сензорът за ефект на Хол не се активира, когато няма магнитно полеи се активира в присъствието на магнитно поле, както е показано на следващите две фигури.

Магнитното поле на Земята не влияе на сензора за ефект на Хол. Някои магнити за хладилник могат да осигурят достатъчно магнитно поле за активиране на сензора. Сензорът не е активен при липса на магнитно поле. Следователно нищо не се случва, ако северният полюс на магнита минава пред чувствителната част.

Тример резистор 5 kΩ

Този тример ще се използва за регулиране на контраста на 16x2 LCD. Той осигурява аналогово напрежение в диапазона от 0 до +5V, което ви позволява да регулирате яркостта на LCD.

Инфрачервен светодиод и фототранзистор

Фототранзисторът се отваря, когато върху него попадне мощна инфрачервена светлина. Следователно, когато IR светодиодът е включен, той поддържа фототранзистора отворен, но ако IR светодиодът е покрит, например, от перка на вентилатор, тогава фототранзисторът е затворен.

Сензорът използва издърпващ резистор. Това означава, че когато не е активиран, напрежението на пин 3 на сензора съответства на напрежението на резистора. В противен случай напрежението ще бъде приложено от съпротивлението при издърпване. Ето малък преглед на резултата във видеото.

Ето няколко примера как да внедрите този отличен компонент. Графиката по-долу показва как магнитното поле се променя с разстоянието. На графиката разстоянието е изразено в хилядни от инча. Следователно сензорът се активира. Сензорът е деактивиран.

2N3904 и 2N3906

Тези транзистори се използват за преобразуване на нивото на сигнала, за да осигурят изходни импулси от фототранзистора към Arduino, в които няма напрежения, различни от +0 и +5V.

електрическа схема


На диаграмата LCD комуникационният интерфейс е опростен и има само 2 линии за управление и 4 линии за данни.

Невидимо или запечатано задвижване може да се реализира със сензор с ефект на Хол. Сензорът може да бъде запечатан в контейнери за среда като вода, масло и др. Необходимо е само контейнерът да е пропусклив за магнитното поле.

Магнитно прекъсване на въртенето

Следователно сензорът е активен. На фиг. 5V сензор е неактивен, защото магнитното поле е блокирано от желязна преграда. Сензорът може да се включва като превключвател на скорост на въртене или позициониране. Между двата прозореца металната част блокира магнитното поле, така че сензорът за ефект на Хол е неактивен.

Характеристики на веригата

Интерфейс на LCD дисплей 16×2

2 контролни пина и 4 за пренос на данни са свързани от Arduino към LCD. Това казва на LCD дисплея какво да прави и кога.

Верига за прекъсване на инфрачервения лъч

Сигналът за прекъсване на инфрачервения лъч отива към 2-ри цифров Arduino щифт. Това прекъсва Arduino, позволявайки му да брои импулса и позволява на тахометра да получава данни.

Това е широко приет принцип при стартиране на автомобилни и индустриални процеси, където точното познаване на позицията е критичен елемент. Сензорът за активиране на въртящо се магнитно поле на фиг. 7 обикновено се използва за измерване на скоростта на въртене за синхронизиране на импулсите с позицията. Сензорът се активира чрез завъртане на магнита. Сензорът се деактивира, когато северният полюс на магнита премине пред сензора.

Плътен кръгъл магнит, както е показано на фиг. 7А се нарича магнитен пръстен. Магнитният пръстен съдържа редуващи се северен и южен полюс. Този тип магнит може да има 2 магнитни полюса с 36 магнитни полюса. Графиката по-долу показва транзита между Северния и Южния полюс на различни разстояния.

Arduino LCD библиотека

За този проект ще използваме LCD библиотеката на Arduino. По принцип просто ще актуализираме стойността на RPM на втория ред с новата.

Като подготовка вижте кода по-долу, който използва тази библиотека, за да покаже „Hello, World!“ на LCD дисплея. В тахометъра ще използваме подобен код, особено: "lcd.print(millis()/1000);".

Откриване на ниво - движение

Имайте предвид, че точката на преход наистина е подобна, независимо от разстоянието между сензора и магнита. Над сензора е окачен отделен магнит. Сензорът се активира веднага щом модулът вече не е нивелиран. Сензорът с ефект на Хол може да се използва заедно с електромагнит за осигуряване на високоефективен и изолиран сензор за ток. Това може да се използва за защита на компонентите от повреда, причинена от претоварване.

Единствените необходими компоненти са сензор с ефект на Хол и феритен тороид. Известен също като разходомер, разходомерите обикновено използват сензори с ефект на Хол. Те измерват течни и газови потоци. Последните са високо ценени в средата, казва "експлозивната атмосфера".


Разберете възможно най-подробно функциите на тази LCD библиотека, преди да продължите. Не е прекалено сложно и е добре документирано на уебсайта на Arduino.

Броене на обороти с Arduino

Тъй като ще изчислим RPM на компютърен вентилатор, трябва да разберем, че използваме прекъсване на IR лъч за изчисляване. Това е много удобно, но трябва да вземем предвид, че компютърният вентилатор има 7 перки. Това означава, че 7 прекъсвания се равняват на 1 оборот.

Няма контакт = няма искри = няма експлозии! Можете дори да използвате отблъскващия ефект на втори магнит, за да избегнете използването на пружина. Друго елементарно приложение е откриването на ниво. Както е показано на фигурата по-долу, хидравличната система се движи, докато достигне определена позиция.

Това може да бъде много полезно в приложения от тип робот или точността на позицията е изключително важна. Зъбците на зъбното колело всъщност са среда, в която магнитната проводимост се променя в зависимост от позицията на колелото. Графиката по-долу показва тази промяна в магнитното поле много добре.

Ако проследяваме прекъсвания, трябва да знаем, че всяко седмо прекъсване означава, че току-що е извършено 1 пълно завъртане. Ако следим времето, необходимо за пълен оборот, тогава можем лесно да изчислим RPM.

Време на 1-ви оборот = P * (µS/rev)

RPM = RPM = 60 000 000 * (µS/min) * (1/P) = (60 000 000 / P) * (RPM)

Имайте предвид, че сензорът с ефект на Хол е поставен между зъба и магнита. Сензорите на Хол също могат да се използват за точно откриване и проследяване на въртенето на безчеткови двигатели. Във всички случаи трябва да получите и съгласието на оригиналния притежател на авторските права.

Всички права върху техните материали принадлежат на тях. Импулсният брояч се използва за отчитане на електрическите импулси, идващи от сензорите, т.е. за определяне на сумата на базата на единица време. Сензорите обикновено са моторни тахографи или сензори за положение. Серво в роботи за определяне на маршрут и посока.

За да изчислим RPM, ще използваме формулата по-горе. Формулата е точна и точността зависи от това колко добре Arduino може да следи времето между прекъсванията и да брои броя на пълните обороти.

Монтаж на веригата

На снимката по-долу можете да видите всички необходими части и джъмпери, както е показано на диаграмата.


Броят на импулсите може да се използва за преброяване на хората, влизащи в стая или панаир. Има електромери, които излъчват импулси пропорционално на консумираните ватове. В днешно време водомерите и газомерите могат да имат и импулсни изходи за отчитане на потреблението.

Как работи броячът на импулсите

Има потенциометри с вътрешен въртящ се енкодер за настройка на позицията им. Броят на импулсите може да бъде разделен на поне три основни части. Времевата база може да бъде фиксирана с конкретно време или безвремие. Всеки импулс увеличава брояча, увеличавайки съхраненото число. Когато изтече максималното време за броене, числото се показва на дисплея или друго дисплейно устройство. Броячът и таймерът се нулират и броят входящите импулси.

Първо свържете +5V и LCD линии за данни/контрол. След това LCD, потенциометър за контраст и светодиод за захранване.


Веригата за прекъсване на инфрачервения лъч е сглобена. Опитайте се да поддържате разстояние между IR LED и фототранзистора. Тази снимка показва разстоянието между IR LED и фототранзистора, където ще поставя вентилатора на компютъра.


Стига приказки за хардуер! Нека започнем да правим фърмуер/програма, за да видим как работи устройството!

Софтуерна част

Има две основни части от кода, които са показани и подробно описани по-долу:

Основен цикъл на опресняване на LCD

Актуализация на времето за почивка

В основния цикъл се броят оборотите и актуализациите на LCD. Тъй като основният цикъл е гигантски цикъл while(1), той винаги ще работи, оборотите в минута ще се броят и LCD ще се актуализира няколко пъти в секунда. Функцията в прекъсването отчита времето между IR прекъсванията, така че можете да преброите RPM в главния цикъл.

Не забравяйте, че компютърният вентилатор има 7 перки, така че този оборотомер е проектиран да работи само с такива вентилатори. Ако вашият вентилатор или друго устройство дава само 4 импулса на оборот, променете "(време*4)" в кода.

Ето демонстрационен видеоклип за това как работи оборотомерът.

Двата вентилатора работят на приблизително 3000rpm и 2600rpm, с грешка от около +/-100rpm.

Преглед на тахометър Arduino

Вентилаторът генерира прекъсващи импулси, а на изхода виждаме RPM. Въпреки че точността не е 100%, а около 95%, с цена от $ 10, има смисъл да се изгради този тахометър на Arduino.

И какво е сега?

Системите за прекъсване на лъча са полезни не само за измервания на RPM, но и като други сензори. Например искате да знаете дали една врата е отворена или затворена. Може би искате да знаете дали нещо е минало под робота. Има много приложения за прекъсване на лъча и използваната тук верига е толкова проста, че има много начини за подобряване и изграждане на други невероятни устройства.

Заключение

Като цяло смятам, че този проект е успешен... Но е въпрос на време и опит.Въпреки всичко системата работи по предназначение и е доста надеждна и получихме очаквания резултат. Надявам се да ви е харесало да прочетете тази статия и да научите как да направите свой собствен Arduino тахометър!

Оригинална статия за английски език(превод: Александър Касяновза сайт cxem.net)

Сензор за скорост на въртенеFC -03

Модул за сензор за скорост или линейно движение. Тип модул FC-03. Предназначен е за контрол на механичните параметри на движещи се части на различни механизми за битови и учебни цели. Когато е инсталиран в базовите платформи на малка роботика, той ви позволява да сглобявате системи за управление на двигателя и да установявате контрол върху движението на обект.

Монтаж на сензора за скорост на въртене FC-03 върху шасито на колесния робот.

Характеристики

Захранване 3.3 - 5 V
Широчина на просвета за шлицов диск 5 мм
Размери на модула 38 x 14 x 7 mm
Монтажен отвор за винт 3 мм

КонтактиFC-03



Контактите са маркирани на таблото.

VCC е сила.
GND- общ проводник, отрицателен полюс на мощността.
DO - импулсен изходен сигнал.
AO - директен изход от оптрон ITR9608.

Принцип на действие


Приемащият елемент на модула е оптична двойка ITR9608. Инфрачервен светодиод е разположен в единия ръб на корпуса, насочен към фототранзистор, разположен в друг ръб. Ако в пролуката между издатините се постави непрозрачна плоча, тогава инфрачервеното лъчение от светодиода се блокира и фототранзисторът се затваря. Такъв компонент понякога се нарича фотопрекъсвач, но той само блокира прекъсването. светлинен поток. Както е показано на диаграмата от емитера на транзистора, сигналът влиза във веригата на устройството.

Светлината се блокира от пластина, фиксирана върху подвижната част на управлявания механизъм. С помощта на сензора се определя движението до крайните позиции на движещата се равнина, когато структурният елемент, свързан с него, влезе в сензора. Измерете параметрите на въртене на различни механични части. По този начин механичните параметри се преобразуват в електрически величини и след това в програмни стойности.

Сензорът за скорост на въртене FC-03 се използва за измерване на скоростта на въртене. Не може да се използва за определяне на посоката на въртене. На вала на двигателя или зъбното колело на редуктора е монтиран диск с отвори. Оптрона на модула има слот с ширина 5 мм. Когато дискът се върти, както е показано на анимацията, дупките и секциите на плочата постоянно се редуват в слота. Сензорът преобразува редуването на дисковите елементи в електрически импулси. Електрониката на модула прави сигнала на сензора цифрово разчитаем логически чиповеили микроконтролер.

СхемаFC-03




Сигналът от ITR9608 се подава към входа на компаратора LM393, от неговия изход към щифта D0 и се захранва светодиодният индикатор цифров сигналсъстоящ се от високи и ниски логически нива. Изход A0 се захранва директно от ITR9608 без преобразуване в логически нива. Използването на компаратора LM393 ви позволява да получите гладки ръбове на импулса и леко да увеличите текущото натоварване на изхода на сензора, инсталирайте светодиод във веригата, показващ състоянието на изхода.

Индикация

На платката има 2 светодиода. Единият показва включването на сензора за скорост на въртене FC-03, другият показва липсата на препятствие в сензора. По време на първия пробен пуск и двата светодиода трябва да светят. Когато в свободното пространство на прекъсвача се постави метална пластина, един светодиод трябва да изгасне.

Приложение

С помощта на сензора е възможно да се измерва не само скоростта на въртене, ускорението, но и разстоянието, изминато от колесния робот, както и да се записва изразходваният живот на двигателя. Особено важно е да се контролира скоростта на въртене на колелата, когато всяко колело се задвижва от собствен двигател. За праволинейно движение скоростта на въртене на всички колела трябва да бъде еднаква, докато се въртите, спазвайте алгоритъма на системата за управление.


Докато дискът се върти, известен брой дупки пресичат сензорния процеп за едно завъртане. Като преброите броя на дупките, можете да определите 1 оборот на колелото или например 15,5 оборота. Измервайки броя на оборотите за единица време, получаваме честотата на въртене на колелото, а оттам и скоростта на обекта. Въз основа на сигналите от сензора и имайки точната стойност на времевите интервали, устройството изчислява параметрите на движение. Тук влиза в действие микроконтролерът.
Следната програма Arduino ви позволява да определите броя обороти в минута и извежда резултатите в прозореца на серийния терминал.

#define PIN_DO 2 // Задайте щифт, използван от Arduino
променливи неподписани int импулси;
плаващи обороти в минута;
неподписан дълго времеСтар;
#define HOLES_DISC 15

празен брояч ()
{
варива++;
}

Празна настройка()
{
Serial.begin(9600);
pinMode(PIN_DO, INPUT);
импулси=0;
timeOld = 0;

}

Void loop()
{
if (millis() - timeOld >= 1000)
{
detachInterrupt(digitalPinToInterrupt(PIN_DO));
rpm = (импулси * 60) / (HOLES_DISC);
Сериен println (rpm);

TimeOld = millis();
импулси=0;
attachInterrupt(digitalPinToInterrupt(PIN_DO), counter, FALLING);