Tahometru auto cu display LCD pe PIC16F628. Tahometru digital pe microcontroler PIC16F628

Aceasta nu a fost ideea mea. Un prieten tocmai mi-a cerut să vin cu un dispozitiv care să poată număra rotațiile arborelui motor fără fire, pentru a regla echipamentul diesel. Și pentru a-l putea folosi oriunde.

După ce am stat și m-am gândit, am venit cu următoarele:

Principiul de funcționare este simplu: pornim LED-ul IR, iar fotodioda primește reflexia. Numărăm timpul dintre recepțiile semnalului, îl convertim în rotații pe minut și îl afișăm pe ecran. Sursa de alimentare înseamnă alimentată cu baterie.

În general, nu o voi face trage pisica... :)

La acea vreme aveam un microcontroler ca acesta - PIC16F88. Asta s-a intamplat.

Diagrama dispozitivului:

Nu m-am deranjat cu senzorul de semnal IR. Deși, dacă se dorea, era posibil (și pentru curioși, asta ar putea servi drept stimulent pentru îmbunătățirea J) să conecteze un senzor TSOP1736 în locul unei fotodiode (pe care, de fapt, o aveam pe stoc la momentul respectiv). În principiu, îl puteți furniza cu 36 kHz de la un generator asamblat pe un cronometru 555. Puteți porni generatorul doar cu un semnal care aprinde LED-ul IR. Așa este... Mai mult, am făcut astfel de experimente. Când lumina de 36 kHz a fost aplicată la TSOP, ieșirea sa a fost de 5 volți. Când fasciculul luminos a fost închis, ieșirea TSOP a fost resetata la zero. Dar, din moment ce sarcina era să asamblam un dispozitiv autonom cu un consum minim, am considerat că este o risipă să cheltuiesc energie pe un senzor și un generator. În plus, distanța până la obiectul măsurat nu a fost deosebit de critică. Chiar și un centimetru distanță era bine. În general, așa a ieșit.

Alimentarea LCD este direct de la portul PIC, la fel ca și sursa de alimentare LM358, pentru a reduce consumul de energie în modul de repaus.

