Cel mai simplu altimetru barometric bazat pe Arduino

Salutări colegi!
pentru că vreme de iarna nu este, în general de zbor, atunci există o mulțime de timp liber, ceea ce nu este un lucru rău pentru a fi angajat în ceva la creier de la uscarea de la lene. Recent am decis să învețe subiectul holivarov feroce și dezbateri aprinse, și anume: microcontrolerul ATmega328 în punerea în aplicare a Arduino.
Ferm vă întreb despre cel mai Arduino, dezbaterile nu sunt fericit despre toate argumentele pro și contra și așa în rețeaua de informații în vrac.
Deci, având în vedere specificitatea site-ului, despre „casa inteligentă“ pentru a spune, cred că nu este destul de în subiect, astfel încât pe baza Arduino va construi un altimetru barometric, cu trei cifre de șapte segmente LED.

Cel mai simplu altimetru barometric bazat pe Arduino

Mai mult?

Principalul avantaj al acestui dispozitiv - prețul său. Chiar și pe viața prezentă și rata de schimb poate satisface 350R. că, în general, nu bani. Doar nevoie de mâini directe și de calificare, cu un ciocan de lipit.

funcţii:
- Măsurarea altitudinea curentă și de ieșire-l la afișajul cu LED-uri.
- Amintindu-și înălțimea maximă a care a avut loc de la putere.
- Concluzie înălțimea maximă a ecranului prin apăsarea unui buton.
- Se înregistrează înălțimea maximă a controlerului de memorie nevolatilă (EEPROM) (reținute după ce alimentarea este oprită).
- Citirea înălțimea maximă stocată din EEPROM și afișează pe ecran.

Punctul de referință zero, adoptat de înălțimea la care dispozitivul a fost pornit alimentarea.

Ceea ce este necesar (în cuvintele cheie de căutare paranteze în tot felul ebayah etc.)
- microcontroler Arduino, în principiu, aproape orice adecvat dacă daptirovat cod, dar colectează și să verifice toate pe baza (Arduino Nano).

Cel mai simplu altimetru barometric bazat pe Arduino

- senzor de înălțime barometric cu I2C bus (BMP085).
Cel mai simplu altimetru barometric bazat pe Arduino

- format din trei cifre cu șapte segmente LED cu un anod comun (7-Segment Display LED).
Cel mai simplu altimetru barometric bazat pe Arduino

- fire pentru a conecta toate într-o singură unitate, am folosit de asamblare gata făcute, dar nu este necesar (Dupont Wire).
Cel mai simplu altimetru barometric bazat pe Arduino

- Butonul se potrivi cu orice poziție de moment (Tactul comutator Push Button). De exemplu, astfel:
Cel mai simplu altimetru barometric bazat pe Arduino

- rezistor de la 1K la 10k.
- trei 100 ohmi rezistor.
- lipit cu toate gobulyami și capacitatea de a utiliza.
- Arduino Software.

opțional:
- prototipuri bord pentru afișare de lipit.

Pentru cei care nu sunt în subiect. Înainte de a încerca să asambleze dispozitivul și pentru a înțelege codul foarte recomanda o vizită și a verifica afară câteva resurse:
Introducere la un exemplu simplu.
Cum să conectați afișajul șapte segmente cu exemple.
Descrierea senzorului, exemple, biblioteci.
nu ia o mulțime de timp, de înțelegere se va adăuga mult =)

În primul rând, un pic despre afișaj.
Șapte segmente de afișare cu LED-uri cu anod comun este doar un astfel de ansamblu a LED-urilor (în imagine, încercuită în roșu):

Cel mai simplu altimetru barometric bazat pe Arduino

