miernik napięcia na PIC16F877A

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

miernik napięcia na PIC16F877A

Post autor: cyki »

Witam
Robię miernik napięcia stałego 0-9V. Napisałem juz program na PIC16F877A (10-bitowy przetwornik A/C), jednak nie wiem co zrobić z danymi z przetwornika A/C, aby je poprawnie wyświetlić na ekranie monitora. Program obsugujący urządzenie chcę napisać w Labview, jednak nie wiem jaki zastosować algorytm obróbki danych, zeby wyswietlacz cyfrowy w Labview wiedział, jaką wartość wyświetlić w danej chwili. Czy obróbki dokonać w procesorze, czy w Labview. Jak się takie rzeczy robi. Albo gdybym chciał to wyświetlić na wyświetlaczu 7-segmentowym - jak to zrobić. Jedyny pomysł, jaki mi się nasuwa, to pomnożyć wartość z przetwornika A/C przez zdolność rozdzielczą przetwornika (w tym przypadku 9/1024V), i otrzymam wynik w woltach, jaki trzeba wyświetlić, jednak nie jestem pewny, czy to zadziała.
Myślę, że jest to częsty problem, jaki trzeba rozwiązać podczas projektowania urządzeń, dlatego liczę na pomoc, za którą z góry dzięki
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: miernik napięcia na PIC16F877A

Post autor: jogurt_owocowy »

Program obsugujący urządzenie chcę napisać w Labview
i słusznie :)
jednak nie wiem jaki zastosować algorytm obróbki danych
A na czym ma polegać obsługa urządzenia i obróbka danych? Zresztą jaka obróbka by nie była to zdecydowanie rób ją w LV - po to właśnie jest.
pomnożyć wartość z przetwornika A/C przez zdolność rozdzielczą przetwornika (w tym przypadku 9/1024V
No i dobrze. Tylko upewnij się co do dobrej stabilizacji napięcia odniesienia i doczytaj w pdfie szczegóły charakterystyki przejściowej. Niekiedy pierwszy przedział kwantyzacji jest o połowę węższy i takie tam szczegóły.
Powodzenia(:
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: miernik napięcia na PIC16F877A

Post autor: Ender »

Pozwole sobie nie zgodzic sie z przedmowca. Uwazam ze zaprzeganie do tego zadania labview jest wyciaganiem armaty na muche.
Miernik napiecia stalego nie wymaga przeciez zadnych skomplikowanych obliczen, transformat fouriera, rysowania przebiegow na wyswietlaczu/wykresie, obliczania wartosci skutecznej, archiwizacji pomiarow i co tam mozna sobie jeszcze zamarzyc.
PIC jest mikrokontrolerem a nie tylko przetwornikiem. Z powodzeniem wykona pomiar, przetworzy dane (czyli w tym wypadku dokona prostych operacji matematycznych) i wyswietli wynik na wyswietlaczach 7 segmentowych lub wyswietlaczu LCD. Jesli mamy urzadzenie do tego zdolne, to po co mieszac w to komputer i dodawac protokoly komunikacyjne?
Jesli natomiast chcialbys to koniecznie zrobic w labview, dodac jakies bajery i co tam dusza zapragnie, to .... po co PIC? Trzeba go przeciez zaprogramowac, a parametry jego przetwornika zapewne nie beda tak dobre jak autonomicznego przetwornika o podobnej cenie. Poza tym komunikacja z przetwornikiem za pomoca portow I/O karty bylaby prostsza niz z PIC'em. Chyba ze nie masz karty i masz zamiar komunikowac sie po RS'ie... ale dalej zostanie pytanie - po co?

Podsumowujac - jesli chcesz uzyc PIC'a (albo musisz, roznie bywa) to daruj sobie labview, PIC w zupelnosci wystarczy. A jesli chcesz to zrobic w labview, to zastosuj przetwornik zamiast PIC'a. Prosciej i dokladniej. Patrzac analogicznie - nie bedziesz krecil filmow telefonem tylko dlatego ze ma taka funkcje, skoro pod reka masz kamere, a nigdzie dzwonic nie musisz ...
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: miernik napięcia na PIC16F877A

Post autor: jogurt_owocowy »

zaprzeganie do tego zadania labview jest wyciaganiem armaty na muche.
Tak, ale...
1. Może to być projektowa "sztuka dla sztuki" - ma być uC i ma być komputer. Dużo takich projektów się na studiach robi. Po co komu w innym celu "miernik napięcia stałego 0-9V"?
2. Autor wątku pisze coś o "algorytmie obróbki danych" więc można się domyślać, że chodzi o coś więcej niż wyświetlenie wyniku.
Robson_7777
Posty: 25
Rejestracja: 27 mar 2006 00:00
Lokalizacja: Wrocław

Re: miernik napięcia na PIC16F877A

Post autor: Robson_7777 »

Dołączając się do poprzednich wypowiedzi:
1. Pomiar napięcia przez przetwornik (tak jak napisales 9V/1024 razy wynik przetwarzania). Nastepnie podlaczenie do uC wyswietlacza LCD lub LED (tu dla wyswietlacza 7 segmentowego wymagany jest dekoder np. 4543, przy wyswietlaczu matrycowym nie) i dopisanie paru linijek programu :)
2. Przeslanie do komputera - najprosciej chyba przez RS 232, dokladasz do uC ukladzik MAX 232, a do komputera przesylasz przetworzony wynik pomiaru, na komputerze zaprzęgasz do pracy LabView, prosty programik i masz wynik!Z wynikiem robisz co uwazasz za sluszne :)
Jesli chodzi o częsć sprzętową (podlaczenie ukladow do uC) duzo info znajdziesz na elektrodzie.
Powodzenia
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

