djvas Postat Decembrie 10, 2015 Partajează Postat Decembrie 10, 2015 Mda... Oricum am impresia ca ne batem gura degeaba aici. Solutia aleasa din start este proasta. Link spre comentariu
MifTy Postat Decembrie 10, 2015 Partajează Postat Decembrie 10, 2015 depinde cat de fidel vrei sa faci masuratoarea. cel mai corect si rapid ar fi cu un uC, mai ales ca nu cred sa fie linear senzorul ala. depinde deci de factorii de mai sus. daca e linear si cateva rezistente cred ca te ajuta, cu conditia unei surse bine stabilizate. poate să fie şi quadrilogaritmic: un voltmetru numeric tot nivelele de tensiune asociate presiunii o să "vadă" la ieşirea lui. mcu s-ar justifica doar pentru "compensarea offsetului" de juma de volt asociată cu valoarea de 0 MPa, dar asta se poate face şi analogic, cu un voltmetru numeric chior. iar dacă neliniaritatea e asociată cu temperatura la care lucrează senzorul ăla... nu prea ai ce face. adică nici cu un soft stufos nu ai să "liniarizezi" indicaţiile alea... da fapt, ai putea încerca să găseşti un senzor cât mai "indiferent" la variaţiile de temperatură... Link spre comentariu
theborg Postat Decembrie 10, 2015 Autor Partajează Postat Decembrie 10, 2015 Ok, atunci incercam cu uC si afisaj 1602. Am incercat la un moment dat cu arduino insa cred ca m-am cam incurcat pe la divizor si prin programare si cum nu prea am gasit sa intreb pe cineva in romana am renuntat...asta pana am dat de voi Link spre comentariu
UDAR Postat Decembrie 10, 2015 Partajează Postat Decembrie 10, 2015 (editat) Problema se poate rezolva cel mai bine cu µC - s-a spus deja . Dacă însă nu se dorește acest lucru un amplificator diferențial calculat corespunzător , cu o referință de tensiune decentă ( poate fi și tensiunea de alimentare dacă e corect stabilizată și filtrată ) poate translata domeniul de intrare 0,5....4.5 sau cât se dorește , în domeniul de ieșire 0...2,5 sau cât o avea voltmetrul ăla la intrare . Voltmetrul ăla se poate modifica relativ ușor , trecerea de la 2 la 3 fire e banală iar domeniul de intrare se modifica din divizor . Singura problemă este că trebuie respectat capătul de scară original , adică , dacă voltmetrul indica pînă la 300 ( să zicem că era de 0 - 30V cum sunt foarte multe pe eBay ) atunci va fi modificat pentru 0-3Mpa . Evident că orice încercare de liniarizare sau de compensare cu temperatura ( dacă e cazul ) va fi foarte complicată pe această schemă simplă. EDIT Văd că între timp OP s-a decis pentru µC . Foarte bine. Editat Decembrie 10, 2015 de UDAR Link spre comentariu
theborg Postat Decembrie 10, 2015 Autor Partajează Postat Decembrie 10, 2015 In ceea ce priveste liniaritatea privind temperatura, pe domeniul de temperatura urmarit de mine se pare ca se mentine marja. Acum daca, chinezii nu or respecta ce scrie in documentatie e partea a 2-a... Link spre comentariu
Vizitator Postat Decembrie 10, 2015 Partajează Postat Decembrie 10, 2015 (editat) cu uC nu ai de ce sa mai faci divizor. eventual un zener de 5v1 ptr siguranta. intri direct cu cei 4.5V direct in ADC, si in Arduino de exemplu poti folosi map() si constrain(). rezultatul il afiszi pe LCD. daca nu te descurci iti pot scrie codul, cu conditia sa imi dai schema ta electronica la care te-ai gandit.daca folosesti un 1602 cu i2c, te descurci si cu attiny85.daca nu ai deja un programator, mai bine alegi arduino nano sau mini cu ftdi pe placa. Editat Decembrie 10, 2015 de Vizitator Link spre comentariu
rlodina Postat Decembrie 10, 2015 Partajează Postat Decembrie 10, 2015 (editat) cu uC nu ai de ce sa mai faci divizor. ... si in Arduino de exemplu poti folosi map() si constrain(). rezultatul il afiszi pe LCD. Nu sunt sigur daca poti aplica aici functia map sau reduce (cred ca ar fi ok daca dreapta ar avea panta de 45%) Cel mai simplu este din ecuatia dreptei: (x-x1)/(x2 - x1) = (y-y1)/(y2-y1) Coordonatele primului punct : x1=0 MPa , y1=0.5V Coordonatele celui de-al 2-lea punct : x2=1.2 Mpa, y2= 4.5V Axa x presiunea, axa y tensiunea Inlocuind in formula: P = (1.2 * U - 0.6) / 4; asta daca n-am gresit la calcule U - tensiunea masurata la bornele traductorului Editat Decembrie 10, 2015 de rlodina Link spre comentariu
theborg Postat Decembrie 11, 2015 Autor Partajează Postat Decembrie 11, 2015 (editat) Am Arduino UNO R3, modul LCD 1602, Keypad Shield LCD1602 si UNO Ethernet Shield W5100 R3. Pe partea de programare, eu ca farmacist de profesie ma limitez doar la a "fura" coduri facute de altii si a le aplica, eventual a face mici modificari prin ele. Pe cea de electronica, mai stiu cate ceva, tar tot asa furata de la tatal meu si limitata in tinerete la reparat televizoare si casetofoane pe la prieteni. Ca si schema electronica, nu e cine stie ce: alimentez senzorul la 5v iar iesirea o trimit direct in Arduino UNO care trebuie sa-mi afiseze presiunea in plaja interesata de mine intre 0 si 3 bar de preferat cu 2 zecimale dar nu cu precizie de 0,01 ci o precizie de 0,05 fiind arhisuficienta. Editat Decembrie 11, 2015 de theborg Link spre comentariu
theborg Postat Decembrie 11, 2015 Autor Partajează Postat Decembrie 11, 2015 (editat) Pentru inceput am gasit un voltmetru 0-5v cu precizie de 50mV dar problema ca fara sa-i aplic vreo tensiune intre A0 si masa indica oscilant cand 0.00 cand diverse valori aleatorii. Am incercat cu un condensator de 100nF intre A0 si masa dar nimic. http://www.circuitstoday.com/voltmeter-using-arduino Later edit: Nu mai oscileaza daca pun condensatorul intre A0 si masa (la prima incercare il puneam intre A0 si o masa imaginara din capul meu ) dar se pare ca acum se incarca condensatorul si imi creste valoarea intr-una cu cate 1mV. Sa pun o rezistenta intre A0 si masa? Editat Decembrie 11, 2015 de theborg Link spre comentariu
djvas Postat Decembrie 11, 2015 Partajează Postat Decembrie 11, 2015 Daca pui Intarea A0 la masa mai indica oscilant ? Daca nu atunci voltmetrul functioneaza Link spre comentariu
theborg Postat Decembrie 11, 2015 Autor Partajează Postat Decembrie 11, 2015 (editat) Nu mai oscileaza daca pun condensatorul intre A0 si masa (la prima incercare il puneam intre A0 si o masa imaginara din capul meu ) dar se pare ca acum se incarca condensatorul si imi creste valoarea intr-una cu cate 10mV. Sa pun o rezistenta intre A0 si masa? Editat Decembrie 11, 2015 de theborg Link spre comentariu
djvas Postat Decembrie 11, 2015 Partajează Postat Decembrie 11, 2015 Condensatorul nu prea ar avea de unde sa se incarce .... Ai testat cu intrarea A0 la masa ? E 0.00 stabil asha ? De ce nu incerci direct cu senzorul ? Link spre comentariu
theborg Postat Decembrie 11, 2015 Autor Partajează Postat Decembrie 11, 2015 Cu intrarea A0 la masa e stabil 0.00 si cu senzorul conectat, intr-adevar nu mai oscileaza, arata 0.56-0.57, cat arata si multimetrul conectat pe iesirea senzorului, deci se pare ca e ok. Acum ramane sa modific codul astfel incat sa-mi arate presiunea corespondenta voltajului si aici va cer inca o data ajutorul. Link spre comentariu
Vizitator Postat Decembrie 11, 2015 Partajează Postat Decembrie 11, 2015 (editat) Vezi postul #22. E cel mai bun raspuns. Iti mai ramane sa "citesti" tensiunea din soft, dar ai multe exemple pentru asta. void citescSenzor(){/* Prima data calibrezi bine de tot tensiunea citita pe A0 sa corespunda cu 0,5V..4.5V in soft.*/int RawADC = analogRead(A0);float U = RawADC * (5.0 / 1023.0); // 5.0 poate fi 4.98 e tensiunea sursei uC//Serial.print("RawADC"); Serial.println(RawADC); Serial.print("tTensiune:"); Serial.println(U);/*Apoi convertesti*/float P;P = (1.2 * U - 0.6) / 4;/* Si afisezi in consola, deocamdata */Serial.print("Presiune:"); Serial.println(P); /* Poti incerca si varianta cu fmap()*/ P = fmap(U,0.5,4.5,0.0,1.2); Serial.print("Presiune2:"); Serial.println(P); }/* fmap e o functie putin modificata */ float fmap(double x, double in_min, double in_max, double out_min, double out_max){ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;} nota: pe pc asta nu am arduino ide, deci daca nu se compileaza poate am gresit ceva minor prin codul asta. ar fi bine sa faci o medie la tensiunea citita. Editat Decembrie 11, 2015 de Vizitator Link spre comentariu
MifTy Postat Decembrie 11, 2015 Partajează Postat Decembrie 11, 2015 ... Aw Genetix, îmi arăţi şi mie cum conectezi o magistrală I2C DIRECT la pinii unui afişaj LCD tip 1602 FĂRĂ să îl ai conectat la nici un alt mcu sau controller suplimentar???asta pentru că din câte am conspectat eu datasheeturile "compatibilelor HD47xxx", n-am citit nimic despre asta... ontopic: văd că datele problemei deja ies din raza mea de competenţă, aşa că nu mai zic nimic: abia încep şi eu să învăţ cu ce se papă arduino...dar asta nu înseamnă că arduino nu mi se pare în continuare altceva decât o fiţă inutilă!!! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum