Witam,
Chciałbym zrobić woltomierz do zasilacza. Przeszukałem całą elektrodę i nic ciekawego nie znalazłem poza gotowymi .hex (może źle szukałem). Posiadam dwa schematy jednak brak mi dobrego kodu źródłowego.
http://www.nikomp.com.pl/opisy/ZEPJ0/ZEPK3880.htm
http://elfly.pl/multimetr/multimetr.htm" target="_blank" rel="nofollow noopener ugc" class="postlink inline" title="" >
http://www.nikomp.com.pl/opisy/ZEPJ0/ZEPK3880.htm
http://elfly.pl/multimetr/multimetr.htm
[/url]
Znalazłem coś takiego:
Kod:
Niby działa ale im większe napięcie tym większy błąd pomiaru.
Ze schematów wynika, że regulacji dokonujemy na ADC1(PC1) i ADC2(PC2) jednak nie wiem jak to w programie połączyć.
Jeśli dysponuje ktoś gotowym kodem źródłowym i schematem miernika to bardzo proszę o pomoc.
Chciałbym zrobić woltomierz do zasilacza. Przeszukałem całą elektrodę i nic ciekawego nie znalazłem poza gotowymi .hex (może źle szukałem). Posiadam dwa schematy jednak brak mi dobrego kodu źródłowego.
http://www.nikomp.com.pl/opisy/ZEPJ0/ZEPK3880.htm
http://elfly.pl/multimetr/multimetr.htm" target="_blank" rel="nofollow noopener ugc" class="postlink inline" title="" >
http://www.nikomp.com.pl/opisy/ZEPJ0/ZEPK3880.htm
http://elfly.pl/multimetr/multimetr.htm
[/url]
Znalazłem coś takiego:
Kod:
'[i]Program obsługi wbudowanego w mikrokontroler
'10-bitowego przetwornika A/C 8.31
$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 300000 'informuje kompilator
'o częstotliwości oscylatora
'taktującego mikrokontroler
Config Lcd = 16 * 2 'konfiguracja typu wyświetlacza
'LCD
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.2 'konfiguracja linii
'mikrokontrolera, do których
'dołączono wyświetlacz
'LCD
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja wewnętrznego
'przetwornika A/C
Cursor Off
Dim Wart_ac As Word 'zmienna na wartość odczytaną
'z przetwornika
Dim V As Single 'zmienna przechowująca obliczoną
'wartość zmierzonego napięcia
Dim Wart_nap As String * 3 'zmienna, do której wpisywana
'zostaje przetworzona wartość
'zmiennej V na tekst
Start Adc 'uruchamia wbudowany przetwornik
Do 'początek pętli programu
Wart_ac = Getadc(1) 'odczytanie wartości z wejścia
'ADC1 mikrokontrolera
Cls 'czyszczenie LCD
Lcd Wart_ac 'wyświetlenie w pierwszej linii
'Lcd odczytanej wartości
'z przetwornika
Lowerline 'kursor do drugiej linii LCD
V = Wart_ac * 0.0049 'zamiana odczytanej wartości
'z A/C na napięcie
'Wart_ac * ok. 4,8 mV
Wart_nap = Fusing(v , "#.&&") 'formatowanie wartości zmiennej
'V do do formatu x.xx i zamiana
'tej wartości na postać tekstową
Lcd Wart_nap 'wyświetlenie obliczonej
'wartości Wart_nap w drugiej
'linii LCD
Waitms 4500 'opóźnienie 100 ms
Loop 'koniec pętli Do...Loop
End 'koniec programu[/i]Niby działa ale im większe napięcie tym większy błąd pomiaru.
Ze schematów wynika, że regulacji dokonujemy na ADC1(PC1) i ADC2(PC2) jednak nie wiem jak to w programie połączyć.
Jeśli dysponuje ktoś gotowym kodem źródłowym i schematem miernika to bardzo proszę o pomoc.