Re: miernik napięcia na PIC16F877A

Post autor: cyki »

jogurt_owocowy pisze:
zaprzeganie do tego zadania labview jest wyciaganiem armaty na muche.
Tak, ale...
1. Może to być projektowa "sztuka dla sztuki" - ma być uC i ma być komputer. Dużo takich projektów się na studiach robi. Po co komu w innym celu "miernik napięcia stałego 0-9V"?
2. Autor wątku pisze coś o "algorytmie obróbki danych" więc można się domyślać, że chodzi o coś więcej niż wyświetlenie wyniku.
Jest dokładnie tak jak mówisz: "sztuka dla sztuki" Co do obróbki danych to trochę przesadziłem. Chcę tylko wyświetlić dane-to wszystko. Zdaję sobie sprawę, że temat jest banalny dla doświadczonych użytkowników labview, jednak ja nigdy nie pisałem w tym języku. Normalnie bym to pisał w C lub czyms podobnym, ale wymóg jest ze ma byc w Labview. Poza tym musi byc procesor, bo miernik napięcia to nie wszystko, co urządzenie ma robić. Oprócz tego ma miec na pokładzie generator 1-120 kHz sygnalu prostokątnego. Z poziomu Labview ogranicza się to do wysyłania bajtu o wartości 1-120 kHz, a procek juz będzie wiedział co ma robić, to już sprawdziłem, wysyłając bajty z prostego programiku w asemblerze. Teraz tylko przeniesc to do Labview. Z hardwarem, komunikacją przez RS 232 nie mam problemu, jestem elektronikiem i takie rzeczy mam opanowane. Ucze się Labwiew i to mi spraawia jedyny problem w tym projekcie. Dziękuję za cenne rady.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: miernik napięcia na PIC16F877A

Post autor: Mikrobi »

Pomysł ciekawy, proponuję takie podejście.
Zrób prosty protokół komunikacyjny
np:
komenda na pojedynczy odczyt aktualnego napięcia
komenda na ciągły odczyt z zadanym interwałem (0,5s, 1s, 2s, 5s, 10s...?)
komenda na uruchomienie generatora z zadanym przebiegiem (rodzaj, częstotliwość, amplituda)
na początek powiedzmy trzy komendy, chyba że będziesz pomysł na więcej.
Zrób prostą ramkę z sumą kontrolną.

To Ci pozwoli sprawdzić działanie komunikacji z procesorem na przykład przez hyperterminal a potem przećwiczyć:
komunikację korzystająć z biblioteki VISA
strukturę aplikacji o nazwie maszyna stanów od razu w konkretnym zastosowaniu komunikacyjnym.

Powodzenia i daj znać jak idą prace.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

Re: miernik napięcia na PIC16F877A

Post autor: cyki »

