[LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Tutaj umieszczamy tematy związane z językami programowania niepasującymi do innych działów.
Regulamin forum
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

[LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » sobota 21 sty 2017, 00:42

Dobry (wieczór)

Osiągnąwszy etap jak mawiam - zjadania własnego ogona - postanowiłam się podzielić tym co jest zrobione w temacie LM35, AD2 i LV, liczę po cichu, że kogoś jeszcze to natchnie...
No i jeżeli komuś akurat brakuje termometru za oknem, tym bardziej zapraszam do lektury.

Wymagane oprogramowanie:
LabVIEW 2014 Home Bundle
sterowniki NI-VISA (dla porządku)
WaveForms 2015

zainstalowane managerem pakietów pliki digilent_waveforms_vis-1.0.3.26.bmp,spec,vip objawiają się w formie nowych paletek i klocków w Measurement I/O -> Digilent WF VIs

teraz podłączamy dwa LM35-ki w/g schematu jak niżej, można offest zapewnić też dwoma diodami prostowniczymi i zrezygnować z ujemnego zasilania, to jak kto lubi (mi z diodami coś słabo działało :( może wtedy +4V za mało było? )
zrzut ekranu39.png


potem pracowicie można przerysować tę radosną plątaninę z obrazka, ewentualnie skorzystać z załączonego ad2-lm35-dwa-kanaly.vi
zrzut ekranu36.png


problem jest tylko taki, że weryfikacja pomiarów z użyciem WaveForms wypada słabo, bardziej jednak wierzę WF i termometrowi za oknem niż LV

zrzut ekranu37.png


jest różnica jakieś ~2 stopnie w odczytach i nijak póki co nie wiem, gdzie mam błąd, temat jest jak widać rozwojowy, ale to na jutro, ze świeżą głową...

no i oczywiście - wszystko co powyżej to jeden wielki radosny eksperyment i materiał do dalszych przeróbek :roll: proszę nie traktować tego jako gotowca ...

pozdrawiam,
tasza

#slowanawiatr #palcemnawodzie
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony czwartek 23 lut 2017, 12:18 przez tasza, łącznie zmieniany 1 raz.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: SuperGość » sobota 21 sty 2017, 06:32

Witaj tasza, Ciebie tu brakowało :)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: SuperGość » sobota 21 sty 2017, 07:14

Nie mam lm bo bym to sprawdził. Na razie i tak nie mam czasu to gdzieś kupię lm Ale pewnie do tego czasu to rozgryziesz.

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » sobota 21 sty 2017, 13:23

Off Topic
wojtek pisze:Witaj tasza, Ciebie tu brakowało

Ja również i dziękuje . . . stare kąty zbyt się zmieniły, a ja z tych niedostosowanych jestem, więc tu szukam sobie nowego miejsca, zobaczymy jak się poukłada . . .


No helloł, ale jak to ?!
____as2-zrzut ekranu41.png

Szybki test na WaveForms i luźnym multimetrze - w trybie oscyloskopu AD2 pokazuje w okolicach 225mV (drobne fluktuacje wynikają z macania paluchami LM-ki), multimetr pokazuje 226 mV, co przy zakresie pomiarowym 2V wydaje się być wiarygodne (choć to dół zakresu) no ale koleżka woltomierz z AD2 to chyba ma problem jakiś . . .
Tak, mam z tyłu głowy uwagę Wojtka o skalibrowaniu tego puzderka (czego w sumie do tej pory nie uczyniłam), nie zmienia to faktu że skoro woltomierz i oscyloskop są exclusive to znaczy (w/g mnie przynajmniej) że współdzielą przetwornik A/C i wszelkiej maści napięcia referencyjne, no tak na logikę, co nie? A tu zaskoczka. Oscyloskop jakby go nie ustawiać pokazuje wartości bliższe prawdy, a woltomierz - odpływa jakoś.
Następny test po pełnej procedurze kalibracji, ciekawe co wyjdzie...
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: SuperGość » sobota 21 sty 2017, 13:31

No ciekawe, (ale skalibruj mimo wszystko) kurcze nawet nie mam jak teraz pomóc zweryfikować ale jest tu na forum chyba ze trzech kolesi co mają też AD2 - może dołączą tu do tematu.

W sumie na multimetrze brakuje tych 20 mV co widać je na pierwszym kanale :D

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » sobota 21 sty 2017, 13:41

Heh, póki co stan jest taki, że woltomierz niedomaga na 20mV i to konsekwentnie na obu kanałach mso/1 i mso/2, a oscyloskopik pokazuje w miarę ok (o jeden, dwa mV nie będę robić scen), pomijając kalibrację (czy raczej jej brak) - zadziwia mnie to szczerze.
No dobra, wieczorkiem będę miała (bożkowie celtyccy trzymajcie kciuki) porządny woltomierz laboratoryjny, to się skalibrujemy, no trudno, niech stracę.

W między czasie zaczęłam rozgryzać to ichnie SDK, bo można sobie programik w c/cpp samodzielnie napisać, aby np. wykonał odczyty z AD2, to też chcę przećwiczyć, zawsze to jakaś weryfikacja dla tych kolorowych LabVIEW-owych okienek, surowe dane na konsoli tekstowej też mogą być ciekawe....
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » sobota 21 sty 2017, 13:49

rezasurmar pisze:Szumy mogą zrobić swoje mimo że na pierwszy rzut oka ich nie widać na przebiegu mogą mieć wpływ na pomiar.

Tak racja i to miałoby uzasadnienie w przypadku czujnika za oknem (około metr przewodu i "trudne środowisko" /dwa monitory, router wifi, CA80 bez obudowy i inne klamoty na biurku/) ale te pomiary są z czujnika na płytce stykowej, dosłownie przy AD2. Oj, kalibracja ....

Jeżeli masz AD2 - zmierz choćby baterię 1.5V woltomierzem i oscylkiem - ciekawam co wyjdzie....
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: SuperGość » sobota 21 sty 2017, 13:54

:arrow: tasza zerknij jeszcze tu https://www.youtube.com/watch?v=Va1lURqbmew coś tam nawija o woltomierzu w AD2

Awatar użytkownika
j23
Expert
Expert
Posty: 506
Rejestracja: czwartek 08 paź 2015, 18:40

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: j23 » sobota 21 sty 2017, 16:59

Witajcie Koleżanki i Koledzy,

U siebie (tzn. zwykły czujnik temperatury zbudowany w oparciu o LM35 i standardowy wyświetlacz HD44780) stosowałem napięcie zasilające VCC = 5V dla LM35. Być może stąd bierze się błąd pomiaru. Układ niestety mam już dawno zdemontowany, ale spróbuję znaleźć dokumentację jak to miałem dokładnie podłączone, bo gdzieś powinna być. Pamiętam, że też trochę męczyłem się z wyskalowaniem tego czujnika.

Edit1:
Znalazłem. Przy okazji przepraszam za taki badziewny schemat, ale widocznie wtedy kiedy to robiłem nie miałem dostępu do igla ;)
schemat.jpg


Kod z głównego pliku źródłowego (daruję sobie umieszczanie kodu bibliotek do HD44780):

Kod: Zaznacz cały

#include <avr/io.h>
#include <util/delay.h>
#include "hd44780.h"

uint16_t pomiar_temp(uint8_t kanalik); // deklaracja funkcji
char pomiar_temp_str[7];
uint16_t wynik_pomiaru;
uint16_t temp_check=120;

int main(void)
{
   lcd_init();   
   
   // ---------------- Inicjalizacja konwertera Analogowo-Cyfrowego -  START ADC ---------------
      // napięcie odniesienia czujnika LM35 jako VCC = 5V poprowadzone przez dławik
      ADMUX |= (1<<REFS0);

      // włączenie ADC i ustawienie preskalera na 64 (1000000/64=15625kHz
      ADCSRA |= (1<<ADEN)|(1<<ADPS1)|(1<<ADPS0);
   // ---------------- Inicjalizacja konwertera Analogowo-Cyfrowego -  END ADC  ---------------
   
   while(1)
      {   
      wynik_pomiaru=pomiar_temp(0)/2; // wynik pomiaru za pomocą LM35
      lcd_clrscr();
      lcd_goto(0);      
      lcd_puts("Temp = ");
      lcd_puts(itoa(wynik_pomiaru, (char *) pomiar_temp_str, 10));
      lcd_puts(" st.C");
      _delay_ms(1000);   
      }
}

uint16_t pomiar_temp(uint8_t kanalik)
{
   ADMUX = (ADMUX & 0xF8) | kanalik;
   ADCSRA |= (1<<ADSC);
   while (ADCSRA & (1<<ADSC));
   return ADCW;
}


Acha.. To był jeden z moich bardzo, bardzo wczesnych projektów do mierzenia temperatury. Potem zawsze stosowałem DS18B20 z uwagi na to, że LM35 mierzy z dokładnością tylko do 0,5 stopnia, natomiast DS18B20 potrafi mierzyć z dokładnością do 0,05-0,1 stopnia.

Pozdrawiam! j23
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC

Awatar użytkownika
acid3
User
User
Posty: 466
Rejestracja: czwartek 03 wrz 2015, 22:42
Lokalizacja: Kłopoty-Stanisławy
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: acid3 » sobota 21 sty 2017, 17:25

:arrow: j23 prośba taka mała ... nie edytuj postów znacząco zmieniając ich treść, po prostu pisz kolejny post, będzie to czytelniejsze.

j23 pisze:Znalazłem. Przy okazji przepraszam za taki badziewny schemat, ale widocznie wtedy kiedy to robiłem nie miałem dostępu do igla
nikomu tu nie będziemy mówić jakiego programu ma używać do rysowania schematów ;) wystarczy, że jest czytelny i można zobaczyć co autor chce przekazać.