Dacă aruncăm o privire mai atentă la diagramă, devine clar că acesta poate ilumina simultan doar unul dintre biți, adică, pentru a afișa un număr de trei cifre, trebuie să porniți lumina și stinge fiecare cifră și să o facă foarte repede. Prin urmare, numerele oricum vor clipi, atâta timp cât a fost pâlpâitoare destul de frecventă și nu este percepută de ochi ca flicker. Acest lucru înseamnă că Arduino va rula inclusiv controlor al ecranului, fapt trasarea unei linii pe figura este numărul egal cu altitudinea curentă.
Doar a face o rezervare, vă puteți cumpăra o soluție gata preparată, cu controler integrat, dar costa de 5 ori mai scumpe, și nu am ajuns într-o punere în aplicare adecvată a căutării, cum este de 3 biți, și în vânzarea de mai 4 biți.
Prin modul în care, având în vedere că afișajul cu trei cifre, înălțimea maximă de care el este capabil să afișeze = 999m. În principiu, dispozitivul poate fi adaptat cu ușurință la un ecran de 4 cifre, dar în același timp, programul va trebui să fie ușor modificate. Cine va înțelege codul de 3 cifre care se poate adapta cu ușurință pentru 4.
Ca urmare, în ciuda problemelor ieșit la suprafață cu acest cele mai sclipitoare, a reușit să mai mult sau mai puțin rezultate plăcute, a se vedea mai jos, deoarece probleme au apărut din cauza senzorului de înălțime.
Mai multe informații despre senzor.
senzor barometric, și anume, determină modificarea înălțimii de schimbare a presiunii atmosferice. De fapt, senzorul măsoară doar presiunea atmosferică, se calculează înălțimea în funcție de presiune a fost făcut pentru biblioteca pentru codul senzorului. În care senzorul are un ADC și I2C interfață integrată, adică emite valoarea măsurată este deja în formă digitală, care cu siguranță este un plus. Pentru a lucra cu senzor există un bibliotka gata. Am folosit-o prima versiune, este mai puțin consumatoare de resurse și mai ușor construit în codul. Biblioteca funcțională vă permite să reglați acuratețea măsurătorilor pe o scară de la 0 - cel mai mic granularitatea, până la 3 - (. a se vedea codul) cea mai mare precizie. Cu toate ca sa fiu sincer nu am observat diferența specială dintre nivelurile este mai mare decât 0. Eroarea de măsurare este de aproximativ 1 metru, în general, este destul de acceptabil. Rezultatul măsurătorii - această altitudine deasupra nivelului mării, la presiune atmosferică normală. Dar acest lucru este destul de interesant. Pe de altă parte, folosind Arduino și operații matematice simple este ușor să se calculeze înălțimea relativă care a fost făcut.
Dar nu fără o muscă în unguent: studiul senzorului folosind o funcție standard este destul de o lungă perioadă de timp, și având în vedere faptul că controlerul Arduino, și chiar de afișare cu șapte segmente, sa dovedit efecte speciale destul de amuzant, și anume în timpul interogatoriului ieșirii senzorului pentru afișajul în sine oprit și, prin urmare, cifra care a fost afișat la momentul respectiv a ars un pic mai mult decât altele. Rezultatul este acest tip ghirlanda de trei elemente.
În cele din urmă se joace cu întârzieri și alegerea cea mai bună perioadă a senzorului de studiu capabil să realizeze lipsa aproape completă de flicker. Mai ales pentru că în fiecare ciclu de interogare a senzorului de program nu au nevoie de înălțime încă schimba cu viteză limitată. Dar, mai întâi melteshenie categorie din cauza erorilor și prea frecvente senzor de sondaje nu arata frumos.
În principiu, dacă am avut abilitatea brusc, ai putea rescrie biblioteca senzor, dar nu este încă gata. Și într-o astfel de punere în aplicare, aceasta este funcția lor poartă, restul versurilor.
Cifrele de ieșire a fost transferat să-și întrerupă flicker eliminată, schița este actualizat.
În această scurtă digresiune pe elementele dispozitivului și poate merge mai departe pentru a termina ansamblul.

Conectarea dispozitivului de conducere a elementelor (clickable):

Cel mai simplu altimetru barometric bazat pe Arduino

Anticipând întrebări dintr-o serie de „ceea ce schema normală nu a putut trage?!“ Aș spune că ar fi, dar pentru neinițiați, o alegere de picioare în condiții de siguranță cred că va fi mai ușor de înțeles, și dedicat toate la fel, și circuitul astfel încât este citit este normal. Pinout semisegmentnika găsit versiune numai patru cifre, versiunea cu trei cifre este diferit de picior a 6 lipsa banală.