Din pacate nu a mai ramas nicio placa live a primului prototip :(. Era o placa fara amplificare a semnalului de la fotodetector. Semnalul mergea direct la MK.

Placa arăta astfel:

Deoarece nivelul semnalului de la fotodetector nu a fost întotdeauna suficient pentru microcontroler, a fost necesară completarea circuitului. Am construit un amplificator folosind LM358. Acum circuitul arată exact așa cum arată.

După ce a selectat carcasa și a adaptat placa la aceasta, acest dispozitiv frumos a fost asamblat:


Principiul de funcționare este următorul:

Un marcaj este aplicat obiectului studiat folosind un corector obișnuit de birou. Aproximativ 5-7 mm în diametru. Sau este lipită o etichetă de hârtie albă.

Când alimentarea este pornită pentru prima dată, PIC-ul începe să numere durata perioadei dintre impulsuri, care, reflectate de etichetă, ajung la fotodetector. . Dacă nu există impulsuri timp de aproximativ 4 secunde, citirea este resetată la zero. Dacă nu există impulsuri timp de aproximativ 20 de secunde, dispozitivul intră în modul de consum redus. Indicatorul se stinge. Pentru următoarea măsurare trebuie să apăsați butonul conectat la portul RB0. iar dispozitivul „se trezește”. Ciclul începe din nou.

Precizia citirilor este excelentă, dar nu pe întreaga gamă. La viteze mari, citirile „plutesc”, dar doar ușor și nu critic.

Singurul dezavantaj al acestui dispozitiv este raza sa nu foarte mare. Cam un centimetru. Dar acest lucru poate fi rezolvat, așa cum am scris mai sus, folosind un fotodetector precum TSOP1736 sau TSOP1738 și un generator pe un cronometru 555. În acest caz, nu este nevoie de LM358.

Încă o precizare - materialul obiectului studiat trebuie să fie întunecat.

Arhiva cu fișierul proteus și sursa este aici.

Apropo, am găsit un vechi cod sursă care implementează principiul numărării impulsurilor folosind un modul de captură, dar indicatorul este LED. Dar nu este dificil să-l refaci pentru LCD, va fi mai ușor

Acest circuitul tahometrului pe un microcontroler servește la măsurarea numărului de rotații ale oricărui motor cu ardere internă. Indicația se face pe un indicator LED din patru cifre, precizia măsurării este de 50 rpm.

Descrierea funcționării turometrului pe microcontrolerul PIC16F628

După aplicarea tensiunii de alimentare, turometrul digital începe imediat să verifice numărul de rotații. Butonul „SELECT” selectează unul dintre cele nouă moduri de măsurare a vitezei, în funcție de tipul de senzor al vehiculului.

Prima apăsare a butonului „SELECT” va afișa valoarea curentă a numărului de impulsuri pe care senzorul le produce pe rotație a volantului. Setat inițial la 2 impulsuri pe rotație. În consecință, indicatorul va afișa P-2.0. Fiecare apăsare ulterioară a „SELECT” va parcurge toate valorile disponibile (0,5; 1; 2; 3; 4; 5; 6; 7; 8 impulsuri/revoluție)

După finalizarea selecției valorii pulsului cerute, după aproximativ 5 secunde, tahometrul o va aminti în memoria microcontrolerului PIC16F628 și va intra în modul de funcționare pentru măsurarea rotațiilor. Data viitoare când porniți turometrul, nu mai este necesar să setați din nou impulsurile.

Pentru o funcționare precisă a tahometrului digital, este necesar să se acorde atenție designului circuitului de intrare. Pentru fiecare sistem de aprindere individual (în funcție de marca mașinii), poate fi necesară ajustarea evaluărilor, astfel încât turometrul să nu reacționeze la armonici mai mari și să reacționeze ferm la cel principal.

În versiunea actualizată de firmware (tacho_univ_new), a fost adăugată o funcție de testare a indicatorului de 2 secunde pentru a identifica posibila lor defecțiune.

Un turometru este un dispozitiv care vă permite să măsurați viteza de rotație (viteza de rotație) a unui mecanism (arbore, rotor, disc motor). Unitatea de măsură pentru viteza de rotație este de obicei rotațiile pe minut. Metoda tradițională de măsurare a vitezei de rotație se bazează pe implementarea feedback-ului vitezei: se folosește un generator de curent continuu, care este conectat la mecanismul de rotație în așa fel încât tensiunea indusă la bornele generatorului să fie proporțională cu viteza de rotație a arborele.

În acest articol ne vom uita la designul unui tahometru bazat pe un microcontroler PIC care nu are contact fizic cu partea rotativă a mecanismului pentru a măsura viteza de rotație a acestuia. Această tehnică se bazează pe o metodă optică pentru determinarea vitezei de rotație, care necesită utilizarea unui LED cu infraroșu împreună cu o fotodiodă.

Baza dispozitivului în cazul nostru este o placă de dezvoltare compactă produsă de companie.

Tahometrul vă permite să măsurați viteze de rotație de până la 99960 rpm cu o rezoluție de 60 rpm. Rezultatul este afișat pe un indicator LCD cu două linii.

Placa de depanare StartUSB pentru PIC se bazează pe un microcontroler Microcip cu suport pentru interfața USB 2.0. În plus, placa are plăci de contact cu semnale de linie de intrare/ieșire ale microcontrolerului, precum și o zonă pentru prototipare și conectarea dispozitivelor suplimentare. Pe baza acestei plăci pot fi dezvoltate dispozitive de achiziție de date USB, dispozitive de comunicare și playere mp3 USB.

O caracteristică distinctivă a plăcii StartUSB pentru PIC este că microcontrolerul instalat pe placă are un bootloader USB preinstalat, ceea ce elimină necesitatea utilizării unui programator suplimentar. În plus, compania oferă un program gratuit de încărcare USB pentru un computer personal, cu ajutorul căruia utilizatorul poate programa cu ușurință microcontrolerul. De asemenea, este furnizat un bootloader USB pentru microcontroler (firmware).

Cu metoda optică de determinare a vitezei de rotație, un LED infraroșu transmite impulsuri IR, iar o fotodiodă captează semnalul reflectat. Dacă suprafața părții rotative este întunecată și rugoasă, semnalul reflectat va fi neglijabil, așa că folosim o bucată de hârtie albă lipită pe partea rotativă. Dacă întreaga suprafață a piesei este strălucitoare și reflectorizant, atunci trebuie să utilizați o bucată de hârtie întunecată, astfel încât o parte din radiația IR să fie absorbită în timpul unei revoluții complete. În orice caz, vom primi un impuls la ieșirea circuitului de conversie și potrivire a semnalului pentru fiecare rotație completă a părții rotative.

Schema schematică a senzorului IR și a circuitului de potrivire a semnalului de la fotodiodă

Diagrama arată că dacă la pinul IR Tx apare un nivel ridicat, tranzistorul (npn) care controlează LED-ul IR se va deschide. Semnalul reflectat intră în fotodiodă în circuitul de conversie a semnalului și de potrivire a impulsurilor normalizate pentru numărare de către microcontroler sunt preluate din colectorul tranzitoriu (pnp). În condiții normale, rezistența fotodiodei este mare și tranzistorul este întotdeauna oprit. Ieșirea circuitului (colector de tranzistori) este trasă la masă. Dacă semnalul IR reflectat cade pe fotodiodă, rezistența acesteia scade și tranzistorul se deschide, prin urmare apare un nivel ridicat la ieșire.

În continuare, vom analiza conectarea senzorului și a indicatorului LCD la microcontroler, punctele principale în configurația temporizatorului încorporat al microcontrolerului pentru a rezolva problema noastră, precum și designul turometrului.

Ce este oricum turometru? Un turometru este un dispozitiv folosit pentru a măsura RPM (rotații pe minut) ale oricărui corp în rotație. Tahometrele sunt realizate pe bază de contact sau fără contact. Tahometrele optice fără contact folosesc de obicei un laser sau un fascicul infraroșu pentru a monitoriza rotația oricărui corp. Acest lucru se face prin calcularea timpului necesar pentru o rotație. În acest material, preluat de pe un site englezesc, vă vom arăta cum să realizați un tahometru optic digital portabil folosind Arduino Uno. Să luăm în considerare o versiune extinsă a dispozitivului cu un afișaj LCD și un cod modificat.

Circuitul tahometru pe un microcontroler

Lista de piese schematică

  • Microcircuit - Arduino
  • Rezistoare - 33k, 270 ohmi, potențiometru 10k
  • Element LED - albastru
  • LED IR și fotodiodă
  • Ecran LCD 16 x 2
  • registru de deplasare 74HC595

Aici, în locul unui senzor cu slot, se folosește unul optic - reflectarea fasciculului. În acest fel, nu trebuie să-și facă griji cu privire la grosimea rotorului, numărul de lame nu va schimba citirea și poate citi rotațiile tamburului - ceea ce senzorul cu fantă nu poate.

Deci, în primul rând, veți avea nevoie de un LED care emite IR și o fotodiodă pentru senzor. Modul de asamblare este prezentat în instrucțiuni pas cu pas. Faceți clic pe fotografie pentru a mări dimensiunea.

  • 1. Mai întâi trebuie să șlefuiți LED-ul și fotodioda pentru a le face plate.
  • 2. Apoi îndoiți fâșia de hârtie așa cum se arată în imagine. Faceți două astfel de structuri astfel încât LED-ul și fotodioda să se potrivească strâns în el. Conectați-le împreună cu lipici și vopsiți-le în negru.
  • 3. Introduceți LED-ul și fotodioda.
  • 4. Lipiți-le împreună cu superglue și lipiți firele.

Valorile rezistoarelor pot varia în funcție de fotodioda pe care o utilizați. Potențiometrul ajută la reducerea sau creșterea sensibilității senzorului. Lipiți firele senzorului așa cum se arată în figură.

Circuitul turometrului folosește un registru de deplasare 74HC595 pe 8 biți cu un afișaj LCD 16x2. Faceți o mică gaură în carcasă pentru a fixa indicatorul LED.

Lipiți un rezistor de 270 ohmi pe LED și introduceți-l în pinul 12 al Arduino. Senzorul este introdus într-un tub cubic pentru a oferi rezistență mecanică suplimentară.

Gata, aparatul este pregătit pentru calibrare și programare. Puteți descărca programul de pe acest link.

Video cu un turometru de casă care funcționează


Dispozitiv de securitate de înaltă tensiune - arici electric. Astăzi vom continua discuțiile despre structurile necesare pentru a ne proteja casa. Dispozitivul pe care îl vom lua în considerare acum este destinat protejării unui apartament, birou, cabană și mașină. Aparatul se numește arici electric de înaltă tensiune!

Acest tahometru digital este potrivit pentru a număra rotațiile aproape oricărui tip de motor cu ardere internă. Eroarea de măsurare a tahometrului este de doar 50 de rotații/minut. Pentru afișarea rezultatului este utilizat un afișaj LED cu patru cifre.
Pentru a configura modul de operare, trebuie să utilizați butonul „Selectați”. Prima apăsare afișează modul de funcționare curent pe afișaj. Modul de funcționare implicit este al treilea, când senzorul produce două impulsuri pe rotație a volantului. În consecință, pe afișaj va apărea inscripția P-2.0.

Fiecare apăsare ulterioară a butonului comută modul de funcționare al turometrului la următorul. Sunt nouă în total: 0,5, 1, 2, 3, 4, 5, 6, 7, 8 impulsuri/revoluție, respectiv, stabilesc numărul de impulsuri emise de senzor pe o rotație a volantului. Cu cât numărul de impulsuri este mai mare, cu atât măsurarea este mai precisă.

După selectarea modului de funcționare, trebuie să așteptați 5-10 secunde. În acest timp, turometrul va înregistra modul de funcționare în memoria microcontrolerului și va intra în modul de funcționare. În viitor, turometrul va trece imediat în modul de funcționare când este aplicată alimentarea. Dacă este nevoie să reconfigurați turometrul, atunci trebuie să apăsați butonul „Selectați” și să configurați din nou turometrul.

Merită să acordați atenție parametrilor și designului circuitului de intrare. Pentru un anumit tip de aprindere, sunt posibile unele ajustări ale cotelor, datorită diferitelor dispozitive de aprindere în diferite tipuri de mașini. Acest lucru este necesar pentru ca turometrul să funcționeze bine cu armonicile fundamentale și să nu reacționeze la armonicile superioare. Fără o astfel de reglare, funcționarea precisă a turometrului este imposibilă.

Versiunea actualizată de firmware include o funcție pentru verificarea indicatorilor. Acest lucru este necesar pentru a efectua un test de două secunde pentru a identifica defecțiunile senzorului.

Fișiere atașate:

Firmware

Amplificator monobloc simplu bazat pe TDA1560Q Sursă de alimentare fără accelerație pentru automobile bazată pe IRS2153 pentru laptopuri și telefoane mobile Conector USB extern în radioul auto