miernik napięcia na PIC16F877A
miernik napięcia na PIC16F877A
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
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
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: miernik napięcia na PIC16F877A
i słusznieProgram obsugujący urządzenie chcę napisać w Labview
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.jednak nie wiem jaki zastosować algorytm obróbki danych
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.pomnożyć wartość z przetwornika A/C przez zdolność rozdzielczą przetwornika (w tym przypadku 9/1024V
Powodzenia(:
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Re: miernik napięcia na PIC16F877A
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 ...
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 ....
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 ....
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: miernik napięcia na PIC16F877A
Tak, ale...zaprzeganie do tego zadania labview jest wyciaganiem armaty na muche.
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.
-
- Posty: 25
- Rejestracja: 27 mar 2006 00:00
- Lokalizacja: Wrocław
Re: miernik napięcia na PIC16F877A
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
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
Re: miernik napięcia na PIC16F877A
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.jogurt_owocowy pisze:Tak, ale...zaprzeganie do tego zadania labview jest wyciaganiem armaty na muche.
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.
Re: miernik napięcia na PIC16F877A
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.
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.
Re: miernik napięcia na PIC16F877A
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?
Re: miernik napięcia na PIC16F877A
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...
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...
Re: miernik napięcia na PIC16F877A
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.
Re: miernik napięcia na PIC16F877A
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
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
Re: miernik napięcia na PIC16F877A
ok spróbuję
dzieki
dzieki
Re: miernik napięcia na PIC16F877A
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.
Re: miernik napięcia na PIC16F877A
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
: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
Re: miernik napięcia na PIC16F877A
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.