Proponuje przejzec note katalogowa do tego ukladu. Ze specyfikacji magistrali 1Wire wynika ze zawsze na poczatku transmisji musi byc reset, potem komenda np read rom i pastylka odpowiada na nia wysylajac nr seryjny.
Na początek każdą instrukcję od 1Wire obuduj takim czymś: [syntax=basic4gl] Disable Interrupts 1wreset 'Reset magistrali 1wire. Enable Interrupts Disable Interrupts 1wwrite &HCC Enable Interrupts ...[/syntax]
Jeszcze takie jedno pytanko... Jak ustawić fusebit'y? edit: Dodałem napisy "Witaj!", "Miłego Dnia!" i "Temp:" Problem w tym, że przy ujemnej temperaturze, minus pojawia się przed "Temp:" Jak zrobić, aby był przed wynikiem pomiaru (po napisie "Temp:')? Upperline Lcd " Witaj! " Lowerline Lcd " Milego Dnia! " Do 1wreset 'reset magistrali...
U mnie dziala tak: 1wire_1 Alias P3.0 Dim T As Word Sub 1wire1 1wreset 1wire_1 ' reset magistrali 1wire 1wwrite &HCC 1wire_1 ' zaadresowanie DS'a - skip rom 1wwrite &H44 1wire_1 ' polecenie dokonania konwersji Wait 1 ' dajemy czas na konwersję (wystarczy 750ms) 1wreset 1wire_1 ' reset 1wwrite &HCC 1wire_1 ' adres 1wwrite &HBE 1wire_1...
Przykładowy programik, ale dla DS18B20: Dim Bd(9) As Byte 'tablica Dim T As Integer 'zmienne Dim T1 As Integer Dim T2 As Integer Declare Sub Read18b20 'deklaracja procedury Cls 'inicjacja wyświetlacza Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 'def. znaku stopnia Cls Lcd "Temp:" Do 1wwrite &HCC 'rozkaz SKIP ROM 1wwrite...
Ten kod napisałem na podstawie dokumentacji temometru i dokumentu opisującego interface 1 wire od atmela: A do dokumentacji AVR-ka zaglądałeś :?: Zastanów się, czy można uzyskać niski stan na magistrali 1wire, jeżeli pin do niej podłączony jest ustawiony jako wejście :?: [syntax=c]unsigned char _DS18B20_ReadByte() { _DATA_DDR &= ~(1 << _DATA_WIRE);//...
Witam. A jak chcesz uaktywnić ten drugi , skoro "ogłuchł" po wybraniu pierwszego i nie reaguje na żadene polecenie :?: Jedynie RESET magistrali może go ożywić :) Piotrek
Poniżej podaję przykładowy poprawny kod dla układu DS18 B 20, wyświetlający temperaturę z rozdzielczością 0,1*C: Dim Bd(9) As Byte 'tablica Dim T As Integer 'zmienne Dim T1 As Integer Dim T2 As Integer Declare Sub Read18b20 'deklaracja procedury Cls Lcd "Temp:" Do 1wwrite &HCC 'rozkaz SKIP ROM 1wwrite &H44 'rozkaz CONVERT...
Witam serdecznie !!! Mam taki problem z DS18b20 i ATmega16. Programuje w BASCOMie i wykorzystuję funkcję 1wirecount tak jak w programie poniżej i ciągle mi wyświetla że ilość podpiętych urządzeń to 0, nie wiem w czym tkwi problem. Podpiąłem zgodnie z nota katalogową tzn 1 do gnd 2 do uP i do tego 4,7k rezystor oraz 5v pod Vdd. oto 'Termometr DS18B20...
ło matko ;) po opisie kolegi atom1477 i po tej informacji, że "Bascom coś kombinuje" można by uznać, że napisanie sotu do obsługi 1wire to rzecz prawie niemożliwa dla zwykłego śmiertelnika. Tymczasem to co robi Bascom to absoultnie nie żadna kombinacja tylko normalne zachowanie - ponieważ to podtrzymanie stanu wysokiego na pinie portu jest niejako przygotowaniem...
'***************************************... '*********************************1 WIRE READ************************************... '***************************************... Ds1_read: 1wreset Pinb , 0 'reset magistrali 1WIRE 1wwrite &HCC , 1 , Pinb , 0 1wwrite &HBE...
Witam. Ze względu na warującą ostatnio na dworze temperaturę chciałem zrobić prosty termometr oparty na 89s52 i czujniku 18b20. Napisałem program i o ile pomiar temperatury działa należycie z dokładnością 0.5*C to mam spory kłopot z porównaniem i zapamiętaniem tej minimalnej- aby rano wiedzieć do jakiej spadła temp w nocy. Układ sprawuje się dobrze...
Witam Reset mam dokładnie tak ak na obrazku tylko mam dwa kondensatory równolegle.Próbowałem z jednym 100n i osobno 2,2uf efekt ten sam.
Trochę wiesz a jednak nic nie wiesz. Może i listonosz rzucił te listy na klatkę ale na każdym był adres. Wystarczy skrzynąć sąsiadów że poczta przyszła a każdy znajdzie coś dla siebie. Jak by ci się chciało poczytać to byś wiedział jak działa ten termometr kolegi DUCH. Najpierw poprzez reset magistrali 1wire i odpowiednio wysłaną komendę do tejże magistrali...
To nie jest poprawny zapis http://obrazki.elektroda.pl/3954802400_1... Życzę miłego dnia
Nie bez powodu wspomniałem o końcowym resecie. To fakt, że specyfikacja 1wire w najmniejszym stopniu nie każe resetować magistrali po transakcji. Wynikło to z moich własnych doświadczeń. Taki DS2450 jeśli pracował z wieloma kolegami na długim kablu, nie zawsze chciał akceptować reset rozpoczynający transakcję. Empirycznie zostały na to znalezione 2...
witam - czy ktoś z was pisał program obsługujący te pastylki (w BASCOMIE) bo ja mam straszliwe problemy.... a może w asm-ie ktoś ma ? też mile widziane:) pomóżcie bo trace mase czasu przez to i nic nie dzaiła.... wszystkie układy 1wire oprócz pastylek wykrywa a samych pastylek nie... nawet reset magistrali niedziała... niemam tutaj aoscyloskopu więc...
http://obrazki.elektroda.pl/7708539300_1... Witam Wszystkich! Staram się podłączyć uC (ATMEGA) do magistrali 1Wire w charakterze SLAVE. Mój SLAVE prawidłowo czyta z magistrali (rozpoznaje RESET PULSE oraz komendę SEARCH ROM wystawioną przez HOSTa), lecz niestety nie potrafi nadawać :( To znaczy, gdy mój SLAVE wysyła do mastera bity...
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...
Read ROM jest, gdy koniecznie chcemy uzyskać "Lasered ROM Code" - adres pojedynczego układu na magistrali, bo wtedy nie ma potrzeby wykonania Search ROM (oczywiście każdą sekwencję logiczną wymiany danych poprzedza się resetem magistrali). Do wywołania właściwego adresu jest Match ROM. Po wykonaniu tego dopiero postępujemy analogicznie jak po Skip ROM...
Witam. Sprawdź w ten sposób: $crystal = 1000000 'deklaracja częstotliwosci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaku stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejscia magistrali 1-wire Dim Odczyt(2)...
...Dzięki za dobre chęci, ale niestety nie znam ASM - pisze w C, ale jakbyś mógł podesłać powiedzmy algorytm - czy coś w rodzaju krok po kroku jak dogadać się z pastylką, to zjadłbym swoje kapcie ;). Zapewniam Cię , że napisanie 2(lub 3) funkcji , które "załatwią" transmisję na magistrali 1wire , jest dużo prostsze , niż skonsumowanie własnych kapci...
Wrzucam tu procedurki którymi ja odzczytuję DS18B20 w asemblerze '51 może się przydadzą :) ; /-----\ ; |-------| ; | | ; |DS12B20| ; |_______| ; | | | ; GND Vdd ; DQ ; PIN1WEQU P1.0 ;=======================================... ; procedura odczytu temperatury z DS18B20 ;---------------------------------------...
[syntax=basic4gl]'Projekt sterownika na podczerwień '12 kanałów binarnych sterowanie załącz/wyłącz 'oraz 2 kanały sterowane sygnałem PWM do regulowania 'układ posiada system chłodzenia składający się z trzech wentylatorów 'każdy wentylarot załacza się przy innej temperaturze 'przy temperaturze >=40 stopni celcjusza działają wszystkie wentylatory...
Piszę obecnie program obsługujący termometr ds18b20. Nie mogę wykorzystać gotowych bibliotek dostarczonych razem z kompilatorem (CodeVision), więc obsługę 1 wire napisałem sam na podstawie specyfikacji. Jednak poza wysłaniem resetu komunikacja nie przebiega poprawnie. Oto mój kod: /***************************************... This program was...
Klima napisał: No może nie do końca tak - 1wire zezwala na dowolnie długie okresy pomiędzy kolejnymi bitami, zatem można pokusić się o implementację poleceń "zapisz 1", "zapisz 0", "reset", "odczytaj bit", a każde z nich może być wysyłane w pojedynczym pakiecie po USB (bo inaczej się nie da) i realizowane przez ATmegę. Implementacja USB na ATmedze działa...
Podejrzewam, że błąd będzie gdzieś w samym schemacie/płytce, ponieważ przed chwilą złożyłem na stykówce na szybko układ: - Atmega8 - 1x DS18B20 - dioda led i wrzuciłem w niego program: Dodano po 3 Problem z wykrywaniem czujnika rozwiązany. Powodem całego kłopotu okazało się jedno ze złączy (przy magistrali 1Wire), które było uszkodzone i nie stykało....
Jeśli Autor ma w swoim opisie montaż instalacji alarmowych to ja skromnie dedukuję, że sa to już gotowe komercyjne rozwiązania w które Autor tematu nie może zbytnio ingerować. Po prostu jakiś system dostępowy. Przy tych pastylkach to mastery muszą cyklicznie wysyłać sygnał Reset i liczyć że pastylka odpowie. O żadnej synchronizacji z drugim masterem...
może sie przyda - program właśnie na czujnik 18s20 ' BASCOM College ' (EdW 2001.01 str. 20) ' Temat : "Termometr z Dallas DS1820" ' wersja 1.1 (20.03.2001) ' Compiler : BASCOM 8051 LIBRARY V 2.06 ' Used ROM : &H7A3 1955 (dec) > Ok ' Poprawki do ver. 1.0: ' - poprawiony błšd odczytu temp > 41,5...
Witam, czy jest jakiś ogólny sposób sprawdzenia obecności wybranego urządzenia na magistrali 1wire? Mam 4 x ds1820 i wszystko działa ok. Usuniecie jednego czujnika daje dla niego wynik pomiaru 128 stopni. I to mozna wykorzystać jako test. Ale co z innymi urzadzeniami? Wysyłam reset, potem MatchRom , adres urzadzenia i co dalej robić? W Bascomie widziałem...
http://obrazki.elektroda.net/60_12870844... Witam. Termometrów na elektrodzie było już dużo, w tym projekcie nie ma nic specjalnego, poza tym że wykorzystuje w miarę nowy procesor LPC1343. Projekt umieszczam w sumie tylko po to żeby podzielić się źródłami. Mam nadzieje że komuś się przydadzą. Jak wiadomo, kto stoi w miejscu, ten się cofa....
Temat poruszany ale ... pomysl nowy. Jak doskonale wiemy w sieci LAN (typowa skretka) zostaja 2 pary wolne (na 100% b-nieb. nieb.). Wykombinowalem sobie ze moze te linie wykorzystac do podlaczenia slave-ow poprzez magistrale 1wire. Mam w sieci ok. 7 switchy one lubia sie czasem "zawiesic" nie wnikam w stan programowy bo z tym roznie. Zwykle pomaga odlaczenie...
Eeeeeh no panie kolego hotdog, ależ to jest do zrealizowania i to nawet w Bascomie - zresztą w dowolnym języku bo to nie jest zależne ani od języka ani od magistrali 1wire tylko od pomysłu. Nie zrozumiałeś mnie w tym miejscu. Miałem na myśli że nie idzie sprawdzić obecności konkretnego czujnika przy komendzie Reset. Jedynie czy jakikolwiek odbiornik...
Witam Zachęcony sukcesami z płytką EVB 4.3 zaprojektowałem i zamówiłem swoją - na początek z AtMega8 w DIP. Do tego pamięć 24C32 oraz układ do RS485. Wszystkie układy mają kondensatory 100 nF ( stabilizator 7805 również + jeden elektrolit ). Całość ze złączem pod wyświetlacz 2*24 ( właściwe 4*12 ) Reset przez rezystor 10 K do +5V AtMega8L ( na 8 MHz...
Panie Tomaszu, Układ nie odpowiada, to fakt, ale potwierdza Pan jednocześnie tym samym to co zdążyłem już ustalić. Kod jest bezcelowy bo zgodnie z protokołem na komende SEARCH ROM 0xF0 którą wysyłam (dowód oscylogram zatem kod realizuje poprawnie rozkaz i jak widać także poprawnie żąda odpowiedzi) mam w przypadku pojedynczego slave'a na magistrali otrzymać...
...A jak powinno być poprawnie ?? Przecież napisałem. Zadbaj o to, by w czasie obsługi magistrali 1wire, nie występowały przerwania. Najprościej jest wyłączać je na czas obsługi DS-a, ale wtedy, czasy załączenia ... dmuchania :-P trochę Ci się rozjadą. Można też użyć np. maszyny stanów, ale to raczej nie dla początkujących.
No racja :] Ale są przypadki gdzie moje rozwiązanie jest najoptymalniejsze. Są też przypadki odwrotne. Ja mam do obsługi 8 czujników, każdy na osobnym osobnym pinie...Osiem UARTow?..:] To po co masz je na 8 osobnych liniach, skoro 1-wire jest wręcz stworzone dla wielu układów na magistrali? BTW, np. 480us (reset 1wire) to mało?...gdy obsługuje to delay,...
Witam Jestem początkujący w sprawach programowania i robię sobie przykłady z książki Marcina Wiązania. Podczas pisania programu do odczytu z magistrali 1wire wyskakuje mi błąd takie błędy: Error : 40 Line : 0 Variable can not be used with RESET [PORT1] , in File : Error : 41 Line : 0 Variable can not be used with SET [PORT1]...
Napisz zatem kod takiej procedury i zawrzyj w nim także funkcje protokołu 1wire (odczyt i zapis bitu oraz bajtu i.tp. z obsługą błędów) w avr gcc Implementacja procedury przeszukiwania magistrali 1-Wire oraz podstawowych funkcji protokołu w AVR GCC wymaga dość szczegółowego podejścia. Poniżej przedstawiam przykładowy kod, który zawiera podstawowe operacje...
Witam. Dostałem 4 sztuki ds18b20 w samplach i konstruuję termometr do szkoły. Napisałem program,udało mi się połączyć z czunikami i wyświetlić temperaturę na LCD,wszystko było ok. Oba czujniki miałem zamontowane na płytce prototypowej(mam na niej zmontowany cały układ). Po pierwszych testach przylutowałem do jednego czujnika skrętkę o długości ok 30...
Program działa, ale mam pytanie... Czy ktoś się spotkał że w czujnikach DS1820 temperatura jest wyższa o kilka stopni ? Ja dla sprawdzenia włożyłem czujnik w folii do lodowatej wody (woda z lodem), temperatura powinna wskazywać coś koło zera, jednak pokazywało minimalnie 5 st. C; dlatego też w czujniku drugim odejmuję jeszcze 5 stopni. Drugie pytanie...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
...Okna czasowe są realizowane według zaleceń z datasheet układu DS18B20. Nie bardzo :( Zauważ , że każdy timeslot , kończy się zwolnieniem magistrali na >1us , a Ty nie robisz tego , kiedy wysyłasz bit o wartości "0".Gdybyś wysłał na magistralę kolejno 8 bitów o wartości "0" , to DS zinterpretował by to jako Reset(8x60=480).Musisz to poprawić , a...
Za bardzo nie wiem już co może być powodem takiego zachowania mikrokontrolera, więc jestem zmuszony prosić Was o pomoc :) Zacznę może od tego, że pracuję na zestawie ZL3AVR i Atmedze16. Chciałem podpiąć do uC termometr DS18B20, ale uC go nie widzi. Napisałem sobie program, do zliczania urządzeń na 1W ale pokazuje mi ciągle 0, oto jego kod: '---------------------------------------...
Nie bardzo wiem jak to napisac :-(, a czy jesli mam tylko jedno urzadzonko na 1wire to musze sprawdzac jego kod? Nie chodzi o numer urządzonka , tylko o to , że nie sprawdzasz czy odpowiedziało na sygnał RESET. jest ... one_wire_reset();//wystawia sygnał RESET na magistrali i zwraca kod błędu //gdy była odpowieź PRESENCE PULSE , funkcja zwraca...
Jak wklejasz kod to wklej go jako kod (Code)- lepiej się patrzy. nie mam teraz czasu analizować twoje dzieło, ale dam ci moje prcedury może pomogą znaleźć byka. Są nieco dziwne bo dla 2szt dallasów podpiętych pod inne porty ;***************************************... PROCEDURY 1 WIRE W_WRITE:...
Witam ponownie... Więc, znalazłem i rozwiązałem kilka problemów. Pierwszym była niewłaściwa/nieaktualna dokumentacja do 1WireMastera od Dallasa, pdf ze strony jest bardzo nieaktualny i dotyczy jednej z pierwszych wersji. Dlatego 1WM nie komunikował się z czujnikiem bo źle konfigurowałem rejestr dzielnika częstotliwości zegara. Zmieniłem trochę moje...
piszę bibliotekę do 1wire i mam dziwny problem z czujnikiem dallasa. układ odpowiada mi presence pulsem ale gdy wysyłam polecenia np 0x33(read rom) i cisza cały czas 0xFF na magistrali. tak to wygląda, zaznaczyłem czasy reset: http://img848.imageshack.us/img848/8407/... 0x33: http://img151.imageshack.us/img151/292/0...
Ok oto kod po poprwakach: $regfile = "m16def.dat" $crystal = 4000000 $baud = 2400 Dim A As Byte Config Pinc.2 = Output 'tryb wyjscia Set Portc.3 'stan wysoki na lini zasliania Config Pinc.3 = Output Waitms 1 Reset Portc.3 'na lini zasilania powstaje stan niski For A = 1 To 16 Reset Portc.2 Waitus 6 Set Portc.2 Waitus 6 Next A Set Portc.3 'dajemy...
W związku z budową sterownika do pompy CWU, po przygotowaniu projektu analogowego, stwierdziłem że znacznie prościej będzie wykorzystać mikrokontroler. Urządzenie jest dość proste, mierzy regularnie temperaturę i jeśli wykryje wzrost załącza przekaźnik na określony czas. Niestety w pisaniu oprogramowania do µC jestem początkujący i prosiłbym o...
Witam. Znamy sie juz z mojego wczesniejszego tematu :) gdzie pytalem o cos podobnego ale dla jezyka C. Z racji braku supportu dla polaczenia 1wire-8051-jezykC postanowilem wykonac zadanie w BASCOMIE dla 8051. Usiadlem przerobilem troche kodu z C i oto efekty: $crystal = 12000000 Wysw Alias P2 'a-h W1 Alias P0.1 ' 3 anody dla 3 wyswietlaczy W2 Alias...
Witam, Mam pewien sterownik-czytnik, który po podłączeniu do niego pastylki DS1990 automatycznie czyta jej numer; nie wiem jak to robi ale zakładam, że zapewne co jakiś czas wysyła sygnał Reset i czeka na odpowiedź układu na magistrali - sygnał Presence. Jako, że ten temat jest (jeszcze) mi dość obcy zastanawiam się, czy znając numer seryjny (8 bajtów)...
Declare Sub Read1820 'deklaracja podprogramu Declare Sub Temperature 'deklaracja podprogramu Dim Bd(9) As Byte 'deklaracja tablicy zmiennych Dim I As Byte , Tmp As Byte 'deklaracja zmiennych używanych przez program Dim T As Integer , T1 As Integer 'deklaracja zmiennych używanych przez program 'Dim X As Byte 'deklaracja zmiennych używanych przez program...
Witam, Jak wiadomo w procedurze SearchROM magistrali 1wire sterownik cały czas indeksuje miejsca, gdzie nastąpiła sekwencja 01 lub 10 czyli te, gdzie zachodzi różnica na konkretnym bicie podłączonych układów. Od tego czasu reszta układów (które mają inny bit niż aktualny) milczy aż do końca procedury czekając na kolejny Reset. Czy w takim razie kolejne...
Spróbuj tego - u mnie chodzi bez problema...! Declare Sub Read1820 'deklaracja podprogramu Declare Sub Temperature 'deklaracja podprogramu Dim Bd(9) As Byte 'deklaracja tablicy zmiennych Dim I As Byte , Tmp As Byte 'deklaracja zmiennych używanych przez program Dim T As Integer , T1 As Integer 'deklaracja zmiennych używanych przez program 'Dim X As Byte...
Chyba najlepiej by było zrobić dodatkowe przerwanie, które realizowało by elementarne operacje na magistrali 1Wire, czyli włączało stan niski linii i go zwalniało. Wtedy nie byłoby tego czekania 480 us i to dodatkowe przerwanie mogłoby przerwać przerwanie silnika na nieistotny czas. Tylko, czy to nie jest za duża komplikacja? Na czas nadawania reset...
Witam, chciałbym wszystkich prosić o pomoc przy obsłudze iButton na ATmega32 w C. W tej chwili jestem w miejscu (chyba ze sie myle to poprawcie mnie :D) wykrycia pastylki na czytniku. Na ta chwile czytnik zapala diode No1, jesli czytnik wykryje pastylke, zapala na chwile diode No2 (gasi No1), potem wraca do poprzedniego stanu. [syntax=c] #include <avr/io.h>...
Kurcze ale malutki jestem... :D Po skrócie 1. Nie używałem JTAG-a i ta wiedza póki co nie jest mi raczej potrzebna. 2. Wiem jak ustawia się fusebits, ale jak napisałem na AT mam wyłączony JTAG a na AT168 nie. Jednak magistrala na AT168 działa bez problemu i to na porcie C z włączonym JTAG-iem 3. Rezystor podciągający dobrałem metodą prób i błędów staneło...
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, Nabyłem moduł MMega01 firmy http://www.propox.pl/index.phtml?lang=pl Problem polega na braku komunikacji z urządzeniami 1wire... Probowałem podłączyć termometr DS18b20(nie jeden - myślałem że ten co mam jest uszkodzony) i nic... taktowanie procka to ok 16MHz. Jako rezystor podciągający na magistrali 1wire daje 2,2k np w ATmega32 zawsze wystarczało....
Witam, Panowie już mnie coś trafia, może ktoś wpadnie na pomysł co źle robię? kurczę wykorzystałem idealnie zerżnięte procedury z noty MAXima http://pdfserv.maxim-ic.com/en/an/app162... do odczytu, zapisu 1Wire - jeśli chodzi o resetowanie, sprawdzanie PRESENCE, odczyt temperatury z pojedyńczego DS'a wszystko śmiga no ale teraz próbuję powalczyć z...
Pokładałem sobie urzadzonko które ma czytac z czterech ds-ów temperature, wszystkie cztery sa na jednej magistrali z zasilaniem osobnym, (trzy kable) wyswietlacze na których ma byc pokazana temperatura to zwykłe 7-mio segmentowe led-y, multipleksowane w przerwaniu od timera (przerwanie działa tylko w momentach kiedy ds czeka naprzykład na impuls strobujacy...
Ok tutaj masz kody zrodlowe z ksiazki "Programowanie mikrokontrolerow AVR w BASCOM". Proponowalbym na tym etapie zakonczyc temat! '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...
Drodzy koledzy. Dziękuje wszystkim za pomoc w temacie, lecz jak zwykle błąd był w przeoczeniu głupiej rzeczy w kodzie. Muszę stwierdzić, że nie mieliście racji co do czasów magistrali gdyż jak się okazało są one dobre (byłem o tym przekonany gdy pisałem kod z wykresami przed oczami i sprawdzałem w symulatorze) Błąd w 1 kodzie tkwi w że nie można użyć...
Witam Mam pytanie dlaczego poniższy kod nie pozwala mi dogadać się z DS18B20. Napisałem/przepisałem go na bazie opracowania Pana Cezarego Klimasz "Obsługa interfejsu 1-wire na przykładzie obsługi DS18B20". Proszę o pomoc. Dziękuję #include <string.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include...
Witam! Zmontowałem zestaw avt 5160 oparty na atmega8, jest to sterownik do klimatyzacji, umożliwiający uzyskanie klimatyzacji automatycznej z manualnej. Po złożeniu układ uruchomił się bez problemu, ale po wstępnych testach sterownika należało czujnik temperatury DS18S20 (czujnik temp. wnętrza) wylutować z płytki i przenieść bliżej parownika. Ogólnie...
Proszę bardzo[syntax=basic4gl] 'Copyright Robert Wołgajew, 2012 'Wersja z dnia 26.04.2012 $regfile = "Attiny2313.dat" $crystal = 1000000 'Fusebit CKDIV8 = 0 -> zaprogramowany (ustawienie domyślne producenta) $hwstack = 32 $swstack = 32 $framesize = 32 'Konfiguracja wyświetlacza LCD Config Lcd = 16 * 1 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.2...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Nie chodziło mi o "podróżowanie ramek w czasie" tylko sposób układania okablowania, ewentualne jego uszkodzenie oraz wpływ na cały wypadkowy system. W przypadku Ethernetu w najgorszym wypadku spali się wejście (transformator) w switchu jednak cała pozostała sieć będzie działać. Serwis okablowania jest też znacznie łatwiejszy - wiadomo który odcinek...
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-->...
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...
Witam wszystkich, robię prosty układzik na uC atmega. Zadaniem go będzie odczyt temp z czujnika ds18b20 i ustawianie zewnętrznego przetwornika dac po spi. Wszystko praktycznie napisałem, bo części programu były wykorzystywane w innych układach, które pracują, z spi problemu nie ma, z odczytem ds też. Ale chodzi o to, żeby cały układ pobierał jak najmniej...
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...
Witam Próbuje przerobić kod obsługujący kilka DS18B20 na jednej linii i drugi obsługujący kilka DS18B20 na kilku liniach. Niestety jak na razie efekt jest taki, że działa tylko pierwsza linia, czyli dwa DS18B20. Jeśli chodzi o konfiguracje, to celowo nie ma Config 1wire = Porta.1 gdyż wpisanie tego portu, jako 1WIRE powoduje wyświetlanie 0.0 dla pierwszego...
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...
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...
Cieszę się, że ci to działało, ale wystarczy zaglądnąć do noty procesora i zrobić parę prosty obliczeń, żeby przekonać się, że ci USART taktowany wewnętrznym generatorem w ATMega działał wyłącznie przez przypadek. Tak na szybko ja znalazłem dwa przykłady obliczeń: http://www.maximintegrated.com/app-notes... http://electronics.stackexchange.com/que...
Kilka pytań - bo kto pyta nie błądzi :-) Niby wszystko ładnie liczyło w przerwaniach - ale tylko do momentu kiedy zacząłem wywoływać Sub lub funkcję - wtedy zaczyna się resetować i zaczyna program od początku co sekundę ?? O co chodzi Teraz przestało mi nawet liczyć w przerwaniach. Wchodzi tylko raz i potem lcd się czyści. Zamieszczam kod, w którym...
Witam. Zbudowałem termometr w oparciu o DS18b20. Chciałbym zapisywać co 1200 pomiar do tablicy 3-elementowej. Po zapełnieniu tablicy 3 pomiarami: pierwszy pomiar = 1 element tablicy drugi pomiar = 2 element tablicy trzeci pomiar = 3 element tablicy chciałbym porównać wartości i sprawdzić, czy temperatura wzrosła, czy spadła. Wszystko wydaje się proste,...
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...
mm nie widzę deklaracji DDR - kierunków działania portów. Domyślnie są one ustawiane jako wejścia, a ustawianie ich za pomocą PORTB = 1 i PORTB = 0 to włączanie i wyłączanie Pullupa (który już de facto masz na magistrali). Poza tym nie wiem jak chciałbyś w ten sposób zapisać 0 :) Niżej masz wycinki mojego programu: (ATMEGA8) #define OW_IN DDRB &=...
Witam serdecznie. Walcze już z tym drugi dzień. Na początku problemem było permanentne wskazanie 0 -1. Jednak gdzieś na forum znalazłem informację aby wymienić czujnik co okazało się strzałem w dziesiątkę. Teraz jednak mam inny problem. Maksymalna temperatura jaką chciałbym zmierzyć to około 100 stopni. Jednak po przekroczeniu wartości 35 stopni układ...
Inna rzecz, że nawet jak odczytam osobno numery seryjne (podłączając je osobno po kolei) to i tak nie działają razem. Nie działa dlatego iż inaczej się obsługuję magistrale jak masz jeden układ a inaczej jak wiele. Nie będę tłumaczył jak odczytać numery bo koledzy powyżej wskazali odpowiednią dokumentację łącznie z numerem strony. Jeśli masz parę układów...
Nie, nie lutuję do kabli tylko przykręcam do złącz ARK Oto program: $crystal = 4000000 'deklaracja częstotliwości pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejścia magistrali...
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)...
Witam Atmega328 i Attiny2313 przez RS485 Atmega328 Master - zapis na razie wyzwalany przez Timer If Flaga_001 = 1 Then Set Re_de Waitms 1 Print "MOD001 " ; Chr(13); Waitms 1 Reset Re_de Flaga_001 = 0 Licznik_mod001 = 0 End If ATtiny2313 Slave $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '*********************...
Czy budowałeś układ z komunikacją przez I2C na PCB? I czy opisane przez Ciebie problemy dalej występowały? Unikam I2C jak ognia w swoich konstrukcjach. Tak jak wspomniałem wcześniej, miałem przypadek wywalającego się I2C na płytce. Zakłócenie wygenerowane przez typowy przekaźnik 12V/230VAC 16A powodował absolutny zwis MCP23008... Myślisz, że to ogólnie...
Resetujesz magistralę a nie urządzenia do niej podłączone.
witam, Od razu do rzeczy. Jak w temacie! Program odczytuje po 1wire temperatury z 2 czujników. Wszystko działa poprawnie (płytka, czujniki dodam ds18b20). Kod programu poniżej. Error : 261 Line : 39 Array expected [ID1] Error : 261 Line : 43 Array expected [ID2] Error : 124 Line : 43 LOOP expected ostatnim errorem...
Cześć, Ponieważ udało mi się poprawnie odczytać temperaturę z termometru cyfrowego DS18B20 na module prototypowym eXtrino XL z AtXmega128a3u na pokładzie - pragnę się podzielić tym minikodem z początkującymi osobami. Myślę, że informacje zawarte w tym przykładzie, pozwolą osobom początkującym (czyli takim co już potrafią migać diodą) na zrozumienie...
Bootloader? Jak to wgrywasz? Dodano po 2 Można skrócić. 'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z ksišżki "Mikrokontrolery dla Poczštkujšcych" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja częstotliwo?ci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla...
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejcia magistrali 1-wire Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5 'Deklaracja wszystkich zmiennych potrzebnych do pracy programu Do 1wreset 'reset...
Witam! Postanowilem sobie zrobic termometr temp. ewenetrznej/zewnetrzenj do samochodu. Czytalem troche na elektrodzie, przegladalem Datasheet i zamiast zdobyc dodatkowa wiedze tylko mi sie zamet wkradl w moja wizje. Mam kilka pytanek zwiazanych z zasilaniem tak czulych urzadzen w zasmieconym samochodowym srodowisku. 1. stabilizator 7805 uzbrojony w...
zróbmy to na przykłądzie 1 lini 1 wire: włącza się ukłąd, uruchamiany jest transoptor który zwiera rezystor podciągający dla magistrali i na niej pojawia się napięcie zasilania (pomniejszone o spadek na transoptorze), dajemy 500ms czasu (czas nie jest bardzo ważny, jedynie dajemy czas na naładownie czujnikó na magistrali), po 500 ms sprawdzamy magistrale...
Witam, potrzebuje gotowego wsadu do procka tzn już skompilowanego do postaci hex. Przerobiłby mi go ktoś??? Oto kod: 'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z ksišżki "Mikrokontrolery dla Poczštkujšcych" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja częstotliwo�ci pracy kwarcu...
OK, powiedzice mi tylko jedno. Mój DS18b20 jest podpięty pullupem 10KOhm, po włączeniu tej funkcji : //RESET 1 Wire//////////////////////////// unsigned char reset1Wire(void) { unsigned char counter=12,tmp; //// SET1WireOut; // DDRX jako wyjscie PORT1WireOut&=~(1<<N1Wire&... // w stanie niskim _delay_us(500); //...
Może mi ktoś pomóc w poprawieniu tego kodu aby wyświetlacz nie migał co 1 sek. Próbowałem sam coś zrobić i mi nie wychodzi. Czytałem już kilka tematów na ten temat ale nie wiem jak to poprawić. $regfile "attiny2313.dat" 'model procesora dla którego jest ten program $crystal = 4000000 'deklaracja częstotliwo?ci pracy kwarcu Config Lcd = 16...
Witam. Oto KOD: 'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z książki "Mikrokontrolery dla Początkujących" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja częstotliwości pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 ,...
Kiedyś przerobiłem na szybko jedną z dostępnych bibliotek na obsługę kilku ds18b20 na różnych liniach: [syntax=c] //#ifndef 1wire //#define 1wire #include "hardware.h" ////////////////////////////////////////... // ROM commands #define DS18B20_ROM_SEARCH 0xF0 #define DS18B20_ROM_READ 0x33 #define DS18B20_ROM_MATCH...
Kod jest dość spory więc wkleję najważniejsze fragmenty odpowiedzialne za RC5 ,SD i 1Wire. RC5 '***************************************... '****************************PROCEDURA ODCZYTU RC5**************************** '***************************************... Readir: Disable...
magistrali 1wire 1wire reset 1wire reset magistrala
toyota radio zasilać bosch chłodziarka panel rezystor objętościowy
adapter bluetooth mackie thump
Punkty masy w Mercedes-Benz W163 - lokalizacje Czy w zabieraku od kopniaka potrzebny jest jlin?