Witam wszystkich forumowiczów... Posiadam płytę ewaluacyjną AVT5311 na której znajduje się czujnik temperatury lm50 oraz układ mcp3021. Korzystając z wcześniejszych porad dotyczących odczytu temperatury z czujnika DS18B20 napisałem kod w bascomie. Oczywiście mam świadomość, że będzie on inny w moim przypadku. Natomiast nie mogę poradzić sobie w odczycie...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
ja zrobil bym cs takeigo: Dim X As Byte set p2 jazda: if p2.6 = 0 then set X if p2.4 = 0 then reset X if x = 1 then wyświetlana = first if x = 0 then wyświetlana = second odczytaj z ds`a first odczytaj z ds`a second lcd wyświetlana goto jazda: Mam nadzieje ze pomoże to co zmieniłem zaznaczyłem. Sprawdz. jak i napisz jaki bedze rezultat
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
Prawidłowe wywołanie procedury musi być PRZED end,a nie po. [syntax=basic4gl] If Menu = 3 Then Menu = 0 call wyswietl_temperature End If [/syntax] Proponuję zrobić "po mojemu" czyli declare sub i sub wywoływany call'em.
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Sprawdź miernikiem napięcie podawane z LM35 na ADC. Przepisałem ten kod tak by był przejrzystszy. Przy okazji zaoszczędziłem 8% pamięci. To nieistotne. Istotne natomiast jest to, że teraz widać, że układ wyłączy się jeśli odczyt na ADC będzie w zakresie 250-300. Powyżej lub poniżej tego zakresu krążek będzie świecił. [syntax=vbnet]'Program "elektronicznej...
Hej! Twój problem polega na specyficznej konstrukcji magistrali 1Wire i tego że wszystkie czujniki są podłączone za pomocą jednej lini i w momencie gdy chcesz pobrać dane z jednego to zgłaszają ci się wszystkie na raz lub ten który jest szybszy. Miałem podobny problem gdy w układzie miałem podłączony czujnik temperatury oraz pastylkę dallasa i efekt...
witam nie bawiłem się jeszcze 1921 ale obsługa jest standardowa tylko przy odczycie temperatury musisz dać opóźnienie na konwersje temperatury jakieś 750ms. DS1994 ma wiele funkcji i własny eeprom po za tym można zrobić całkiem dobry system kontroli dostępu zabezpieczenia wszystko zależy od pomysłowości. pamiętaj jedno jak piszesz cokolwiek do 1-wire...
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Bascom posiada bibliotekę I2C slave. Jest płatna, lecz jeśli na forum dobrze poszukać...
Która to wersja Bascom nie potrafi napisać : Error : 375 Line : 49 Duplicate definition https://obrazki.elektroda.pl/2709901200_... W linii 25 -> Pompa_wl Alias Portc.0 'pompa obiegowa W linii 49 -> Pompa_wl As Bit Pewnie ustawia Bit a nie pin chociaż u mnie to się w ogóle nie kompiluje. W jednej linii przy deklaracjach masz pozostawiony...
Przykład programu to nie problem tylko w jakim języku? Zobacz tutaj bascom http://www.elektroda.pl/rtvforum/topic22... Inne szukaj w google które nie gryzą. Na początek popraw ortografię szczególnie w tytule.
Muszę cię zmartwić ale nie ma gotowych poleceń i super prostych rozwiązań jeśli chodzi o Bascom dla takiego zastosowania ultradźwięków. Trzeba sobie samemu zrobić jakiś układ, podpatrzeć jak to inni robią - być może użyć dodatkowo jakichś wzmaczniaczy operacyjnych dla wzmocnienia odbieranych czy nadawanych sygnałów (zależy jaki chcesz mieć zasięg) no...
Skoro jesteś początkujący szukaj artykułów o programowaniu w Bascom w archiwalnych numerach EdW (Mikroprocesorowa Ośla łączka). Wykorzystanie programów w innym języku moim zdaniem będzie trudne i bezcelowe. Bascom jest wyposażony w wiele gotowych procedur do obsługi LCD albo przetworników ADC i ma polski plik pomocy co jest dużą zaletą. Do odczytu temperatury...
Witam Co do przeliczania wartości na temperaturę nie będę się wypowiadał bo w wielu publikacjach było to prezentowane. Natomiast zajmę stanowisko w sprawie wyświetlacza LED. Proponowałbym z obsługi przerwania usunąć procedurę pobrania znaku do wyświetlenia. O wiele lepiej zrobić to w programie głównym. Zbyt długie przebywanie w obsłudze przerwania może...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Nie wiem po co wyłączasz i włączasz ten przetwornik, ale może jakaś oszczędność baterii czy coś.. W każdym bądź razie pierwszy odczyt po włączeniu przetwornika może być zafałszowany. Bascom i tak czyta dwa razy, ale uśrednia te dwa odczyty. Spróbuj wykonac dwa doświadczenia. W pierwszym pod "Nap = Getadc(4)" dopisz dokładnie taką samą druga linijkę....
Do połączenia nawet wystarczą przewody 0,5mm2 Ale długość przewodów zależy od kilku czynników. Przede wszystkim od zakłóceń oraz pojemności pomiędzy żyłami przewodu. Może to być odległość kilku metrów, a może też być i kilkaset metrów. Czy kupić same czujniki czy też gotowce z gilzą i przewodem? Czujnik kosztuje raptem kilka zł za sztukę. Czujnik z...
Za to mam problem z temperaturą. W pokoju mam 20, może 22 stopnie, a termometry pokazują 25, a przy niektórych włączeniach, nawet 29 stopni. Pomiędzy jednym a drugim 0.2, 0.3 stopnia różnicy. Rezystor podciągający użyłem 3.3K, zamiast 4.7K, ale to chyba nie jest wina tego. Wartośc rezystora podciągającego magistralę 1-wire nie jest krytyczna i to w...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
Witam! 1. czas na konwersję 750 ms, jest to maksymalny czas potrzebny tylko wtedy, gdy mamy czujnik podłączony tylko dwoma przewodami, a wiec przy zasilaniu "parazytowym" i przy maksymalnej rozdzielczości pomiaru. 2. w przypadku kiedy czujnik jest podłączony trzema przewodami, ten czas może być skrócony do około 20 ms. 3. ten czas nie oznacza, że trzeba...
W książce Pana Dolińskiego "Mikrokontrolery AVR w praktyce", z racji że była pisana na starszy procesor jest przykład kompletnej programowej implementacji tego interfejsu w C i co najważniejsze szeroko opisana. Szkoda się powtarzać. Książkę bez problemu znajdziesz w sieci. Do tego ten czujnik się inicjuje. Kolejnośc wygląda mniej więcej tak (mimo że...
Witam Kolego Unreal89. Pracuję pod Bascomem 8051 i nie spotkałem się z funkcją, o której wspominasz. Przejrzałem pliki help'a i tam również nic nie znalazłem. Zainteresowany jestem z jakiego powodu odpada komenda "fusing"? Dla czego pytam? Pozwolę sobie obszerniej skomentować zaprezentowany listing. 1. Termometr DS18B20 przechowuje informacje o temperaturze...
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
...Czy istnieje jakiś sposób, aby ostateczną zmienną 'Ss' (string) zapisać w zmiennej typu Single (lub innej?) aby umozliwic porównanie jej z tą zapisaną w eepromie? A może ktoś zna inną metodę na rozwiązanie tego problemu? Z Twojej wypowiedzi wynika , że nie wiele masz wspólnego z programowaniem uC - ale mniejsza z tym. Zmienna string jest potrzebna...
Program zajmuje 50%. Może i jest źle napisany ale działa.. Ja bym to stwirdzenie troche skorygował; Program działa tak jak jest napisany!... bo - "Jest jeszcze jeden problem." Co jakiś czas temperatura podskakuje o 10 stopni a czasami nawet do 200 podskoczyło co spowodowało zbędne załączenie przekaźnika. Z czym jest problem? Popatrz na pracę timera0,...
Pytana do układu: 1. P1 i P2 podciągnięte do plusa za pomocą rezystorów? Bo w programie nie masz "włączonego" wewnętrznego podciągnięcia? Jeden z twoich problemów to: Po naciśnięciu guzika zmniejszającego wartość spada ale dzieje się to bardzo powoli tak jak by układ się przycinał na czas odczytu temp. nie dziw się ponieważ w funkcji Odczyt_t podczas...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
No jedyne co zrobiłem to z kumplem w 8051C zaporgramowaliśmy LCD by napis wyświetlał, zrobione to było w C, kompilator keil. jak powiedizałem chce się uczyć stopniowo... No to początek masz za sobą. Proponuję zrobić konsolkę na ATMega8 (w miarę tani i "mocny" procesorek) z wyświetlaczem LCD. Minimum to procesor i tych kilka drutów z procesora do wyświetlacza....
http://obrazki.elektroda.net/61_12840708... Przedstawiam mój sterownik awaryjnego zasilania mieszkania, pieca CO i pompy od solarów. Urządzenie w takiej, a nie innej formie powstało w sumie przez przypadek. Początkowo miało to być tylko podtrzymanie pompy solarów gdyby zabrakło napięcia w sieci, a temperatura na dworze była by zbyt wysoka...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Z tego co przeczytałem w pdf to wystarczy [syntax=basic4gl]Temp=Lsb; if Msb<>0 Then Temp=Temp*-1 end if Temp=Temp/2;[/syntax] W msb jest tylko 0 lub 255.
proponuję abyś powyłączał wszystko oprócz obsługi naprzemiennej czujników, i pokazywał wyniki na wyświetlacz, dodatkowo liczył sekundy minuty itd na wyświetlaczu, będziesz miał narzędzie diagnostyczne w ten sposób sprawdzisz sobie obsługę DHT. Postępując analogiczną drogą znajdziesz i wyeliminujesz błąd bo pewno gdzieś jest. Istotna jest też jakość...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
http://obrazki.elektroda.net/94_12891659... Witam, własną konstrukcję prezentuje na elektrodzie po raz pierwszy, jestem otwarty na wasze opinie, pomysł na konstrukcję miałem już dawno temu, kupiłem wyświetlacze, jeszcze w szkole zrobiłem płytkę pod wyświetlacz (co zresztą widać) ale późnej zabrakło i wiedzy i chęci. No i ostatnio zafascynowany...
Muszę napisać program do pomiaru temp za pomocą termoistora i kondensatora. Jednak nie moge uzyc "getrc". Czym mogę go zastąpić? Moze mi ktoś napisac jak powinna wyglądać taka procedurka?
Krzywa grzewcza w najprostszej postaci to prosta "ax+b" - dobierz doświadczalnie współczynniki "a" i "b" - x to będzie temperatura zewnętrzna.
Witam Chciałbym wydzielić tylko to co znajduje się po przecinku odczytanej temperatury na przykład w Tempp. Czyli ładuje wartość odczytaną z ds1820 do Tempp potem: Shift Tempp , left , 8 if Tempp >= 10000000 then Tempp = to co jest po przecinku tak?
Temat do zamknięcia , nie potrafię sobie poradzić z obliczeniami wyników temperatury i ciśnienia.
Zwiększ bufor odbiorczy, a do sprawdzenia czy jest nowy bajt w buforze użyj Ischarwaiting() : [syntax=basic4gl] Config Serialin = Buffered , Size = 20 ' bufor 20 bajtów ........ Do If Ischarwaiting() = 1 Then P = "" Input P Gosub Przelicz End If Loop[/syntax]
Sprawdź opcje BASCOMA (Options-> Compiler-> Communication), bo może masz domyślnie inną częstotliwość kwarcu ustawioną niż w zapisie programu i dlatego po kompilacji nie chce działać...
Dziwne wartości wyświetla. -2950.2 Reset T.15 Lub T = T + 32767 T = T * -1 Ta sam wynik -2950.2 Locate 4 , 1 LCD T ; " " If T.15 = 0 Then 'Ciepło + temperatury Locate 1 , 1 Lcd "T:" ; T ; "," ; Ti ; "C " End If If T.15 = 1 Then 'Zimno - temperatury T = T + 32767 T = T * -1 Locate 1 , 1 'Lcd "T:"...
temperatury bascom bascom pomiar temperatury sterownik temperatury bascom
ostatni zapisany wiersz makro dekoder pilot uniwersalny wtryskiwacze peugeot
wymienić schowek telefon zablokowany przez operatora
Sterownik TECH ST-480: Komunikat "brak 50Hz" - przyczyny i rozwiązania Moment dokręcania świecy żarowej Hyundai Tucson 1.7 CRDi