Awatar użytkownika
j23
Expert
Expert
Posty: 506
Rejestracja: czwartek 08 paź 2015, 18:40

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: j23 » sobota 21 sty 2017, 18:44

Acha, ta cewka 10[uH] na zasilaniu LM35 jest ważna z uwagi na stabilizację napięcia, co może (chociaż co ja tam wiem) mieć wpływ na dokładność pomiaru.
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » sobota 21 sty 2017, 22:20

No dzięki za wszelkie wypowiedzi, w sumie to materiał do przemyśleń się zebrał i jest tak:
kalibrację AD2 rzeczywiście warto zrobić, po takim zabiegu wyniki nie są już tak dramatycznie rozjechane, choć idealne też nie są....
o ile pomiar napięc rzędu setek mV jest w miarę ok, to pojedyncze mV to jednak balansowanie na krawędzi, albo sygnał się wzmocni, albo konieczna będzie obróbka matematyczna, takie naiwne (jak w moim LV z pierwszego posta) podejście po prostu się nie sprawdza
as2-zrzut ekranu45.png


Off Topic
sprzęt niejako wzorcowy :roll: w/g którego pracowicie ustawiałam niedobory wartości
IMG_5059.JPG


finał setupu części analogowej wyglądał u mnie jak poniżej
as2-zrzut ekranu44.png