Mam jeszcze jeden problem. Po słusznej uwadze, że nie moge dać napięcia odniesienia +9V, bo to uszkodzi procesor, dałem jako napięcie odniesienia napięcie zasilania, co spowodowało, że przetwornik będzie przetwarzał w zakresie 0-5V. Problem w tym, co będzie, gdy użytkownik będzie mierzył napięcie np. 20V, bo nie będzie miał pojęcia, ile ono wynosi. Na wejście przetwornika pójdzie 20V. Co zrobić, żeby w takiej sytuacji nie uszkodzić procesora?
Awatar użytkownika
tasza
Posty: 23
Rejestracja: 19 sty 2006 00:00
Wersja środowiska: LabVIEW 2014

Re: miernik napięcia na PIC16F877A

Post autor: tasza »

Wejście przetwornika A/C w procesorze należy zabezpieczyć.
A można to zrobić przy pomocy szybkiej diody zenera (tzw. transil),
o odpowiednim napięciu załączenia. Chyba dobrą wydaje się być BZW06-5V8
:arrow: http://www.meditronik.com.pl/doc/plus/bzw-06.pdf
w układzie jak na rysunku wszystko powyżej 5.8V zostanie obcięte...
Wartość rezystora...hmm...kilka(naście) kilo ohm.

pozdrawiam,
tasza

PS.
ten układzik automatycznie zabezpieczy też wejście przetwornika
prze napięciem o ujemnej względem masy polaryzacji...
tylko wtedy transil musi być jednokierunkowy (unidirectional), bez literki B w symbolu...
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

Re: miernik napięcia na PIC16F877A

Post autor: cyki »

Ok jednak na rezystorze odłoży się napięcie, w zależności od płynącego prądu i pomiar nie będzie wiarygodny.
Awatar użytkownika
tasza
Posty: 23
Rejestracja: 19 sty 2006 00:00
Wersja środowiska: LabVIEW 2014

Re: miernik napięcia na PIC16F877A

Post autor: tasza »

ale to będzie spadek napięcia o minimalnej wartości, proporcjonalny
do sumy prądu wstecznego transila (w stanie niedziałającym)
oraz prądu wejściowego przetwornika A/C....a obie wartości są bardzo małe...
zresztą - zrób eksperyment - pomiar jakiejś wzorcowej wartości z tym
układem zabezpieczającym i bez - myślę że wyniki będą te same....

tasza
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

Re: miernik napięcia na PIC16F877A

Post autor: cyki »

ok spróbuję
dzieki
cyki
Posty: 24
Rejestracja: 18 sie 2006 00:00
Lokalizacja: Ĺ»yrardów
Kontakt:

Re: miernik napięcia na PIC16F877A

Post autor: cyki »

Z charakterystyki transila wynika, że Leakage current Irm wynosi 1000uA. Przy rezystorze 10K mam juz spadek rzędu 1V + spadek od prądu płynącego przez wejście przetwornika. Transil ma po to 5,8 V, żeby uwzględniając spadek napięcia na tym rezystorze dawać ok 5V na zabezpieczanego scalaka. Gdy chce użyć go w mojej aplikacji, mysle ze bede musiaal kalibrować przetwornik.
Awatar użytkownika
tasza
Posty: 23
Rejestracja: 19 sty 2006 00:00
Wersja środowiska: LabVIEW 2014

Re: miernik napięcia na PIC16F877A

Post autor: tasza »

hmm....zaczynam mieć wątpliwości... a słuchaj, zerknij na tego cudaka:
:arrow: http://www.tkk.fi/Misc/Electronics/circ ... erial.html
na prawą stronę, na diody przy wejściu przetwornika....
dolna zabezpiecza przez ujemnym napięciem, górna (pomiedzy We a Vcc)
załączy się, gdy napięcie wejściowe przekroczy 5.7V...wtedy cały prąd
wpływający do wejścia poprzez działającą górną diodę weźmie na siebie
zenerka w lokalnym zasilaczu (ma 5.1V)....
może tak trzeba?

tasza
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: miernik napięcia na PIC16F877A

Post autor: Gość »

To rozwiązanie mi sie podoba. Ja mam zasilanie ze stabilizatora 78LS05, więc dam na wyjsciu tego stabilizatora dodatkowo diode zenera na 5V, a rezystor na wejściu przetwornika 10k powinien wystarczyć. No nic sprawdze to. Dzieki wielkie.
ODPOWIEDZ