Cel mai simplu altimetru barometric bazat pe Arduino

Cartușe care furnizează dispozitive: Arduino intacte în mod normal, în măsură să supraviețuiască de la 7B la 16B, în cazuri extreme, de la 6V la 20V. Dar, având în vedere că am avut o clonă din China, experimente mârșave nu pariu, dar bateria LiPo 3S funcționează fără probleme.
Pachetul senzorului este de dorit, astfel încât aerul avut acces liber, dar a preveni curenții de aer directe suflare găuri în senzor, de exemplu, să-l acopere porollonom.
Cu bord Arduino I recomandăm eliminarea LED-uri RX și TX, ca acestea sunt incluse parallellno 0 și 1 ieșire digitală, datorită căreia segmentele conectate la aceste terminale vor lumina cu luminozitate mai mică.

Interfața:
Deci, ce că întreaga interfață - un singur buton și trei caractere. Descrie încă nevoie =)
Dacă apăsați și mențineți apăsat butonul, afișajul indică altitudinea maximă înregistrată de putere-up.
Dacă continuați să țineți apăsat butonul timp de 2 secunde, ecranul va afișa înălțimea înregistrată în EEPROM.
Dacă continuați să țineți apăsat butonul timp de 4 secunde, înălțimea maximă și litera „S“ se aprinde intermitent pe ecran va fi înregistrată în EEPROM, care este de fapt numărul „5“ =)
Apoi țineți butonul nu are nici un sens, poți da drumul.
Înălțimea negativă nu este afișată, deoarece minus trage nicăieri, așa că, în acest caz, pe ecran se afișează cele trei litere „L“.
Schița actualizat. Înălțimea negativă este ieșire la primii doi biți, adică, Valoarea minimă de -99.
În cazul în care înălțimea este mai mare de 999 de metri, afișajul arată trei linii orizontale. Aparatul continuă să funcționeze. Dar trebuie să ținem cont de faptul că, atunci când încercați să aducă înălțimea maximă de cheia achiziționată, vom obține aceleași bare de pe ecran.
E slit un singur lucru: există o înregistrare în octetul EEPROM, număr care este, într-o singură celulă poate fi scrisă nu este mai mare decât 255. Pe de o parte, a fost posibil să se realizeze împărțirea în bytes, scrie octeți, și de lectură pentru a lipi înapoi. Pe de altă parte, având în vedere că valoarea maximă a 999, este mai ușor, așa cum m-am gândit înainte de înregistrare pentru a împărți înălțimea valorii la 4, iar când citirea înregistrată multiplicate cu 4 înainte de afișarea pe ecran. În concluzie, cu o înălțime maximă de eroare senzor după ce a scris \ citirea din EEPROM se poate afla între 5 m pe care am găsit acceptabil.
Schița updated implementat de intrare-octet în serie, astfel încât înălțimea este înregistrată ca acesta este și recuperează din memorie este aceeași.

Am de gând să folosiți dispozitivul pe pepelats FPV școală pentru a seta strangulare OSD Toad, iar acest lucru este foarte posibil să fie plasate în câmpul vizual al camerei. În teorie, în aceeași unitate poate fi construit în senzorul de tensiune a bateriei și a comuta de ieșire pentru a afișa unul sau celălalt parametru folosind canalul RU, dar nu a existat nici un deranj, iar pentru aceasta am voltmetru separat.

Unele fotografii:
Pinii sunt sudate, nu toate, ci numai cele care vor fi utilizate. În acest caz, folosind îndoit și le-a pus pe ambele părți ale consiliului.

Cel mai simplu altimetru barometric bazat pe Arduino
Cel mai simplu altimetru barometric bazat pe Arduino

Display-ul este lipit pe maketke, nu-mi place să otrăvească bord, și leneș =)
Cel mai simplu altimetru barometric bazat pe Arduino
Cel mai simplu altimetru barometric bazat pe Arduino

