Słuchajcie, napisałem mały programik do pomiaru temperatury w dwóch miejscach za pomocą LM35 (akurat pd ręką więc szkoda nie użyć) i pomiar napięcia do 15V z naprzemiennym wyświetlaniem w górnej linii LCD 2x16 i mam drobny zgryz. Jak napięcie jest większe niż 10V to przestaje wyświetlać jedną z temperatur. Oto kawałek kodu umieszczony w pętli głównej: incr do_wyswietlania_temp 'umozliwia zmiane wyswietlanej temperatury temp_zew = getadc(0) Volt = temp_zew * 4 Volt_d = Volt Mod 10 'zwraca wartosc modulo 10 Volt = Volt / 10 temp_wew = getadc(1) Volt1 = temp_wew * 4 Volt_d1 = Volt1 Mod 10 'zwraca wartosc modulo 10 Volt1 = Volt1 / 10 if do_wyswietlania_temp < 125 then 'jesli zmienna pomocnicza mniejsza niz 125 to home lcd "Temp zew:" ; Volt ; "," ; Volt_d ; Chr(223) ; "C" ; " " 'wyswietla jedna temperature else 'a jak nie home lcd "Temp wew:" ; Volt1 ; "," ; Volt_d1 ; Chr(223) ; "C" ; " " 'to drugą end if napiecie = getadc(3) 'obliczenia napiecia aku napiecie = napiecie * 3 'bedzie dzielnik napiecia 2 do 1 wiec mnoze x3 pomocnicza_napiecia1 = napiecie / 204.6 'dziele przez ilosc jednostek przypadjacych na 1V pomocnicza_napiecia2 = fusing(pomocnicza_napiecia1 , "#.&&") 'ucinam wszystko poza dwoma miejscami po przecinku locate 2 , 11 lcd pomocnicza_napiecia2 ; "V" ; " " 'wyswietlam wynik Jak napięcie jest wyższe niż 10V to wyświetla tylko Temp zew. więc wnioskuję że ponizszy kawałek kodu ma na to wpływ, ale czemu wielkość napięcia ma wpływ na wartość zmiennej o nazwie do_wyswietlania_temp ? if do_wyswietlania_temp < 125 then 'jesli zmienna pomocnicza mniejsza niz 125 to home lcd "Temp zew:" ; Volt ; "," ; Volt_d ; Chr(223) ; "C" ; " " 'wyswietla jedna temperature else 'a jak nie home lcd "Temp wew:" ; Volt1 ; "," ; Volt_d1 ; Chr(223) ; "C" ; " " 'to drugą end if Nadmienię tylko że wszystko sprawdzam na płytce testowej EVBavr04 symulując napięcie wejściowe napięciem z potencjometru.
|
|||
Re: Wyświetlanie
Zastąp kod:
fragmentem
aby sprawdzic czy to nie wina tej złozonej istrukcji wyświetlania. Po drugie spróbuj zmienić home na odpowiedni locate x, y. Jakiego typu jest zmienna "do_wyswietlania_temp", masz gdzieś zerowanie jej wartości czy przekręcasz poprostu licznik w zmiennej bajtowej?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Wyświetlanie
nie pomogło.
nie pomogło
jest to zmienna typu byte i nie miałem jej zerowania bo to kolejne 3 linijki kodu, więc pomyślałem że przekręcę ją.
dodanie trzech linijek zerujących tą zmienną nic nie dało.
naprawdę nie wiem jaki wpływ ma wartość mierzonego napięcia na tą zmienną.
nadmienię tylko że jak zaREMuję linijkę
mnożącą napięcie x3 to sytuacja nie ma miejsca.
Moja strona w powijakach
Re: Zmienne
Wygląda na to jakby zapisywało się coś w obszar pamięci jednej zmiennej coś z drugiej zmiennej.... zrobiłem sobie też tak kiedys ale to było w eepromie a nie w ramie...... Zmień miejscami deklarację zmiennych lub dodaj nową zmienną. Może cos się przestawi. Wrzuć jeszcze fragment programu gdzie deklarujesz zmienne.... żeby można było wiedziec jakie są to typy
Może twoja wersja bascoma ma jakiś błąd, spróbuj najnowszą wersje demo ze strony producenta.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Zmienne
korzystam z najnowszej (niestety) wersji demo, 1.11.9.8
proszę bardzo:
Moja strona w powijakach
Ja widzę że masz też inne
Ja widzę że masz też inne zmienne czyli program sięga dalej, spróbuj może najpierw to wyświetlanie adc zrobić, dla mnie ten kod jest troszkę bez sensu, np. to:
nie rozumiem po co dzielić przez 204.6, możesz dzielić przez 204 albo 205 ale zostwmy już to, po co siedzi tam fusing, jak możesz to samo zrobić na mod'ach, i będzie to i mniejsze i szybsze.
P.s. Wyświetla do 10 czy do 9.99, bo jak do 9.99 to zmieniłbym tego fusinga trochę, nie powiem jak bo jak się przyjrzysz to sam zobaczysz :D.
raficzek wrote:nie rozumiem
jak podzielisz zakres ADC czyli 1023 przez max co może wejść na tenże przetwornik czyli 5V żeby otrzymać ilość jednostek ADC przypadających na 1V to dostaniesz wynik 204.6, więc jeśli wynik pomiaru podzielisz przez te ileś jednostek na 1V to będziesz miał ile volt masz na wejściu przetwornika.
pomiar temperatur mam zrobiony na modach o tak:
i niestety nie zawsze działa jak należy, czasem wyświetla 3,2stC podczas gdy naprawdę jest około 20 dlatego tu zastosowałem fusing bo sprawdzony.
wiem, specjalnie dałem bez zaokrąglania. wystarczyło by napisać
i było by bez zaokrąglania. swoją drogą, sprawdzę to.
Moja strona w powijakach
Quote: Quote: nie rozumiem po
Chodziło mi o to że dzielenie przez liczbe z przecinkiem jest "długie", a w zmiennej "pomocnicza_napięcie1" wynik zawsze będzie całkowity (bez przecinka).
Co do fusingu to chodziło raczej o taki twór:
fusing(zmienna, "##.##"
P.s. pomocnicza_napiecia2 powinna być albo "goły" string albo string*6.
Re: Zmienne
może i jest długie, ale z drugą częścią nie zgodzę się za bardzo ponieważ w helpie do bascoma napisano inaczej, cytuję:
raczej ten pierwszy hush nie jest konieczny, cytat z helpa:
szczególnie ostatni fragment czyli:
'Maska musi rozpoczynać się od znaku #.
sprawdzę to.
Moja strona w powijakach
A przepraszam nie doczytałem
A przepraszam nie doczytałem że to singiel jest.
witam!!!!!!!!!
Witam czy mogł bym dostać część kodu odpowiadającą za pomiar napięcia???
Re: Część kodu odpowiadająca za pomiar napięcia.
Mówisz i masz, ale napisane jest bardzo jasno więc dziwię się skąd Twoje pytanie?
Moja strona w powijakach
mam problem z pomiatem temp i pomiarem napiecia zfoto rezystora
Witam
mam problem z pomiarem temp ds18b20 2 czujniki i pomiarem napiecia z fotorezystora rownoczesnie...
o co chodzi....
do atmega32 podlaczylem czujnik swiatla i temp.
po zapisaniu w programie nazwy procesora i czestotliwosc wpisuje
$include "temp"
$include "foto"
Iw takiej kolejnosci temp dziala a foto nie...
I zmiana...
foto
temp
i tu dziala foto a temp juz nie...
co robie zle?
jak to zapisac zeby działało?
Pomozcie
ptogram nie widzi temp albo napiecia
Witam.
w bascomie napisalem proram do pomiaru temp idczytu napiecia .
i mam problem z odczytem napiecia...
osobno dzialaja a razem juz nie... jak to napisac zeby dzialalo?
pomozcie
odczyt rownoczesny temp i napiecia
Po wpisaniu kodu na temp i analogowy odczyt napiecia temperatura dziala a napiecie nie....
a wpisujac ana. Napiecie a pozniej temp to napiece dziala a temp juz nie... jak poprawnie wpisywac dwa kody do roznych czynnosci?
pomozcie
Same problemy
Re: Bascom
A jak wrzucisz procedury do jednego kodu to działają? (bez include)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.