Një tahometër është një mjet i dobishëm për të numëruar RPM (rrotullimet në minutë) të një rrote ose çdo gjëje që rrotullohet. Mënyra më e lehtë për të bërë një takometër është të përdorni një transmetues dhe marrës IR. Kur lidhja midis tyre ndërpritet, ju e dini që diçka po rrotullohet dhe mund të përdorni kodin për të llogaritur RPM, bazuar në frekuencën e ndërprerjes së komunikimit.
Në këtë artikull, ne do të shikojmë se si të përdorim një transmetues dhe marrës IR për të bërë një takometër duke përdorur Arduino. Rezultati shfaqet në një ekran LCD 16x2.
Qëllimi i këtij projekti është krijimi i një sistemi me një hyrje dhe një dalje. Në hyrje të pajisjes ka një sinjal që ndryshon nga një nivel i lartë (+5V) në një nivel të ulët (+0V) në rast të dështimit të komunikimit. Sipas këtij sinjali, Arduino do të rrisë vlerën e numëruesit të brendshëm. Pastaj kryhet përpunimi dhe llogaritja shtesë, dhe kur ndërpritet këmbëza, RPM e llogaritur do të shfaqet në LCD.
Për komunikim, ne do të përdorim një rreze IR nga një LED IR i lidhur përmes një rezistence me rezistencë të ulët në mënyrë që të shkëlqejë me shkëlqim. Si marrës, ne do të përdorim një fototransistor, i cili "mbyllet" në mungesë të dritës IR LED. Ventilatori i kompjuterit do të vendoset midis transmetuesit IR dhe marrësit dhe do të ndizet. Një marrës IR i lidhur përmes një qarku transistor do të gjenerojë ndërprerje. Ndërfaqja Arduino LCD do të përdoret për të shfaqur rezultatin, kështu që ne mund të shfaqim vlerën përfundimtare të RPM në LCD.
Elementet:
Tabela e bukës
Rezistenca e prerësit 5 kΩ
Kërcimtarë
Lidhës SIP
2x 2N2222 NPN tranzistor
LED infra të kuqe
Fototransistor
Rezistenca 10 ohm
Rezistenca 100 kΩ
Rezistenca 15 kΩ ose 16 kΩ
tifoz kompjuteri
Lista e detajuar e artikujve
Të gjithë elementët e përdorur në projekt janë renditur më lart, por unë do të përshkruaj funksionet e elementeve kryesore në më shumë detaje.
Arduino UNO
Kjo është bordi Arduino që do të përdorim për të përpunuar pulset e ndërprerjes IR që na tregojnë kur një teh i ventilatorit të kompjuterit është midis marrësit dhe sensorit. Arduino do t'i përdorë këto impulse së bashku me një kohëmatës për të llogaritur RPM-në e ventilatorit.
Ekran LCD 16×2
Pasi Arduino të ketë llogaritur RPM, kjo vlerë do të shfaqet në ekran në një mënyrë miqësore për përdoruesit.
Rezistenca e prerësit 5 kΩ
Ky prerës do të përdoret për të rregulluar kontrastin e LCD-së 16x2. Ai siguron një tension analog në rangun nga 0 deri në +5 V, duke ju lejuar të rregulloni ndriçimin e LCD.
LED infra të kuqe dhe fototransistor
Fototransistori hapet kur drita e fuqishme IR bie mbi të. Prandaj, kur LED IR është i ndezur, ai e mban të hapur fototransistorin, por nëse LED IR mbulohet, për shembull, nga një teh ventilatori, atëherë fototransistori mbyllet.
2N3904 dhe 2N3906
Këta transistorë përdoren për të kthyer nivelin e sinjalit, në mënyrë që të sigurojnë impulset e daljes nga fototransistori në Arduino, në të cilin nuk ka tensione të tjera përveç +0 dhe +5V.
diagrami i qarkut
Në diagram, ndërfaqja e komunikimit LCD është e thjeshtuar dhe ka vetëm 2 linja kontrolli dhe 4 linja të dhënash.
Karakteristikat e qarkut
Ndërfaqja e ekranit LCD 16×2
2 kunja kontrolli dhe 4 për transferimin e të dhënave janë të lidhura nga Arduino në LCD. Kjo është ajo që i tregon LCD-së çfarë të bëjë dhe kur.
Qarku i ndërprerjes së rrezeve IR
Sinjali i prerjes së rrezes IR shkon në pinin e dytë dixhital të Arduino. Kjo ndërpret Arduino, duke e lejuar atë të numërojë pulsin dhe duke lejuar që tach të marrë të dhëna.
Biblioteka Arduino LCD
Për këtë projekt, ne do të përdorim bibliotekën Arduino LCD. Në thelb, ne thjesht do të përditësojmë vlerën e RPM në rreshtin e dytë me atë të re.
Si përgatitje, shikoni kodin më poshtë, i cili përdor këtë bibliotekë për të shfaqur "Hello, World!" në LCD. Në tahometrin, ne do të përdorim kod të ngjashëm, veçanërisht: "lcd.print(millis()/1000);".
Kuptoni funksionet e kësaj biblioteke LCD në sa më shumë detaje që të jetë e mundur përpara se të vazhdoni. Nuk është shumë e komplikuar dhe është e dokumentuar mirë në faqen e internetit të Arduino.
RPM duke numëruar me Arduino
Meqenëse do të llogarisim RPM-në e një tifoz kompjuteri, duhet të kuptojmë se po përdorim një ndërprerje të rrezes IR për të llogaritur. Kjo është shumë e përshtatshme, por duhet të kemi parasysh që tifozi i kompjuterit ka 7 tehe. Kjo do të thotë se 7 ndërprerje janë të barabarta me 1 revolucion.
Nëse gjurmojmë ndërprerjet, duhet të dimë se çdo ndërprerje e shtatë do të thotë se sapo ka ndodhur 1 revolucion i plotë. Nëse mbajmë gjurmët e kohës që duhet për një revolucion të plotë, atëherë mund të llogarisim lehtësisht RPM.
Koha e rrotullimit të parë = P * (µS/rev)
RPM = RPM = 60,000,000 * (µS/min) * (1/P) = (60,000,000 / P) * (RPM)
Për të llogaritur RPM, ne do të përdorim formulën e mësipërme. Formula është e saktë, dhe saktësia varet nga sa mirë Arduino mund të mbajë gjurmët e kohës midis ndërprerjeve dhe të numërojë numrin e rrotullimeve të plota.
Asambleja e qarkut
Në foton më poshtë mund të shihni të gjitha pjesët e nevojshme dhe kërcyesit si në diagram.
Së pari lidhni linjat e të dhënave/kontrollit +5V dhe LCD. Pastaj LCD, potenciometër kontrasti dhe LED i energjisë.
Është montuar qarku për thyerjen e rrezes IR. Mundohuni të mbani një distancë midis LED-it IR dhe fototransistorit. Kjo foto tregon distancën midis LED IR dhe fototransistorit ku do të vendos ventilatorin e kompjuterit.
Mjaft të flasim për harduerin! Le të fillojmë të bëjmë firmware/software për të parë se si funksionon pajisja!
Pjesa e softuerit
Ekzistojnë dy pjesë kryesore të kodit të cilat tregohen dhe detajohen më poshtë:
Cikli kryesor i rifreskimit të LCD-së
Përditësimi i kohës së pushimit
Në ciklin kryesor numërohen revolucionet dhe përditësimet LCD. Meqenëse cikli kryesor është një cikli gjigant while(1), ai do të funksionojë gjithmonë, RPM do të numërohet dhe LCD do të përditësohet disa herë në sekondë. Funksioni në ndërprerje numëron kohën ndërmjet ndërprerjeve IR, kështu që ju mund të numëroni RPM në ciklin kryesor.
Mos harroni se një tifoz kompjuteri ka 7 tehe, kështu që ky takometër është krijuar për të punuar vetëm me tifozë të tillë. Nëse ventilatori ose një pajisje tjetër jep vetëm 4 pulse për rrotullim, ndryshoni "(koha*4)" në kod.
Këtu është një video demo se si funksionon takometri.
Dy tifozët punojnë në rreth 3000 rpm dhe 2600 rpm, me një gabim prej rreth +/-100 rpm.
Përmbledhje e takometrit Arduino
Tifozja gjeneron impulse ndërprerjeje, dhe në dalje shohim RPM. Edhe pse saktësia nuk është 100%, por rreth 95%, me një kosto prej 10 dollarë, ka kuptim të ndërtohet ky tahometër në Arduino.
Pra, çfarë është tani?
Sistemet e ndërprerjes së rrezeve janë të dobishme jo vetëm për matjet e RPM, por edhe si sensorë të tjerë. Për shembull, ju dëshironi të dini nëse një derë është e hapur apo e mbyllur. Ndoshta ju dëshironi të dini nëse diçka shkoi nën robot. Ka shumë aplikime të thyerjes së rrezes, dhe qarku i përdorur këtu është aq i thjeshtë sa ka shumë mënyra për të përmirësuar dhe ndërtuar pajisje të tjera të mahnitshme.
konkluzioni
Në përgjithësi, këtë projekt e konsideroj një sukses… Por është çështje kohe dhe eksperience. Gjithsesi, sistemi funksionon siç është menduar dhe mjaft i besueshëm dhe kemi marrë rezultatin e pritur. Shpresoj që të keni pëlqyer leximin e këtij artikulli dhe të mësoni se si të bëni tahometrin tuaj Arduino!
Artikull origjinal në anglisht (përkthim: Alexander Kasyanov për faqen cxem.net)
Një tahometër është një pajisje që përdoret për të matur numrin e rrotullimeve të një objekti në një interval të caktuar kohor. Zakonisht vlera shprehet në rrotullime për minutë ose rpm. Më parë, takometritë ishin pajisje thjesht mekanike, në të cilat rrotullimi transmetohej në takometër përmes një lidhjeje mekanike (kabllo ose bosht), numri i rrotullimeve në minutë përcaktohej duke përdorur një tren ingranazhi dhe shfaqej në një numërues. Pas ardhjes së elektronikës moderne, takometrat kanë ndryshuar shumë. Ky artikull përshkruan një tahometër dixhital pa kontakt të bazuar në Arduino. Shpejtësia e motorit gjithashtu mund të kontrollohet duke përdorur një qark të ngjashëm. Numri i rrotullimeve në minutë dhe informacione të tjera shfaqen në një ekran me kristal të lëngshëm 16×2. Diagrami i qarkut të takometrit dixhital të bazuar në Arduino është paraqitur më poshtë.
Diagrami i instalimeve elektrike
Sensori i rpm
Një fototransistor infra të kuqe dhe një LED infra të kuqe formojnë një sensor. Një fototransistor infra të kuqe është një lloj fototransistori që i përgjigjet vetëm valëve infra të kuqe. Përdorimi i një fototransistori infra të kuqe shmang ndikimin e ndërhyrjeve të tjera të dritës nga mjedisi. Fototransistori dhe LED infra të kuqe janë rregulluar paralelisht. Rezistenca R2 kufizon rrymën përmes diodës infra të kuqe. Shiriti udhëzues reflektues është ngjitur në një objekt rrotullues (bosht, disk ose ventilator) në linjë me sensorin. Kam përdorur një tifoz ftohës 9V/100mA. Hendeku midis sensorit dhe shiritit udhëzues reflektues nuk duhet të kalojë 1 cm. Kur shiriti udhëzues reflektues kalon përpara sensorit, valët infra të kuqe reflektohen përsëri në fototransistor. Fototransistori përçon më shumë në këtë moment dhe si rezultat tensioni në R3 (rezistenca 68K) rritet me shpejtësi. Rezultati do të jetë një formë vale e treguar më poshtë në emetuesin e fototransistorit. Numri i rrotullimeve në minutë mund të përcaktohet duke llogaritur numrin e pulseve në rritje në një interval kohor të caktuar.
Llogaritja e numrit të rrotullimeve në minutë
Arduino përdoret për të llogaritur vlerën e RPM dhe për të shfaqur këtë vlerë në LCD. Emituesi i fototransistorit është i lidhur me pinin Interrupt 0 (pin dixhital 2) të Arduino. Ndërprerja Arduino është konfiguruar në një skaj në rritje të shkaktuar. Si rezultat, një ndërprerje trajtohet për çdo puls në rritje në formën e valës së emituesit. Numri i ndërprerjeve të marra në një kohë të caktuar llogaritet duke rritur një variabël, me anë të një rutine shërbimi të ndërprerjes. Koha e kaluar gjatë ciklit llogaritës përcaktohet duke përdorur funksionin millis(). Funksioni millis() kthen numrin e miljeve të sekondave që kanë kaluar që kur bordi Arduino është ndezur. Thirrja e funksionit millis() para dhe pas ciklit llogaritës dhe llogaritja e ndryshimit të tyre jep kohën e kaluar gjatë ciklit llogaritës. Vlera (numri i ndërprerjeve/herë për milisekonda)*60000 do të përcaktojë numrin e rrotullimeve në minutë (RPM).
Kontrolli i shpejtësisë së motorit
Një pajisje për kontrollin e shpejtësisë së motorit me një potenciometër është gjithashtu e përfshirë në qark. Transistori Q1 përdoret për të kontrolluar motorin. Baza e saj është e lidhur me pinin PWM 9 të Arduino nëpërmjet një rezistence kufizuese të rrymës R1. Potenciometri i kontrollit të shpejtësisë R4 është i lidhur me pinin analog A0 të Arduino. Tensioni në këtë pin konvertohet në një vlerë midis 0 dhe 1023 duke përdorur funksionin anlogRead. Kjo vlerë më pas ndahet me katër për të marrë midis 0 dhe 255. Kjo vlerë më pas shkruhet në pinin 9 të PWM duke përdorur funksionin anlogWrite. Rezultati është një valë katrore në pinin 9, cikli i funksionimit të së cilës është proporcional me vlerën e shkruar me funksionin analogWrite. Për shembull, nëse vlera është 255, cikli i punës do të jetë 100%, dhe nëse vlera është 127, cikli i punës do të jetë rreth 50%. D1 është një diodë kthimi dhe C1 është një kondensator për anulimin e zhurmës (shkëputës). RPM dhe cikli i punës shfaqen në ekranin LCD duke përdorur bibliotekën standarde LiquidCrystal. Lexoni këtë artikull: Ndërfaqja LCD për Arduino. Kodi i plotë i programit për takometrin dixhital të bazuar në Arduino është paraqitur më poshtë.
Kodi i programit
#përfshi
Shënime
Pllaka Arduino mund të furnizohet me një tension të furnizimit 9V përmes një prize të jashtme të energjisë.
5V e kërkuar për disa komponentë qarku mund të furnizohet nga një furnizim 5V në tabelën Arduino.
Ventilatori i përdorur përdor një tension prej 9V/100mA. Transistori 2N2222 mund të përballojë vetëm rrymë deri në 800 mA. Mbani në mend këtë kur zgjidhni një ngarkesë.
Ekrani me kristal të lëngshëm i përdorur është JHD162A.
Potenciometri R5 mund të përdoret për të rregulluar kontrastin LCD. Kur lidhet, asgjë nuk do të shfaqet në ekran. Rregulloni R5 derisa të shfaqet një imazh në ekran. Tensioni optimal në rrëshqitësin e potenciometrit R5 është në intervalin nga 0.4 në 1V.
Fototransistori infra të kuqe dhe dioda infra të kuqe u hoqën nga moduli i ndërprerjes së fotografisë LTH-1550.
Sipërfaqja anësore e fototransistorit duhet të mbulohet me shirit elektrik.
Pozicioni i sensorit tregohet në figurën më poshtë.
Një tahometër është një pajisje që përdoret për të matur shpejtësinë e rrotullimit të një objekti mekanik, siç është një rrotë. Tahometrit përdoren gjerësisht në automobila. Në mesin e radio amatorëve, ajo ka gjetur aplikim në robotikë, falë së cilës është e mundur të matet shpejtësia e një roboti me rrota. Takometrat në përgjithësi kanë një shumëllojshmëri përdorimesh, duke përfshirë matjen e shpejtësisë së motorëve DC për të siguruar që ata të funksionojnë sipas specifikimeve.
Tahometri është një pajisje mjaft e thjeshtë në thelb, kështu që lehtë mund ta bëni vetë bazuar në Arduino.
Për të bërë një tahometër me duart tona, do të na duhet të konvertojmë shpejtësinë e rrotullimit në një formë të lexueshme nga njeriu. E vetmja formë që Arduino mund të lexojë është voltazhi elektrik. Dihet mirë se nëse në motor aplikohet tension, atëherë ky motor do të fillojë të rrotullohet dhe me të do të rrotullohet edhe rrota (nëse është e lidhur me boshtin e motorit), shpejtësia e të cilit përcaktohet nga madhësia e tensionit të aplikuar. Sidoqoftë, e kundërta është gjithashtu e vërtetë: nëse e rrotullojmë vetë motorin, mund të marrim tension në të dy skajet e terminaleve të këtij motori. Ky tension mund të aplikohet në Arduino dhe Arduino do të jetë në gjendje të llogarisë shpejtësinë e rrotullimit në varësi të asaj se sa tension është aplikuar në motorin e dhënë.
Më poshtë është një diagram instalime elektrike për elementët e një tahometri të bërë në shtëpi bazuar në Arduino. Motori këtu është i lidhur me një rezistencë dhe një LED. Rezistenca përdoret për të parandaluar gjenerimin e rrymës së tepërt, e cila normalisht do të dëmtonte Arduino. LED përdoret për të treguar që motori po funksionon dhe gjithashtu për të parandaluar rrjedhën e kundërt të rrymës. Për të shfaqur shpejtësinë në këtë rast, përdoret një tregues njëshifror me shtatë segmente dhe një regjistër i mikroqarqeve IC7447 përdoret për të kontrolluar këtë tregues.
Sapo motori të fillojë të rrotullohet, një tension pozitiv do të dërgohet në hyrjen analoge të Arduino. Arduino do ta shndërrojë këtë tension në një kod dixhital. Meqenëse ne përdorim një ekran me shtatë segmente, mund të kemi 10 vlera, domethënë nga një vlerë prej 0 në 9. Mund të programojmë Arduino të ndajë vlerën analoge që merr me 9 ndarje, gjë që do të japë daljen e dëshiruar nga 0 deri në 9. Më poshtë është kodi për funksionimin e një tahometri të bërë vetë në Arduino.
intval=0; intbinVal; void setup() ( Serial.begin(9600); // konfigurimi i portës serike pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(A2,INPUT ); ) void loop() ( val = analogRead(A2); // lexo hyrjen analoge (tensioni nga motori) Serial.println(val); // vlera e korrigjimit binVal=val/1024*9; switch(binVal)(rasti 0: dixhitalWrite (3, LOW); DigitalWrite (4, LOW); DigitalWrite (5, LOW); DigitalWrite (6, LOW); pushim; rasti 1: digitalWrite (3, LOW); DigitalWrite (4, LOW); dixhitalWrite (5, LOW); dixhitalWrite (6, LOW); pushim; rasti 2: dixhitalWrite (3, LOW); DigitalWrite (4, LOW); DigitalWrite (5, LOW); dixhitalWrite (6, LOW); pushim; rasti 3 : dixhitalWrite (3, LOW); dixhitalWrite (4, LOW); dixhitalWrite (5, LOW); dixhitalWrite (6, LOW); pushim; rasti 4: dixhitalWrite (3, LOW); dixhitalWrite (4, LOW); dixhitalWrite ( 5, LARTË); dixhitalWrite (6, LOW); pushim; rasti 5: dixhitalWrite (3, LARTË); DigitalWrite (4, LOW); dixhitalWrite (5, LARTË); DigitalWrite (6, LOW); pushim; rasti 6: digitalWrite(3,LOW);digitalWrite(4,HIGH);DixhitalWrite(5,HIGH); digitalWrite(6,LOW); pushim; rasti 7: DigitalWrite(3,HIGH); DigitalWrite (4, LARTË); DigitalWrite (5, LARTË); digitalWrite(6,LOW); pushim; rasti 8: DigitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); DigitalWrite (6, LARTË); pushim; rasti 9: DigitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); DigitalWrite (6, LARTË); pushim; default: break; ) )
Takometri i montuar duke përdorur një sensor të linjës është i lehtë për t'u lidhur. Nuk keni nevojë të bëni ndryshime strukturore në pjesën, shpejtësia e rrotullimit të së cilës dëshironi të matni: shponi vrima, bëni prerje, instaloni elementë shtesë, etj. Mjafton të vendosni një vijë të kundërta mbi të (e zezë në një sipërfaqe të lehtë ose të bardhë në një të errët) dhe të sillni sensorin e linjës, menjëherë do të merrni një rezultat të saktë, numrin e rrotullimeve në minutë. Skica nuk ka nevojë të rregullohet, pavarësisht se çfarë ngjyre është vija.
Do të na duhen:
Për të zbatuar projektin, duhet të instalojmë bibliotekën:
- Biblioteka iarduino_4LED (për të punuar me një tregues LED me katër shifra).
Si të instaloni bibliotekat, mund ta gjeni në faqen Wiki - Instalimi i bibliotekave në Arduino IDE.
Video:
Diagrami i lidhjes:
Treguesi LED është i lidhur me çdo dy kunja Arduino (si dixhitale ashtu edhe analoge), numrat tregohen në skicë. Sensori i linjës është i lidhur me çdo hyrje analoge, numri tregohet në skicë.
Në këtë mësim, treguesi LED është i lidhur me kunjat dixhitale 2 dhe 3, dhe sensori i linjës është i lidhur me hyrjen analoge A0.
Algoritmi i punës:
- Dalja e informacionit në treguesin LED kryhet vetëm në momentin e kalimit të sensorit të linjës nga një fushë e lehtë në një fushë të errët.
- Në rreshtin e parë të funksionit të lakut, kontrollojmë nëse sensori i linjës është në një fushë të errët, nëse po, atëherë ...
- Ne shfaqim numrin e rrotullimeve në minutë në treguesin LED (nëse tejmbushja e millisit nuk është fiksuar) dhe kursejmë kohën e tranzicionit
- Ne ekzekutojmë ciklin while derisa sensori i linjës të largohet nga fusha e errët. Për shkak të kësaj, operacioni i mëparshëm kryhet vetëm 1 herë, gjatë gjithë kohës që sensori është në fushën e errët.
- Nëse sensori është në një fushë të errët ose të lehtë për më shumë se 6 sekonda, atëherë ne shfaqim mbishkrimin "STOP" (këto rreshta mund të hiqen nëse numri i rrotullimeve të pajisjes suaj është nën 10 në minutë).
Kodi i programit:
#përfshiNjë tahometër është një mjet i dobishëm për të numëruar RPM (rrotullimet në minutë) të një rrote ose çdo gjëje që rrotullohet. Mënyra më e lehtë për të bërë një takometër është të përdorni një transmetues dhe marrës IR. Kur lidhja midis tyre ndërpritet, ju e dini që diçka po rrotullohet dhe mund të përdorni kodin për të llogaritur RPM, bazuar në frekuencën e ndërprerjes së komunikimit.
Në këtë artikull, ne do të shikojmë se si të përdorim një transmetues dhe marrës IR për të bërë një takometër duke përdorur Arduino. Rezultati shfaqet në një ekran LCD 16x2.
Qëllimi i këtij projekti është krijimi i një sistemi me një hyrje dhe një dalje. Në hyrje të pajisjes ka një sinjal që ndryshon nga një nivel i lartë (+5V) në një nivel të ulët (+0V) në rast të dështimit të komunikimit. Sipas këtij sinjali, Arduino do të rrisë vlerën e numëruesit të brendshëm. Pastaj kryhet përpunimi dhe llogaritja shtesë, dhe kur ndërpritet këmbëza, RPM e llogaritur do të shfaqet në LCD.
Për komunikim, ne do të përdorim një rreze IR nga një LED IR i lidhur përmes një rezistence me rezistencë të ulët në mënyrë që të shkëlqejë me shkëlqim. Si marrës, ne do të përdorim një fototransistor, i cili "mbyllet" në mungesë të dritës IR LED. Ventilatori i kompjuterit do të vendoset midis transmetuesit IR dhe marrësit dhe do të ndizet. Një marrës IR i lidhur përmes një qarku transistor do të gjenerojë ndërprerje. Ndërfaqja Arduino LCD do të përdoret për të shfaqur rezultatin, kështu që ne mund të shfaqim vlerën përfundimtare të RPM në LCD.
Elementet:
Arduino UNO
LCD 16x2
Tabela e bukës
Rezistenca e prerësit 5 kΩ
Kërcimtarë
Lidhës SIP
2x 2N2222 NPN tranzistor
LED infra të kuqe
Fototransistor
Rezistenca 10 ohm
Rezistenca 100 kΩ
Rezistenca 15 kΩ ose 16 kΩ
tifoz kompjuteri
Lista e detajuar e artikujve
Të gjithë elementët e përdorur në projekt janë renditur më lart, por unë do të përshkruaj funksionet e elementeve kryesore në më shumë detaje.
Arduino UNO
Kjo është bordi Arduino që do të përdorim për të përpunuar pulset e ndërprerjes IR që na tregojnë kur një teh i ventilatorit të kompjuterit është midis marrësit dhe sensorit. Arduino do t'i përdorë këto impulse së bashku me një kohëmatës për të llogaritur RPM-në e ventilatorit.
Ekran LCD 16x2
Pasi Arduino të ketë llogaritur RPM, kjo vlerë do të shfaqet në ekran në një mënyrë miqësore për përdoruesit.
Rezistenca e prerësit 5 kΩ
Ky prerës do të përdoret për të rregulluar kontrastin e LCD-së 16x2. Ai siguron një tension analog në rangun nga 0 deri në +5 V, duke ju lejuar të rregulloni ndriçimin e LCD.
LED infra të kuqe dhe fototransistor
Fototransistori hapet kur drita e fuqishme IR bie mbi të. Prandaj, kur LED IR është i ndezur, ai e mban të hapur fototransistorin, por nëse LED IR mbulohet, për shembull, nga një teh ventilatori, atëherë fototransistori mbyllet.
2N3904 dhe 2N3906
Këta transistorë përdoren për të kthyer nivelin e sinjalit, në mënyrë që të sigurojnë impulset e daljes nga fototransistori në Arduino, në të cilin nuk ka tensione të tjera përveç +0 dhe +5V.
diagrami i qarkut
Në diagram, ndërfaqja e komunikimit LCD është e thjeshtuar dhe ka vetëm 2 linja kontrolli dhe 4 linja të dhënash.
Karakteristikat e qarkut
Ndërfaqja e ekranit LCD 16x2
2 kunja kontrolli dhe 4 për transferimin e të dhënave janë të lidhura nga Arduino në LCD. Kjo është ajo që i tregon LCD-së çfarë të bëjë dhe kur.
Qarku i ndërprerjes së rrezeve IR
Sinjali i prerjes së rrezes IR shkon në pinin e dytë dixhital të Arduino. Kjo ndërpret Arduino, duke e lejuar atë të numërojë pulsin dhe duke lejuar që tach të marrë të dhëna.
Biblioteka Arduino LCD
Për këtë projekt, ne do të përdorim bibliotekën Arduino LCD. Në thelb, ne thjesht do të përditësojmë vlerën e RPM në rreshtin e dytë me atë të re.
Si përgatitje, shikoni kodin më poshtë, i cili përdor këtë bibliotekë për të shfaqur "Hello, World!" në LCD. Në tahometrin, ne do të përdorim kod të ngjashëm, veçanërisht: "lcd.print(millis()/1000);".
Kuptoni funksionet e kësaj biblioteke LCD në sa më shumë detaje që të jetë e mundur përpara se të vazhdoni. Nuk është shumë e komplikuar dhe është e dokumentuar mirë në faqen e internetit të Arduino.
RPM duke numëruar me Arduino
Meqenëse do të llogarisim RPM-në e një tifoz kompjuteri, duhet të kuptojmë se po përdorim një ndërprerje të rrezes IR për të llogaritur. Kjo është shumë e përshtatshme, por duhet të kemi parasysh që tifozi i kompjuterit ka 7 tehe. Kjo do të thotë se 7 ndërprerje janë të barabarta me 1 revolucion.
Nëse gjurmojmë ndërprerjet, duhet të dimë se çdo ndërprerje e shtatë do të thotë se sapo ka ndodhur 1 revolucion i plotë. Nëse mbajmë gjurmët e kohës që duhet për një revolucion të plotë, atëherë mund të llogarisim lehtësisht RPM.
Koha e rrotullimit të parë = P * (µS/rev)
RPM = RPM = 60,000,000 * (µS/min) * (1/P) = (60,000,000 / P) * (RPM)
Për të llogaritur RPM, ne do të përdorim formulën e mësipërme. Formula është e saktë, dhe saktësia varet nga sa mirë Arduino mund të mbajë gjurmët e kohës midis ndërprerjeve dhe të numërojë numrin e rrotullimeve të plota.
Në foton më poshtë mund të shihni të gjitha pjesët e nevojshme dhe kërcyesit si në diagram.
Së pari lidhni linjat e të dhënave/kontrollit +5V dhe LCD. Pastaj LCD, potenciometër kontrasti dhe LED i energjisë.
Është montuar qarku për thyerjen e rrezes IR. Mundohuni të mbani një distancë midis LED-it IR dhe fototransistorit. Kjo foto tregon distancën midis LED IR dhe fototransistorit ku do të vendos ventilatorin e kompjuterit.
Mjaft të flasim për harduerin! Le të fillojmë të bëjmë firmware/software për të parë se si funksionon pajisja!
Pjesa e softuerit
Ekzistojnë dy pjesë kryesore të kodit të cilat tregohen dhe detajohen më poshtë:
-Cikli kryesor i rifreskimit të LCD-së
- Përditësoni kohët e ndërprerjeve
Në ciklin kryesor numërohen revolucionet dhe përditësimet LCD. Meqenëse cikli kryesor është një cikli gjigant while(1), ai do të funksionojë gjithmonë, RPM do të numërohet dhe LCD do të përditësohet disa herë në sekondë. Funksioni në ndërprerje numëron kohën ndërmjet ndërprerjeve IR, kështu që ju mund të numëroni RPM në ciklin kryesor.
Mos harroni se një tifoz kompjuteri ka 7 tehe, kështu që ky takometër është krijuar për të punuar vetëm me tifozë të tillë. Nëse ventilatori ose një pajisje tjetër jep vetëm 4 pulse për rrotullim, ndryshoni "(koha*4)" në kod.
Dy tifozët punojnë në rreth 3000 rpm dhe 2600 rpm, me një gabim prej rreth +/-100 rpm.
Përmbledhje e takometrit Arduino
Tifozja gjeneron impulse ndërprerjeje, dhe në dalje shohim RPM. Edhe pse saktësia nuk është 100%, por rreth 95%, me një kosto prej 10 dollarë, ka kuptim të ndërtohet ky tahometër në Arduino.
Pra, çfarë është tani?
Sistemet e ndërprerjes së rrezeve janë të dobishme jo vetëm për matjet e RPM, por edhe si sensorë të tjerë. Për shembull, ju dëshironi të dini nëse një derë është e hapur apo e mbyllur. Ndoshta ju dëshironi të dini nëse diçka shkoi nën robot. Ka shumë aplikime të thyerjes së rrezes, dhe qarku i përdorur këtu është aq i thjeshtë sa ka shumë mënyra për të përmirësuar dhe ndërtuar pajisje të tjera të mahnitshme.
konkluzioni
Në përgjithësi, këtë projekt e konsideroj një sukses... Por është çështje kohe dhe eksperience. Gjithsesi, sistemi funksionon siç është menduar dhe mjaft i besueshëm dhe kemi marrë rezultatin e pritur. Shpresoj që të keni pëlqyer leximin e këtij artikulli dhe të mësoni se si të bëni tahometrin tuaj Arduino!
Lista e elementeve të radios
Emërtimi | Lloji | Emërtimi | sasi | shënim | Dyqan | blloku im i shënimeve |
---|---|---|---|---|---|---|
Pllaka Arduino | Arduino Uno | 1 | Në bllokun e shënimeve | |||
T2, T3 | tranzistor bipolar | 2N2222 | 2 | 2N3904 dhe 2N3906 | Në bllokun e shënimeve | |
R1 | Rezistencë | 10 ohm | 1 | Në bllokun e shënimeve | ||
R2 | Rezistencë | 100 kOhm | 1 | Në bllokun e shënimeve | ||
R3 | Rezistencë | 16 kOhm | 1 |