martwi mnie tylko fakt, że cała akcja była przy migających na zmianę statusach OK i LV (low voltage) czyli USB słabo zasilało zabawkę, momentami nawet 4.5V :( no nic, współczynniki korekcyjne mam w pliku tak czy inaczej, jak kogoś interesuje mogę wystawić dla porównania

następna zmiana to rezygnacja z zasilania z AD2 na rzecz zewnętrznego liniowego zasilacza +/-5V, bo wcześniej to takie cuda biegały po ekranie:
as2-zrzut ekranu46.png

do tego ruchu zmotywował mnie schemat j23 i cewka przed LM, jednak przy tak maleńkich sygnałach do mierzenia z zasilaniem trzeba uważać....

no i na koniec, LabVIEW oczywiście jest super i ekstra i w ogóle i tak dalej, ale czarno na białym też chciałam zobaczyć :)
zatem poniżej nieco na kolanie napisany programik odczytujący napięcia z dwóch kanałów AD2 i piszący to na konsole, to pod Linux, ale pewnie na Win też ruszy, chyba... tak ogólnie polecam SDK do AD2 bo tam manipulujemy pudełkiem bez pośredników, tak na krótko.
as2-zrzut ekranu47.png


Kod: Zaznacz cały

#include "sample.h"
/*
na motywach oficjalnych exampla Digilent-a by tasza, 2017
kompilacja:
    gcc -c voltmeter1.cpp
    gcc voltmeter1.cpp /usr/lib/libdwf.so -o vm1
*/