Când conectați afișajul nu uitați despre rezistențe de limitare a curentului!

Am adunat toate taitei într-o grămadă.

Cel mai simplu altimetru barometric bazat pe Arduino
Cel mai simplu altimetru barometric bazat pe Arduino

Am împachetat.
Cel mai simplu altimetru barometric bazat pe Arduino

Vedere de ansamblu.
Cel mai simplu altimetru barometric bazat pe Arduino

În ceea ce privește executarea de proiectare: face în conformitate cu aplicația specifică, iar în cazul meu, aceste clustere fidea justificate, deoarece este mai convenabil la locul de muncă pepelats.
Dacă faci ca un singur dispozitiv și nu este nevoie de a pune pe ecran în câmpul camerei, atunci acesta poate fi ambalate în orice caz, cu un număr minim de fire ieșită, principalul lucru nu este de a închide carcasa este sigilat.

greutate de asamblare în jurul valorii de 20g.

Verificarea dispozitivului de echitatie cu liftul 12 etaje, arată destul de adecvat.

Asta e tot. Vă mulțumesc pentru atenție! Încă o dată, un nivel ridicat de critici, feedback-ul și sugestiile sunt binevenite!

postul meu anterior:

Se încarcă comentarii. Vă rugăm să așteptați.

Vă mulțumesc Eugene pentru proiect, vreau să adune la sine un astfel de altimetru. au început componente Iskaliev dat peste senzor BMP280 (care este aproape de două ori mai ieftin și stabalnee semenii lor), sub govoryad este necesar să se rescrie schița. Din moment ce eu sunt încă nou la această afacere, nu pot decât să repet proiectul finit. Am vrut să vă întreb, puteți ajuta?

Cel mai simplu altimetru barometric bazat pe Arduino

Au nevoie de o schiță pentru display, combinat cu schița senzorului, deoarece înălțimea de afișare pe porturile IR com,
afișare nu funcționează. Mai mult decât atât cere ca pentru a lega memoria cu înălțimile de cartografiere.
Vreau să setați altimetrul pe modelul corpul aeronavei. Planorul este de zbor, dar am vrut să știu înălțimea
el ajunge
cu sinceritate

Cel mai simplu altimetru barometric bazat pe Arduino

Asta este, mi-ai oferit o schiță pentru tine de a scrie?
Concluzie privind Comporta ar trebui să aibă nici un efect asupra afișajul informațiilor. schita mea în acest plan funcționează bine.
Pentru a memora înălțimea maximă a memoriei nu trebuie să fie legată de afișarea aceeași înălțime, este necesar să se lucreze cu citirile senzorilor. În scriere de memorie non-volatilă este în valoare de citirile maxime de senzori pentru toate timpurile a dispozitivului, comparându-le cu curent.
Judecând după întrebări, vă recomand să faceți mai întâi o concluzie la afișarea de informații statice. Dacă această problemă nu apare - să se deplaseze mai departe în direcția ieșirii dinamice.

Dragă Eugene încerca să repete altimetru, dar au dificultăți de conectare a afișajului și memoria.
Eu lucrez cu BMP senzor 180 pe monitorul afișează o înălțime corectă, am cere să ofere oportunități
informații de ajutor pe schiță.
cu sinceritate

Cel mai simplu altimetru barometric bazat pe Arduino

Narrow că dificultatea?

Disppley - este frumos, dar în FIG nu nevoie de model. Ar fi interesant fără ea, dar cu o înălțime de date de scriere la un micro SD cu citire ulterioară. pentru a obține un adevărat altimetru scris.

Cel mai simplu altimetru barometric bazat pe Arduino

"patrioți" Nu există obstacole (c) =)
Pentru mine, ca un dispozitiv complet stupid. Ce, apoi stând la înălțime placa de acasă \ timp pentru a construi? Și de ce?

Pentru a lansa un complet de neînlocuit. Și dacă schimbăm cheile mosfetovskih la o anumită înălțime - astfel încât toate computerul normal la bord.

Cel mai simplu altimetru barometric bazat pe Arduino