Do Cls Lcd " ODCZYT ADRESU" Wait 1 Cls 1wreset 1wwrite &H33 For X = 1 To 8 Adres(x) = 1wread() Next X 1wreset Cls Lcd " PODAJE ADRES" For X = 1 To 8 Locate 2 , 5 Lcd X ; " - " ; Adres(x) ; " " Wait 1 Next X Loop End
Domyślnie włączona konfiguracja 1M (działa dobrze na module 4mb). dzięki. bl602_ir_9f263cba4454 https://github.com/NonPIayerCharacter/Op... Moduł 1mb. miegapele 1mb toml pierwsze uruchomienie: Starting bl602 now.... Uruchamianie BL602 Chip... """"""╗ ""╗ """"""╗ """"""╗ """"""╗ ""╔══""╗""║ ""╔════╝ ""╔═""""╗╚════""╗...
To może podeślesz mi swoją funkcję, może w mojej tkwi jakiś niewielki niezauważalny błąd? Wszystkie pozostałe funkcje z tej biblioteki też mi bardzo dobrze od samego początku działają.
Witajcie ! Wiem, że temat był wielokrotnie sygnalizowany na forum, przejrzałem wszystkie tematy z tym problemem związane i niestety nie uzyskałem satysfakcjonującego rezultatu. Cała idea jest w tym, żeby całą obsługę odczytu temperatur z 4rech DSów, połączonych na oddzielnych liniach, wcisnąć w obsługę przerwań. Krótko mówiąc, chodzi o to, aby odczyt...
Ciężka sprawa, ds1920 to "temperature iButton" a tobie chodzi chyba o funkcje dostępne w tmperature logger czy coś takiego.(dobrze zrozumiałem?) Tam jest wmontowana jakaś pamięć jeszcze i zegar. W ds1920 są takie same opcje jak w ds1820 plus jakiś unikalny numer i tyle. Jak chcesz odczyt co godzine polecam opisany wcześniej lampomittari: http://termik.ok.9x.pl/...
Podłączyłem układ DS1820 (dokładnie ten numerek) do pinu PB0 układu ATTiny2313. Linia danych jest podciągnięta do Vcc rezystorem 1kΩ. Taktowanie wewnętrzne 8MHz. Fragment kodu odpowiedzialny za odczyt czujnika: Numer seryjny16 163 113 94 2 8 0 170 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt:...
Wg mnie jest potrzebne opoznienie miedzy odczytami temperatury z DS1820, a ja w Twoim programie takiego nie widze. Nie wiem jak szybki ma ten czujnik przetwornik AC, ale odczyt powinien odbywac sie przynajmniej co 1 s. A te rezystory mozesz sprobowac dac na 2,2k. ALe to chyba nie tu tkwi problem, bo kiedys zczytywalem z pastylki dallasa numer seryjny...
witam Używam wersji Bascoma 2.0.13.0 (sciągniętą z MCS Electronics) ,w wersji demo. Dodaje załącznik z plikami o które kolego Zumek prosił. Procesor widzi wszystkie 3 ds`y podpięte jednocześnie. Kody odczytałem używając programu z helpa do bascoma, a dokładniej pomocy odnośnie komendy 1WSEARCHFIRST( ) Odczytane numer to: 1czujnik : 10 56 84 39 01 08...
program spisalem z ksiazki "Programowanie AVR w jezyku Bascom" autor takie cos sobie wymyslil, ja dopiero sie ucze dlatego przerobilem go do swoich potrzeb ale za "chiny ludowe" nie wiem dlaczego nie chce mi wyswietlic mierzonej temperatury, powtarzam ze program kompiluje mi sie wiec nie wiem w czym problem.... :/ co do linku ktory kolega mi dal to...
No hej! Więc miło że ktoś poruszył temat tego „badziewia” od Dallasa… Wszystko robię mniej więcej tak jak napisałeś… tzn. póki co nie bawię się numerami seryjnymi. Co do różnych przykładów dostępnych na stronach Dallasa, to też z nimi walczyłem… ale do sedna. Udało mi się odczytać pierwszy bajt numeru seryjnego mojego czujnika,...
Niewiele mi to pomogło, pisałem przecież, że najpierw odczytuje 8bit numer rodziny, potem 48bitów (6 bajtów) numer seryjny a na koniec 8 bit CRC ale to mnie narazie nie interesuje. Numer rodziny się zgadza, natomiast SERIAL NUMBER jest inny niż wygrawerowany na obudowie. Powtórzę więc moje pytanie. Czy kod napisany na obudowie układu ds1820 to numer...
Witaj Kolego. Ja zrobiłem obsługę one wire w C na mikrokontrolery i działa dobrze. Kilka kwestji jeśli używasz atmega8 to raczej nie używaj zmiennych typu float bo samo użycie tego słowa kluczowego zajmie Ci ponad połowę twojej pamięci flash, niestety tak to już jest. Kilka porad z mojej strony: 1. Czy przeczytałeś już w manualu od maxima/dallasa jak...
dalem korekcje CRC i czas miedzy pomiarami 1s.. gdy oziebiam schodzi do 11.5 i koniec ... crc nie przepuszcza dalej chyba w takim razie.. od czasu do czasu pojawiaja sie wtedy wyniki przerozne 27.5 -87.5 +33.0 niewiadomo skad... przy starcie pokazuje temperature prawidlowa... jak zwiekszam tez (nie probowalem wiecej niz 10 st) chociaz przy przycisnieciu...
Hej. Może ktoś by mi powiedział dlaczego te procedurki nie działają ?? Napisałem je po AT902313, ale niestety DS nie zwraca żadnych wartości. Nawet nie odczytuje swoich standardowych wartości z ROMu
Ja mam to u siebie zrobione na maszynie stanów - niestety program jest napisany w ASM i a PIC'a, więc nie nadaje sie do bezpośredniego przeniesienia, ale istotny fragment mogę zamiescic: [syntax=asm] ;---------------------------------------... ; Odczyt temperatury z DS1820 - Match ROM bra uL_ResPres ; State=9 - reset/presence...
Staram sie napisać programik w Bascom, który odczyta mi numery seryjne z termometrów dallasa DS1820 (docelowo 3-4 termometry) ma go zapisać w pamieci eeprom procesora, a nast ma być odczytany. Na końcu użyłem komendę dla wyświetlenia na lcd ale jakoś mi to podejżanie działa ponieważ nie wyświetla mi znaków a tylko jakieś "9". Może źle odczytuje lub...
A to niby dlaczego nie wolno stosować waitms ??? U mnie jakoś działa przy wielu czujnikach na jednej linii i co to ma wspólnego z wysyłaniem przez uarta ? W tym przypadku waitms nie zakłóca obsługi przerwań, wiec nie widzę problemu. Kolega namieszał trochę w procedurze "odczyt". Na początku wyszukujesz czujniki na linii 1wire, a później, w procedurze...
spróbuj umieścić obsługę 1wire w innym miejscu. być może podczas odczytu termometru obsługiwane jest np. jakieś przerwanie. w Bascomie b. trudno poustalać zależności czasowe i o ile program nie biegnie gładko dookoła, to często robi takie numery.
Zgadza się. Wszystko sprawdziłem po 10 razy... oprócz fusebitów. Wyłączenie podziału przez 8 załatwiło sprawę. :)) Dzięki bardzo wszystkim, którzy się włączyli do dyskusji za pomoc. Ps. Widok numeru seryjnego scalak na wyświetlaczu działa baaardzo uspakajająco, oj bardzo ;].
Owszem, każdy DS ma unikalny numer identyfikacyjny, więc bez problemu można powiązać urządzenie z konkretnym czujnikiem. Jeśli w urządzeniu jest więcej niż jeden DS to jest to całkiem prawdopodobne. W przeciwnym przypadku byłaby to niepotrzebna uciążliwość. Jeśli masz analizator logiczny to go podłącz pod linie danych OW i zobacz co tam "lata".
Witam. Przychylam się temu co napisał Daro_Elektornik, magi nie ma włącz CRC tylko upewnij się że dobrze liczysz to CRC albo pobierz algorytm z datasheeta od Dallasa on dobrze liczy CRC. Podejrzewam też że numeru seryjnego to też nie pobierasz i układu raczej też nie adresujesz. Sprawdź czy dobry numer odczytasz itd. Pozdrawiam
Tutaj masz wszystko... 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Pinb.1 = Input 'linia PB1 jako wejściowa Config...
Ten problem był już poruszany na elektrodzie. Nie pamiętam czy było jakieś rozwiązanie. Jeśli chodzi o 1-wire i odczyt id czujników to temat dosyć długi. W skrócie to nie są odczytywane całe numery, ale poszczególne bity i po kolei są eliminowane czujniki. Dlatego jak mamy 2 czujniki i jeden wymienimy, to 1 może być 2, a 2 pierwszy. Przy 3 czyjnikach...
A wiec... dziekuje za odpowiedź:) teraz małe sprostowanie, nie uzywam układów DS18B20 tylko DS1820, odczyt ID pastylki przeprowadzam jednorazowo, zwierajac jedna z czterech zworek na płytce podłaczajac tylko jeden czujnik i właczajac układ co powoduje zapis ID do EEPROMA, czynnosc ta powtarzam 4 razy dla czterech ds-ów za kazdym razem przykładajac tylko...
Przepisujesz z ksiazki? :cunning: Popatrz dobrze czy np. jest tam cos takiego: $regfile = M8def.dat Tutaj masz poprawny kod: 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości...
Tan kod pierwszy napisałem sam bo ten początek umiem sam zrobic a to dalej nie, nie możecie mi poporawic i dopisac tych czterech funkcji. Mig: Incr Przep If Przep = 25 Then ' tu ma migac dioda podpięta do 28 nózki procka Przep = 0 Portc.5 = 0 Waitms 100 Portc.5 = 1 End If Return If PC.3 Then 'tu ma byc czunik numer jeden i przed wynikiem temperatury...
Na forum sporo bylo juz o obsludze tych ukladow. Idea jest prosta: po wpisaniu do pamieci numerow kazdego z czujnikow, mozesz np. kolejno je odpytywac... dokladne procedury sa na forum... poszukaj
Witam. Mam problem z programem z książki "Programowanie mikrkontrolerów AVR w języku BASCOM" listing nr 8.19. Przerobiłem z Atmega8 na Attiny2313 ponieważ plik .bin ma pjemność 1,20 kB. Po pierwszym wgraniu na wyswietlaczu wyświetlało się byle co tzn. temperatura ujemna lub brak układu. Zmieniłem w linii : If temperatura(2) = 0 Then na If temperatura(2)...
Temat chyba przekazał wszystko kod od 10 lat nie ruszany działający ale zachciało mi się aby zwracał błąd gdy nie ma jednego czujnika na magistrali kombinuję i stoję w miejscu. [syntax=basic4gl] Sub Odcz_temp K = 1 For J = Poczatek To Koniec 'Odczyt numeru seryjnego z eeprom Readeeprom Register_number(k) , J Incr K Next J Call Zap_num 'Wywolanie procedury...
Oto co ja ci moge poradzic: wywal procedure Crc bo do samego odczytu temperatury jest zupelnie niepotrzebna, zaczynasz od wyslania na linie polecenie pominiecia numeru ROM czyli HCC pozniej polecenie konwersji H44 odczekujesz okolo 1 selundy (wystarczy 300 ms u mnie) i przechodzisz do odczytu, czyli zainicjowanie magistrali ,znow HCC a pozniej HBE ,...
Ja natamiast zamieszczam termometr napisany w C pod kompilator gcc z wyswietlaniem wyniku na LCD. Czujniki podlaczone sa pod jeden pin, a program przy starcie sprawdza ich ilosc i numery. Byl pisany pod atmega16 ( lecz do mniejszych tez moze byc ;) ) z zegarem 8MHz. Konfigruracja pinow znajduje sie w pliku main.h : //******************* INTERFEJS LCD...
to zalezy czy chcesz podlaczyc do jednego pinu to wtedy musisz odczytywac ich seriale lub podlacz kazdy z osobna wtedy powyzszy programik wywolujesz 4 razy za kazdym razem zmieniajac po kazdym poleceniu wwrite wreset numer pinu podajze skladnia jest nastepujaca 1wreset p1.1 1wwrite p1.1 masz duzy procesor z duza iloscia portow wiec mozesz je podlaczyc...
Zmienilem na takie cos i wogole nic nie wysyla, wiec cos gdzies sie zatrzymuje.. $regfile = "attiny2313.dat" $crystal = 8000000 Config Pind.5 = Input Config Portd.1 = Output $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 300 Config 1wire = Pind.5 Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single...
Witam! Po kodzie wygląda to tak jest kilka czujników ds1820 - ich liczba nie jest zdefiniowana na sztywno tylko na starcie zliczana jest ilość czujników jaka odpowie na reset (wraz z numerami seryjnymi) i pezwchowywana w zmiennej devices Zliczanie urządzeń: /* detect how many DS1820/DS18S20 devices are connected to the 1 Wire bus */ devices=w1_search(0xf0,rom_code)...
Książka to "Programowanie Mikrokontrolerów AVR w jez. BASCOM" Program termometra. Przykład z książki. 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler...
Co może być grane. Wszystko poskładane zgodnie z prawidłami, rezystor podciągający na linii danych jest, zasilanie filtrowane odpowiednio, wszystkie połączenia miliard razy sprawdzone, a sytuacja jak w temacie. Jakikolwiek program wgrywam temperatura na wyświetlaczu -0 lub -1. Jako że to moje pierwsze podejście do tematu i nie mam bladego pojęcia o...
Tak to wygląda. Układ wyjścia JP5 jest zgodny z kolejnością wyjść na LCD + dwa dodatkowe do zasilenia podświetlenia - razem 16 pin http://obrazki.elektroda.net/38_12294457... A to początek kodu 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku...
Ściągnołem ten kod ale wciąż program wchodzi do do pętli gdzie I=2 na wyświetlaczu jest -12 Gdzie jest błąd? Config 1wire = Portb.5 $crystal = 1000000 Dim Bd(9) As Byte Dim Z As Integer , Tmp As Integer Dim T As Integer , T1 As Integer Dim Aa As String * 2 Dim Bb As Byte Dim C As Byte Dim I As Byte Declare Sub Temperatura Do Call Temperatura Loop Sub...
Witam kolegów. W pełni zgadzam się z kolegą Desa – przy podłączaniu wielu termometrów dobrze jest wykorzystać możliwości 1-wire czego nie zrobiono w wymienionym wyżej artykule z EP. Chodzi o podłączenie wszystkich czujników do jednej linii danych jak pokazał na rysunku kolega Desa. Podstawową zaletą takiego rozwiązania jest ograniczenie ilości...
na początek uprzedzę - szukałem. to co znalazłem nie odpowiada na moje pytanie. otóż w jaki sposób przeprowadzić FIZYCZNĄ identyfikację czujników w magistrali 1wire. wiem jak programowo szukać i zapisać ich numery, potem odczytywać temperaturę, ale nie wiem w jaki sposób dowiedzieć się z którego czujnika to temperatura. mam kilka pomysłów, ale nie wiem...
Kod dla 18B20 1wreset 1wwrite &H55 1wwrite Adres(1) 1wwrite Adres(2) 1wwrite Adres(3) 1wwrite Adres(4) 1wwrite Adres(5) 1wwrite Adres(6) 1wwrite Adres(7) 1wwrite Adres(8) 1wwrite &HBE Odczyt(1) = 1wread(2) T(p) = Makeint(odczyt(1) , Odczyt(2))...
No i chyba się wyjaśniło choć rezultat i tak marny. Cokolwiek to jest to nie jest jednak DS18B20, tknęło mnie to co pisał Wojtek75 i sprawdziłem jeszcze raz. Family CODE w numerze seryjnym tych czujników jest &H10 co wskazuje na to, że pomimo pięknego napisu DS18B20 na obudowie jest to DS18S20 lub DS1820. I byłoby nawet pięknie, bo poradziłbym sobie...
I tu już klapa. Nie mogę sobie pozwolić na to aby w przypadku awarii czujnika ponownie grzebać w programie. To musi działać tak że odpinam uszkodzony czujnik i wpinam nowy. Potem restart modułu i wszystko działa.. Nie chcę się upierać, że odczyty wszystkich czujników na jednej magistrali to najlepszy sposób ale kurka wodna ;) .... dla mnie większym...
witam, mam problem z obsluga czujnika temp. ds1820, polaczony jest przez 1Wire na plytce testowej AVT2500. Przykladowy program do obslugi pobralem ze srtrony http://as.rumia.edu.pl/artur/a/bascom/Te... Kompilacja programu przebiega bez zadnych problemow. W momecie uruchomienia uProca uzyskuje staly odczyt "- 0.5 C". z gory dzieki za pomoc. <--TERMO.BAS-->...
Hm a może wina nie leży w części programu odpowiadającej za odczyt ds'a tylko w częci komunikacji. ja odczytuje 2 termometry na 2 odrębnych pinach i na trzecim pinie pastylkę pamięci. nie mam najmniejszych problemów wyciągam termometr i mam napis Sensor 1 uszkodzony.. albo 2-gi zależy który wyciągnę, ale cała reszta programu chodzi idealnie. mogę ustawić...
Witam, przeszukałem już cały portal i nie znalazłem odpowiedzi. mam kod obsługi 3 x DS18X20 z numerami układów zapisanymi w EEPROM i jeżeli chcę odczytać właściwy ROM to muszę użyć sekwencji jak w kodzie w sekcji 1 (bez skoku do podprogramu) 'program odczytujący obecność układów 1WIRE i sprawdzający ROMy z EEPROM $regfile = "attiny2313.dat"...
Cześć, dopiero zaczynam przygodę z Atmegą8 i mam kilka (podstawowych zapewne) pytań: 1. Co to znaczy, że pin uC jest w stanie wysokiej impedancji? Tzn jest tam logiczne 0, czy 1? 2. W assemblerze jest taka operacja jak NOP , w C jest np _delay_us() Czy można przyjać, że wywołanie _delay_us(..) odpowiada iluś tam operacjom NOP ? 3. W mojej Atmedze mam...
Witam Mam taki problem, że nie działa. I nie mam pojęcia co w nim może być nie tak... ale czy cokolwiek jest dobrze... Programowania avr uczę się od 2 dni, więc proszę o wyrozumiałość. Na wyświetlaczy LCD cały czas pokazuje mi -0,01. czasami pokazywało większe liczby... ale termometr nie reagował na zmianę temperatury. [syntax=c] #include <avr/io.h>...
Teraz układ działa poprawnie, z ping'owałem go i ruszyło. Udało mi się uruchomić stronę internetową na tym układzie jednak pojawił się problem z odczytem temperatury. ********* ZMIENNE ********* Dim Nr_ukladu(8) As Byte 'tablica w której przechowamy nr seryjny układu Dim Zmienna As Byte 'zmienna pomocnicza wykorzystywana jako licznik Dim Temp...
http://obrazki.elektroda.pl/1523592300_1... W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja...
Czy wysłanie liczby 0xcc mam traktować jak znak ascii o tym numerze?? Ponownie sie zapytowuje jak wysłac liczbe na port. Jezeli to przystawka z 1wire na rs232 to sadze ze trzeba odpowiednio przetłumaczyc to na C++. 1wwrite &HCC // wysłac liczbe 0xcc na port 1wwrite &H44 // wysłac liczbe 0x44 na port Waitms 750 // Sleep(750) 1wreset // wysłac 0x00 na...
...Tzn głównie interesuje mnie jak je rozróżnić tak żeby procek wiedział który jest który i odpowiednio z nich obliczał temp??... To jest akurat prosta sprawa.Skoro mają być na jednej magistrali , to tak czy siak , musisz odczytać ich numery seryjne(ID,adres).Jaki już to zrobisz , to po family code łatwo rozpoznasz , który numer należy do którego DS-a....
numer ds1820 odczyt ds1820 odczyta numer ds1820
błąd olejowy bezpieczniki znajdują klimatyzator ciepła
elektrownia wiatrowa elektrownia wiatrowa
Toyota Traigo 48 15 – jak zwiększyć prędkość jazdy, ustawienia serwisowe, limity producenta Jak odkręcić obrobioną śrubę - skuteczne metody i narzędzia