int main( int argc, char *argv[] ){

    HDWF    handle;      // handle dewajsa
    double    v1, v2;      // na pomiary dwoch napiec
   
    char szErrMessage [512] = "";
   
    // dawaj pierwsze z brzegu AD2
    if( FDwfDeviceOpen( -1, &handle ) == 0 ) {     
        FDwfGetLastErrorMsg( szErrMessage );   
        printf( "err when access ad2 [%s]\n", szErrMessage );   
        return 0;
    }
   
    // offset dla kanalow 0 i 1
    FDwfAnalogInChannelOffsetSet( handle, 0, 0 /* V */ );
    FDwfAnalogInChannelOffsetSet( handle, 1, 0 /* V */ );
   
    // zakres na oba kanaly , 5V vpp
    FDwfAnalogInChannelRangeSet( handle, 0, 5 /* V */ );
    FDwfAnalogInChannelRangeSet( handle, 1, 5 /* V */ );
   
    // rekonfiguracja i start pomiarow
    FDwfAnalogInConfigure( handle, 0, false);
   
    Wait( 2 ); // dwie sekundy na ogarniecie się wnętrzności ad2 po setupie :) no czad normalnie!
   
    for( int i = 0; i < 20; i++ ){
       
   Wait( 1 );
       
   // daj status, ale dziwadlo :)
        FDwfAnalogInStatus( handle, false, NULL );
        // odczyt fizycznych wartosci
        FDwfAnalogInStatusSample( handle, 0, &v1 );
   FDwfAnalogInStatusSample( handle, 1, &v2 );
       
   printf ( "%.3lf V\t\t%.3lf V\n", v1, v2 );
    }
   
    // pozamykaj puzderko
    FDwfDeviceCloseAll();
}



no to spokojnego wieczoru,
tasza
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: tasza » czwartek 26 sty 2017, 17:51

Ja dziękuje, że poświęciłeś tyle czasu na te pomiary i test.

Zwarłam 1+ do masy ( 1- było zwarte wcześniej ), drugi kanał działał sobie normalnie z LM-ką, zasilanie z USB ( znowu LV na zmianę z OC *** :( ),
nie wygrzewałam pudełka, pomiary zaraz po zapięciu zasilania.
as2-zrzut ekranu52.png

Woltomierz pokazuje to co widać, oscyloskop - coś co w sumie mogę zaakceptować (szum +/- 1mV związany z przetwarzaniem A/C).
Analogiczny eksperyment z kanałem 2 (przeprowadzony dla spokoju ducha) wykazał - woltomierz -30mV (?!!!!!), oscyloskop - średnia - 1mV z szumem 2mv Vpp czyli jak się uprzeć zero (zgodnie z intuicją)

Aktualnie w przypadku mojego "skalibrowanego" (ooo, jak to dumnie brzmi) AD2 wygląda to tak:
* woltomierz zwyczajnie wciska mi kit i nie jest wiarygodny, skreślam tego pana, zwykły multimetr więcej wniesie
* oscyloskop - paradoksalnie - prawdę głosi na akceptowalnym poziomie, tylko trzeba stosownie zinterpretować wyniki.

I złe myśli mną targają teraz, czy to coś było w ogóle warte +1k pln ....

pzdr,
Natasza

*** - mój hub usb /Belkin/ jest zasilany bezpośrednio z PC, jest mysz i klawiatura i kamerka , razem życzą sobie ~500 mA.
AD2 pokazuje w stanie OC ponad 1A poboru...no ciekawe skąd to bierze, chyba z telewizji :(
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [LabVIEW] pomiar temperatury LM35 + Analog Discovery 2 (czyli 2 stopnie, co nie dają spokoju)

Postautor: SuperGość » czwartek 26 sty 2017, 18:25

tasza pisze:I złe myśli mną targają teraz, czy to coś było w ogóle warte +1k pln ....
spokojnie to co teraz sprawdzałaś to tylko dodatek jest (ten woltomierz), pozostałe funkcjonalności to rekompensują


Wróć do „Inne języki programowania”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości