Problem dotyczy możliwości utraty zawartości EEPROM dla układów DS18B20, DS18S20, DS1822 (Rev. B7): 1. Występuje bardzo rzadko i w specyficznych warunkach. 2. Nie można dokładnie określić partii towaru narażonej na błąd. 3. Utrata zawartości EEPROM-u powoduje stratę kalibracji i wartości rejestrów TH i TL 4. Utrata zawartości może nastąpić tylko w trakcie...
Pomiar temp. i sterowanie wentylatorem - w wydaniu uC potrzeba : - attiny85 - ds18b20 + rezystor pullup - mosfet Logic-level + rezystor na bramkę Pokaz kolego ile elementów potrzeba na to samo w wydaniu analogowym. Pozdr
Zmniejszyć rezystor podciągający, skorzystać z CRC, zmodyfikować czasy w kodzie obsługi. Bzdurny odczyt to brak weryfikacji CRC, tylko. Ilość błędnych ramek można zmniejszyć poprzez korektę okien czasowych 1wire, szczególnie na długich przewodach. W trybie pasożytniczym nieprawidłowy pullup na czas konwersji zwróci temp. 85. Rezystor pociągający ma...
Załadowałem w końcu Sonoff-Tasmota z [url=https://github.com/arendst/Sonoff-T... Jak ktoś chce mieć już wstępnie ustawione to można zbudować samemu ze źródeł i wpisać ssid itp. Odpadnie manewrowanie przyciskiem by wystartować AP i konfigurować przez WWW. Skonfigurowałem w domoticzu mqtt gateway with LAN, zainstalowałem mosquitto. Dodałem...
Jak zasilany jest DS, jaki rezystor pullup
Jakoś tego nie widzę, żeby ci Maxim wysłał trefne próbki. Może sam je jakoś uszkodziłeś, źle podłączyłeś czy coś takiego? Sprawdź rezystor pullup, może trzeba zmienić wartość? Pamiętaj też, że każdy egzemplarz jest inny i zawsze będzie trochę wolniej/szybciej odczytywał. Dodaj opóźnienia o których pisze Boskidialer i sprawdź raz jeszcze.
Witam, walczyłem z tym samym problemem - najnowszy update Raspbianna z 7.02.2015 psuje komunikacje po 1-wire. Rozwiązaniem problemu jest dodanie odpowiedniego wpisu w config.txt. Read /boot/overlays/README. You will probably need to add: dtoverlay=w1-gpio to your config.txt, but you have to choose between that overlay and w1-gpio-pullup, and both have...
Odwrotne podłączenie raczej w przypadku tych DSów nie skutkuje uszkodzeniem układów. O ile nie doszło do termicznego uszkodzenia struktury. Czy na 100% masz układ taktowany 8MHz? U mnie raczej skutkuje. Nie rozumiem tylko dlaczego wszyscy koniecznie chcą zawsze 3 nogi podłączać (a szczególnie początkujący) skoro dwie podłącza się ławiej i bezpieczniej....
Hmm faktycznie są to same jedyneczki ... W takim razie mam 3 możliwości. 1 DS18B20 nie nadaje i pullup trzyma cały czas stan Hi. 2 DS18B20 nadaje, ale nie umiem odczytać bitu/bajtu prawidłowo 3 Niepoprawnie nadaje sygnał rozkazu. Żeby wyeliminować punkt 2, z założeniem, że DS jest sprawny więc 1 odpada i że nadaje prawidłowo, będę po wysłaniu rozkazu...
Witam, Nie działą dalej:( The 1-Wire bus must be switched to the strong pullup within 10μs (max) after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and the bus must be held high by the pullup for the duration of the conversion (tCONV) or data transfer (tWR = 10ms). No other activity can take...
Z tymi pinami P1.0 i P1.1 w 89C2051 chodzi mi o brak rezystorów Pullup w strukturze układu może pomóc.
Łączę to w ten sposób: https://obrazki.elektroda.pl/9438237900_... Czyli źle. Przeanalizuj to co napisałem o pullup i wyniki pomiaru multimetrem. Sprawdź jakie napięcie mikrokontroler traktuje jako poziom niski a jakie jako wysoki. Wskazówka: Zobacz w innych projektach jak włącza sie klawisze i jak je obsługuje. Prawie zawsze napięcia...
Czy ten "termometr panelowy" ma magistrale 1-wire ? jeżeli tak, ta na pewno brakuje rezystora pullup 4k7 pomiędzy DATA a VCC (+5V). Jeżeli nie, to nię będzie to działać z DS18B20. Pozdr
W takim razie odczytujesz same jedynki. Prawdopodobnie zapominasz zdjąć strong pullup przed odczytem danych, lub zainicjować odpowiednio odczyt (sygnał reset1wire lub coś podobnego).
Przecież jest połączenie master - slave i pośrodku tego połączenia jest pullup. Jak odetniesz mastera, to zostaje slave z rezystorem...
Zgadza się czujnik to DS18B20 :) . Powiedz mi proszę jeszcze o co chodzi z "Strong PULLUP" w momencie odczytu temperatury bo nie bardzo się orientuje. Wysłałem do sensora sekwencje "RESET -> Read ROM -> Convert T" i z pomiaru mama same zera. Czy to jest problem z tym tak zwanym "Strong PULLUP" W roli uzupełnienia w jaki sposób jest podłączony sensor...
U mnie pullupy maja 1k i SCL wyciąga 500kHz. Jesli masz długie przewody to zmniejsz wartość pullupów. Pozdrawiam
nie z paluszka, tylko z noty aplikacyjnej :) ad.1: cytuję kawałek algorytmu wg. noty aplikacyjnej PARASITE POWER ? Y MASTER ENABLES STRONG PULLUP ON DQ DS18B20 CONVERTS TEMPERATURE MASTER DISABLES STRONG PULLUP co wg. Ciebie zumek znaczy STRONG PULLUP bo wg mnie to nie znaczy to samo co zwykłe zwolnienie magistrali? cytat 2: PARASITE POWER ? N DS18B20...
1. Trzeba uważać na funkcje delayms i delayus, ponieważ mają one ograniczenia - tzn. nie można tam wstawić dowolnie duże liczby. Szczegóły w delay.h 2. U mnie ciekawy problem się pojawił w czasie konwersji temperatury - ponieważ układ był zasilany pasożytniczo. Nieważne jak kombinowałem z pullupami - zawsze to samo. W końcu po wystawieniu "1" na nóżce...
zwróci najmniejszą możliwą temp. Pullup cały czas będzie powodował stan wysoki. Z tym, że po procedurze resetu powinieneś otrzymać błąd
Kolejny fajny zegar i notoryczne braki. Brak RTC (np DS1307), przydałby się odczyt temperatury np na DS18B20 (sam w swoim mam dwa). Po co te rezystory PullDown przy przyciskach? W Atmedze pewnie jest pullup, więc w tym momencie marnotrawstwo energii.
Witam, Zgłaszam się do was z prawdopodobnie prostym problemem, który mnie mocno przyblokował i pewnie sam sobie z nim nie poradzę. Zaznaczę, że przeszukałem połowę internetu i nie znalazłem odpowiedzi... Układ stanowi Atmega8 taktowana wewnętrznym zegarem 1MHz. Atmega jest podłączona do DS18B20 przewodem z rezystorem pullup ~4,4kohm [syntax=c]#include...
Mowisz ze oszukuje do 0,5C przy konfiguracji 2-druty i 4k7 ? A jak zapodasz strong pullupa (tranzystor) to ile trzeba czekac na operacje Convert T ?
Ja tylko i wyłącznie stosuje skrętkę. Kable często idą wzdłuż linii zasilającej 3*400v i nie ma zakłóceń. Pull-up pewnie mi się zaraz dostanie nie stosuję więcej czujników niż 8 ale zawsze zakładam 1K zamiast typowego 4k7 A za co może się tu dostać koledze - ja też pisałem właśnie o zmniejszaniu pullupa na początek do 2,2K ale zwykle stosowałem 4-6...
Jest to modyfikacja kodu termometru z kursu avr-gcc. Mój wkład to funkcje 'przyciski' i 'termostat', a więc błąd dotyczy tylko ich(ewentualnie usytuowania ich w programie). Problem polega na tym, zwarciu PC4 do masy dostaje krzaki na lcd. Oto kod: #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h"...
Rezystor to sobie daruj na dłuższym przewodzie. Google hint: "Strong pullup during the conversion" - załączaj na czas konwersji tranzystorem zasilanie. Wszystko jest opisane w nocie katalogowej i aplikacyjnej układu, włącznie z poglądowym schematem...
Poniżej cytat z datasheet : "CONVERT T [44h] This command initiates a single temperature conversion. Following the conversion, the resulting thermal data is stored in the 2-byte temperature register in the scratchpad memory and the DS18B20 returns to its low-power idle state. If the device is being used in parasite power mode, within 10 µs (max)...
Przy podłączaniu na 2 drutach +5V łączy się z masą, a nie z DATA. Ale lepiej podłacz na 3 przewodach i sprawdź czy wtedy jest OK. 4,7k (należy zastosować strong pullup-a) to za duży opór i podczas trwania pomiaru napięcie zasilające dallasa napewno siada w dużym stopniu.
Czy do układu DS18B20 masz podłączone zasilanie +5V, czy pracuje on w konfiguracji dwupinowej? W karcie katalogowej jest wzmianka "If the DS18B20 is powered by an external supply, the master can issue read time slots after the Convert T command and the DS18B20 will respond by transmitting a 0 while the temperature conversion is in progress and a 1 when...
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); //...
Przecież to to samo. To nie jest "to samo". Połączenie równoległe rezystancji zmniejsza ich wypadkową, ale dla pojemności (a od niej zależy stromość zboczy) wręcz odwrotnie (pojemności się sumują). Poza tym pullup 4k7 jest typowy dla 5V zasilania. Dla 3.3V trzeba dać mniejszy. Do poczytania:http://www.elektroda.pl/rtvfo...
Przyjrzyj się temu _1_WIRE_DIR &= ~_BV(_1_WIRE); //--- ustawienie magistrali w trybie receive a teraz temu: The bus master then releases the bus and goes into receive mode (RX). When the bus is released, the 5kΩ pullup resistor pulls the 1-Wire bus high.
Witam Pisałem o tym już na innych forach, ale trafiłem na epokowe rozwiązanie :). Jak donosi autor Nettempa : Poniżej przedstawiam jak jest to wszystko u mnie podłączone. A dokładnie dwa czujniki DS18B20 podłączone pod GPIO 4 tylko na dwóch liniach. Za poprawne działanie tylko na dwóch przewodach odpowiada moduł w1_gpio z wpisem pullup=1. Całość wpisu...
Dam tu trochę doświadczeń ze swojej strony i jedno pytanie (podbiję trochę temat): Moje doświadczenia z DS18B20 na logice 5V: - jeśli używasz wielu czujników (12+) i długich przewodów (10m+), musisz znacznie zmniejszyć rezystor podciągający (naprawdę drastycznie). Udało mi się zmusić 30 termometrów do pracy w topologii o wadze ponad 30-40 metrów. Nie...
Ale po co tak kombinować z zew. MOSFETem? Ten MOSFET na schemacie Ds'a służy tylko jako poglądowe źródło silnego poziomu H (strong H), który wg dokumentacji musi się pojawić najpóźniej 10us po poleceniu konwersji i trwać na czas tej konwersji. Aby to zapewnić wystarczy na IO wystawić poziom H, większość mcu (o ile nie jest to IO z otwartym drenem) ma...
Nie znając podstaw operacji bitowych radzę nie zabierać się za samodzielne tworzenie biblioteki onewire :) Nie czytałem kodu bo też już śpię, ale powiem Ci tylko tyle, że onewire jest transmisją typu otwarty kolektor(dren) więc nie robi się pullupa wymuszając go stanem wysokim na pinie procesora, tylko zwalnia się linie. Chodzi o to, że w PORTD na pinie...
ł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...
Po pierwsze, z doświadczeń kolegi wiem, że 1 - wire w BASCOMie działa źle (lub wcale) z wewnętrznym oscylatorem. Pewnie wymagalepszej stabilności częstotliwości ze względu na wymagania czasowe 1 - wire. Po drugie, sprawdź czy ustawiłeś fusebity na odpowiednią częstotliwość oscylatora. Po trzecie, nie widzę żebyś wrzucił dyrektywę $fosc (a to ważne dla...
I wszystko jasne! DS18S20 - nie ma siły uzyskać 0.1 rozdzielczości DS18B20 - tryb "niepełny parasite" (bez tranzystora pullup) - nie daje rady przetworzyć na 12 bit i mamy 0.5°C rozdzielczość Dopiero DS18B20 - tryb parasite z tranzystorem pullup lub z zewnętrznym zasilaniem jest w stanie przerobić temperaturę na 12 bit. ...Poza tym rozbijanie Waitms...
Witam, Próbowałem ostatnio podłączyć czujnik temperatury ds18b20 do płytki z pic32mx460 (płytka bodajże firmy olimex). Spędziłem nad tym kilka dni, i w końcu podłączyłem oscyloskop. Kiedy wymuszam stan niski z mikrokontrolera (na samym początku trzeba ustawić pin na 500us w stan niski, później 30us w stan wysoki i termometr powinien odpowiedzieć stanem...
...potem zaadresowałem jeden wysłaem mu komendę konwert i to samo zrobiłem dla drugiego, po 750ms dla 12bitowca jest już w obydwu czujnikach odpowiednia temperatura. Jeśli wszystkie czujniki mają mierzyć to wystarczy wysłać na magistralę SKIP_ROM i komendę konwertuj, nie trzeba adresować kolejnych czujników i wysyłać im komendy konwertuj. Podczas konwersji...
Możliwe jest oczywiście, że czujnik jest uszkodzony. Jeśli linia jest długa, wpływ na jakość nominalnej pullup. Używam 1.5K. W celu ochrony linii od statyki mogą korzystać z tego systemu. http://obrazki.elektroda.pl/7262526100_1...
Dzięki za wyczerpujące odpowiedzi. Mam jeszcze jedno pytanie. Co się dzieje jeśli mamy trochę czujników zasilanych i trochę w trybie pasożytniczym. W dokumentacji, jest napisane If the DS18B20 is powered by an external supply, the master can issue read time slots after the Convert T command and the DS18B20 will respond by transmitting a 0 while the...
A jednak problem był w timingach. Tu poprawione procedury - sprawdzone zarówno na DS1820 jak i na DS18B20: void write_onewire(u08 bit) { // set Data line to output cli(); PORTC &= ~(1<<OWI); DDRC |= 1<<OWI; if (bit == 0) { delay(29); // hold low for at least 60us DDRC &= ~(1<<OWI);...
Na magistrali 2-przewodowej bez "strong pullup-a" (odsyłam do karty katalogowej) może (choć nie musi) występować znaczny błąd pomiaru nawet rzędu kilku st. C oraz znacznie wydłuża się czas konwersji. Pamiętajcie o tym, sam się kiedyś naciąłem.
Witaj, w transmisji one_wire są trzy stany - strong pullup (generowane przez mikrokontroler) - weak pullup (generowane przez rezystor podwieszający) - low level (generowane przez układy DS) To oznacza jedno że nie powinieneś generować sygnału zera logicznego to ma robić dołączony układ. Proponuję abyś na początek odłączył całkowicie układ DS i na drugim...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Kolego spójrz w kod resetu. Jeśli urządzenie jest wykrywane reset zwraca 1. Czujka jest wykrywana bo w funkcji głównej jest pętla warunkowa. Gdy reset zwraca 0, czyli czujnik nie jest wykrywany if(bit_is_set(PORT_1Wire, WE)) { PRESENCE=1; } else { PRESENCE=0; } During the initialization sequence the bus master transmits...
Nigdy nie zmieni :( DS jest grzecznym chłopcem(?) więc wykonuje tylko polecenia i odpowiada gdy jest pytany , poza tym milczy jak grób :wink: Pzdr. Piotrek Sz. To radze poczytac pdf'a :) CONVERT T This command initiates a single temperature conversion. Following the conversion, the resulting thermal data is stored in the 2-byte temperature register...
Wyjątkowo mogę :D Wiesz co to "strong pullup" i myślę że ta lebioda PCF nie jest w stanie czegoś takiego zapewnić a "enviroment" jest na pewno wokół wymagający. Innymi słowy linia EN w tych typach wyświetlaczy musi być stabilna kiedy nie chcesz nic do wyświetlacza przesłać. Jeśli jesteś innego zdania to kończy się tak jak na filmach linkowanych przez...
Prawidłowa transakcja dla kolegi Kubbaz . Żywcem wyjęte z dokumentacji i dostosowane do Twoich potrzeb: MASTER MODE DATA (LSB FIRST) COMMENTS 1. Tx Reset, Master issues reset pulse. 2. Rx Presence, DS18B20 responds with presence pulse. 3. Tx CCh, Master issues Skip ROM command. 4. Tx 44h, Master issues Convert T command. 5. Tx ,DQ line held high by...
Dalsza cześć zmagań z moim zegarkiem :> Chcę z ATMegi8L skomunikować się z czujnikiem DS18B20. Zasilanie czujnika zewnętrzne, 5V, na lini podciągnięcie przez pięć rezystorów 1k. Próbowałem już chyba ze 3 biblioteki i nic. Aktualnie korzystam z biblioteki znalezionej gdzieś na elektrodzie. Fragment kodu programu: [syntax=c] char bufor[]=" "; char...
jeśli podłączyłem 3.3V do przewodu sygnałowego, masę do masy to czy układ pobrał prąd łączem danych i się upalił? Hmmm...wydaje się, że nie powinno to nastąpić bo w DS jest nawet pokazane coś takiego jak "strong pullup" czyli właściwie zwarcie przewodu sygnałowego z linią zasilania. Z drugiej strony strong pull-up jest załączany w ściśle określonej...
Na pewno popełniłeś błąd w odczycie bitu. Magistrale masz próbkować przed upływem 15us od chwili wymuszenia niskiego poziomu przez master, ty robisz to po upływie ponad 18us. Swoją droga masz jakiegoś pullupa na magistrali? Bo jeśli nie masz i DSa zasilasz z magistrali to musisz dać standardowo 4,7k dla 5V, a jesli zasilasz DSa z osobnego źródła i nie...
To już wiadomo wszystko. W aplikacji wyraźnie jest napisane!!! Note 1: For parasite-powered DS18B20s, the master must enable a strong pullup on the 1-Wire bus during temperature conversions and copies from the scratchpad to EEPROM. No other bus activity may take place during this time. W trybie Parasite-Powered DS18B20 niestety tak sie nie zasila czujników!!!...
Witam, Mierzę się z problemem już chyba miesiąc więc pytam specjalistów o pomoc. Mam kilka czujników DS18B20 i mierzę temperaturę wody, ponadto jest ona podgrzewana przez grzałki które są regulowane przez regulator 4kW o taki przykładowo: https://obrazki.elektroda.pl/8683550500_... Problem występuje, gdy ustawiam moc w przedziale 20-80%...
Witam Mam złożony układ oparty o ESP32 devkit 1, podpięty wyświetlacz LCD 4x20 po i2c, do tego czujniki ds18b20 oraz termoparę, oraz przekaźnik ssr (omron). Postawiony serwer www, na którym wyświetlam dane z czujników. Do gpio32 podpięty mam przycisk (drugi koniec do masy) korzystam z programowego pullup. Przycisk obsługuje przerwanie. Generalnie wszystko...
Otóż używam elementu iobuf podłączonego do wire_out ->T, wire_in -> O Gnd -> I i oczywiście jego wyjście podpięte do onwire. W taki sposób polecił zrealizować to prowadzący. Tłumacząc że jeśli na I damy Gnd a na T '1' to uzyskujemy właśnie 'Z' na złączu onwire. I na te złącze nie podaje się tak naprawdę '1' tylko '0' lub 'Z' jako pullup. Edit 1. Dołączam...
O tym czy się w ogóle da to jest pewne. https://www.maximintegrated.com/en/app-n... tutaj nawet z oscylogramami i kodem http://tpliszczak.blogspot.com/ Zależy mi na tym aby nie marnować taktów procesora. Zużywał będę je na WIFI, GPS i GSM, kartę SD. Problemem jest dopasowanie napięć 3.3V i 5V na szynie 1-wire, oraz środowisko i odłączanie...
Tak, odległośc ma znaczenia, zwlaszcza jesli nie masz 3 przewodów. DS18b20, zasilany z kabla danych (parasite power), podciągnięty do 5V przez rezystor 3,9k działa wyśmienicie na krótkim kablu. Na 4metrowym cienkim jak diabli kabelku juz nie był skory do działania - read scratchpad zwracał wartość 0x0550 czyli czujnik się z braku prądu resetował. Pomogła...
Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne. Takie podciąganie rezystorem do masy kompletnie nie ma sensu, bo jak dajesz stan niski na port to... masz podciągnięte do masy :) , a R11 zamiast...
Witam, we funkcji OWReadByte() robisz cos takiego: WIRE_DIR|=1<<WIRE_CON; // pin 1wire jako wyjscie WIRE_PORT&=~(1<<WIRE_CON... // pin 1wire -> 0 _delay_us(1); WIRE_PORT|=1<<WIRE_CON; // pin 1wire -> 1 / pullup on _delay_us(13); WIRE_DIR&=~(1<<WIRE_CON... // pin 1wire jako wejscie if(bit_is_set(WIRE_PIN,WIRE_CON&...
Kody, które pokazałeś nie wyglądają źle, ale to dwa rożne kody do innych zastosowań. To coś w asemblerze to prosta implementacja OW, raczej kiepsko działająca w trybie parasite. To w C wygląda lepiej. Ale pokaż twój kod - problem może leżeć w szczegółach. Rezystor 2k2 jako pullup to za mało, daj 4k7 jak zalecają, a skoro wtedy masz problemy to zapewne...
asembler: parasite power potrzebuje "strong pullup" w niektorych momentach pracy, mowie tu o mosfecie wymuszającym zasilanie na linii DQ. Nie praktykowalem tego ale zmęczyłem datasheet...Poza tym: jesli uklad mialby NIE PRACOWAĆ (czyli stan 0) i nie nadawac np sygnatury albo scratchpada, to odpada pomysł z parasite power. Idea kolegi tomsyty polega...
Witam Mam od dłuższego czasu problem z DS18B20. Stosując różne kody, różne przedziały czasowe (biorę przykłady z innych aplikacji) ciągle są inne wyniki. Wynik jest wyświetlany na wyświetlaczu 7-seg, proszę nie zwracać uwagi na nieprawidłowe multipleksowanie (pojedyncze cyfry na moje wskazanie wyświetla prawidłowo). DS18B20 odpowiada na reset pulse,...
Tak jak pisałem Koledze na priv: Parasite power supply ? Sprawdz, czy rezystor nie ma za duzej wartosci, mozesz do tego ustawic wyjscie jako out w stanie wysokim, zeby zapewnic czujnikowi odpowiednie warunki do konwersji. "Strong pullup" , tak to opisano w datasheet. Jesli nie, to kontrolnie przedluz delay podczas konwersji. Mozesz tez pokombinowac...
Poczytałem trochę w internecie i zmieniłem na coś takiego (wywaliłem w ogóle funkcje pojedynczych bitów). [syntax=c] unsigned char uc1Wire_ResetPulse(void){ WIRE_DIR |=1<<WIRE_CON; // pin 1wire jako wyjscie WIRE_PORT&=~(1<<WIRE_CON); // pin 1wire -> 0 _delay_us(650); // tx reset pulse WIRE_PORT|=1<<WIRE_CON; // pin 1wire ->...
Tak na szybko to kod komunikacji 1w wygląda w miarę poprawnie, podejrzany dla mnie jest dtostrf(), czy to prawidłowo formatuje float na string? Sprawdziłbym czy cTemperatureL oraz cTemperatureH zawierają bajt <> 0 przed wywołaniem funkcji formatującej. Trwałe zwracanie 0 przy odczycie danych na prawidłowo zaimplementowanej magistrali 1W (zawierającej...
W esphome mam plik konfiguracyjny: substitutions: friendly_name: "Mieszadło" esphome: name: beer-magnetic friendly_name: ${friendly_name} area: Beer esp8266: board: d1_mini_lite # Enable logging logger: # Enable Home Assistant API api: encryption: key: "#" ota: - platform:...
Wadą jest na przykład ograniczenie maksymalnej mierzonej temperatury do 80 stopni celcjusza. Tak to główna wada. Dodatkowo, w przypadku zainstalowania kilku czujników na jednej linii i jeśli pracujemy na dużych dystansach należy zapewnić silne podciąganie "strong pullup" - w najprostrzej postaci będzie to dodatkowy mosfet. Jeśi w grę wchodzą odległości...
Witam wszystkich, projekt powstał na przełomie marca/kwietnia tego roku w wyniku zapotrzebowania na pompkę perystaltyczną potrzebną przy realizacji pracy magisterskiej. Nigdy wcześniej nie miałem do czynienia z elektroniką (nie licząc podłączania diod z rezystorem i prostych zasilaczy na LM7812) a tym bardziej z mikrokontrolerami. http://obrazki.elektroda.pl/2272591900_1...
__delay_cycles((unsigned)... __delay_cycles((unsigned)... __delay_cycles((unsigned)... To opóźnienie jest 490 mikrosekund. Opóźnienie do 20 mikrosekund. Opóźnienie do 5 mikrosekund. Kod używam do czytania DS1990A. I przyprowadził go do opóźnienia...
Ja pisuję w ASM'ie PIC'ków. Mogę Ci tylko podpowiedzieć "założenia algorytmu": - Przy 8 czujnikach pominąłem każdorazowy odczyt adresów ROM - odczytuję je tylko przy instalacji systemu (zapis każdego ID do EEPROM) - przy komunikacji, jak czujnik się nie zgłasza, obsługuję procedurę BŁĄD (ignoruję odczyt) P.S. Na porcie mam "pullup'a" 2.2k (a nie,jak...
Zapal_LED Delay_ms(10000) Zgaś_LED Zrobiłem takie coś za pomocą _delay_ms() z #include <avr/delay.h> cd_init(); lcd_goto(1,1); write_text("*"); for(i=0; i<40; i++) _delay_ms(250); // 10 000 ms = 10s write_text("<*>")... i wykonyje się to w około 1 - 2 s bity CKSEL mam...
Witam Wielkie dzięki za pomoc. i2c nie muszę mieć odizolowanej, na tej magistrali będzie tylko zegar i może ( lecz zastanawiam się czy jest konieczna) kostka pamięci. Jeszcze muszę odizolować linie SHT11 ona jest nieco podobna do i2c lecz niezupełnie, ale może coś takiego: lechoo za schematy i pomoc :-) Przeglądnąłem te schematy do 1-Wire i zdecydowałem...
To mój pierwszy raz z DS18B20. Mam problem z odczytem temperatury z DS18b20. Pierwszy odczyt z układu daje warość 0x0550 czyli defaultowa wartosc po resecie. Jednak nastepne odczyty dają wartość 0x07FF. WTF? Poniżej listing. Procek taktowany 16MHz z zewnętrznego oscylatora. (F_CPU zdefiniowane na 16000000) int main () { uint8_t a=0; uint8_t...
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...
Jaki parametr przekazujesz do pinMode() dla D3 i D4? pinMode(D4,INPUT); INPUT_PULLUP też nie działa. Jak zdefiniowałeś konstruktor EasyButton dla pinu D4? EasyButton leftEnc(LEFT_PIN,35,false); Tu chodzi o to, że nawet jak nie użyję easybutton tylko po prostu w loop sprawdzam stan pinu to się on nie zmienia. Raz tylko przy włączeniu wypluwa jedyneczkę,...
Lini ow nie ustawia się pullupem tylko rezystorem który jest podciągnięty do 5 V !
Witam Wiem, temat był już poruszany, przeglądałem kilka wcześniejszych postów nt 1Wire, przeczytałem kilka dokumentacji, opis z #define _1W_SET_0(){ DDRB |= 0x01; }//PB.0 jako wyjście, //PortB.0 = 0, więc stan na linii wynosi 0 #define _1W_SET_1(){ DDRB &= 0xFE;}//PB.0 jako wejście, //stan 1 pochodzi z rezystora...
poniżej mój kod testowany na dwóch w wersji "b" i upewnij się, że Twoje opóźnienie np. _delay_us(50) daje rzeczywiście taką wartość. #define DDR_OW DDRB #define PORT_OW PORTB #define PIN_OW PINB #define OW PB0 //1.========================inicjalizacj... void ow_reset(void) { bool presence = false;...
Tak. Na 3 roznych komputerach instalowalem. Za kazdym razem sciagnalem paczke z netu z sourceforge(oficjalna strona projektu). Widze ze wystartowal ponownie avrfreaks wiec zabieram sie do przeszukiwania ich archiwow moze tam cos znajde. Boje sie ze problem moze byc z iotn2313.h. Dla innych procesorow blad moze nie wystepowac. Niestety tylko te mam pod...
z tego co mi wiadomo to zwykly ukladzik pracujacy na 1wire. czyli tak podlaczasz mase do ukladu i teraz tak zlbo podlaczasz 5 v i dane osobno albo razem. bo jesli razem wystarcza tylko 2 przewody ( 1 wire ;) ) przewod danych podlaczasz do ktoregos z wyprowadzen proca (nie zapomnij o wejsciach open collector - niektore nie maja pullupow) i teraz tylko...
http://obrazki.elektroda.pl/5623098300_1... Założenie jest takie aby szybko i sprawnie zbierać dane z rozproszonych czujników i wyświetlać je w ładnej formie i mieć możliwość porównania wyników za pomocą wykresów. http://meteo.lipowa.net/temperatury2 Do działania takiego systemu potrzebujemy serwer HTTP z php i publicznym adresem IP...
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, Właśnie robię sobie termostat na AtTiny2313 + DS18B20 i natknąłem się na problem, którego nie mogę przeskoczyć. Układ działa sprawnie (wyświetla się temperatura na 7-seg.) jeśli podepnę linię danych DS18B20 do np. PD0 czy PD1, ale nie działa po podłączeniu do PD2, PD3, PD4 - a płytkę mam zrobioną tak, że do obsługi 1wire jet przeznaczony pin...
nie jetem do konca przekonany, czy samo sterowanie kierunkiem portu wystarczy. zalozyles chyba, ze zdefiniowanie kierunku portu jako OUTPUT daje na pinie stan niski, a port jako INPUT pozwala na stan wysoki dzieki pullupowi. (jakiego dales pullup'a? ) niemniej jednak, czy aby nie nalezy jednak po zdefiniowaniu kierunku portu jako OUTPUT przypisac na...
int main(void) { JTAG_off(); USART_Init(); LCD_Initalize();LCD_GoTo(1,2... I2CInit();LCD_WriteData(0xFF... DS1307_Init();LCD_WriteData(... ac_init();LCD_WriteData(0xFF...
Kwestie napięcia weryfikowałem tak piszesz już wcześniej na UNO. Tam odczyty w ogóle są - i wykrywa urządzenia, na NANO nie wykrywa. Na każdym z czujników taki sam. Wynalazłem też standardowy DS18B20 (nie na przewodzie, na nóżkach) i też działa na UNO, zarówno pod 5V jak i 3V jak i z zewnętrznym zasilaniem. U mnie akurat wpisanie 2 skutkuje miganiem...
Witam, Temat wałkowany już 100 raz, ale od paru dni próbuje i nie wiem jak to rozwiązać:/. Mam podłączonego DS18B20 do atmega8a, kwarc wewnętrzny 8MHz. Początkowo układ nie chciał w ogóle współpracować i zwracał standardowe 85 C. Po modyfikacji sterowania pullup zgodnie ze wskazówkami mirekk36 z http://www.elektroda.pl/rtvforum/topic14... układ...
Witam, od paru dni męczę się z ds18b20, spakowałem go na płytkę testową, wszystko podłączone dobrze, nie na pasożytniczym tylko na normalnym zasilaniu. Odpowiada na reset a później już na nic. Krótki kurs obsługi wziąłem z karty i z http://tnij.org/ds18b20 Bardzo przyjemny pdf. Program jest napisany na podstawie tego pdf. Jako, że podłączony jest tylko...
Witam! Otóż moje następujące pytania: Czy to, co tutaj jest napisane ma prawo działać prawidłowo? Głównie mi chodzi o to, czy jest to w miarę dobrze zaprogramowane( aktualnie brak możliwości sprawdzenia, z powodu braku rezystora). Drugie pytanie, jeżeli mam funkcje USART_puts, jak zrobić, by temperatura zostawała przekazywana właśnie przez tą funkcję?...
Kiedyś wysłałem Ci coś takiego: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> //CRC #include <inttypes.h> #define CRC8INIT0x00 #define CRC8POLY0x18 //0X18 = X^8+X^5+X^4+X^0 uint8_tcrc8 (uint8_t* data_in, uint16_t number_of_bytes_to_read); //UART #include "uart.h" //uncoment if you like use...
Ave, Przepraszam ,że tak późno ale nie dało rady wcześniej ;/. Poniżej obiecany kod, temperatura wyświetlana już poprawnie. Podmieni kolega tylko zawartość pliku onewire.c [code][syntax=c] /* ****************************************... Filename - onewire.C Author - BESEA Robotics Date - 21-02-2012 Processor - Atmel ATmega32/16/8...
Witam, postanowiłem dodać do programu pomiar temperatury mam czujnik DS18B20 , tylko że kod programu odpowiedzialny za sterowanie czujnikiem opóźnia działanie encodera ,gdzie jest tutaj błąd może czegoś nie uwzględniłem w tym kodzie ? poniżej cały kod [syntax=basic4gl] 'Filename Encoder_100.bas 'Version 1.00 'Date 2012-03-19 'Purpose Test of ALPS STEC11B13...
Cześć, Dostałem od prowadzącego zajęcia z układów cyfrowych zadanie odczytu temperatur z 3 termometrów DS18B20 podpiętych do 1-wire przy pomocy spartana 3. Niestety zajęcia są bardzo rzadko, a w domu nie mam dostępu do sprzętu. Przygotowałem sobie projekt na podstawie znalezionych artykułów i przykładu znalezionego na tym forum (niestety nieskończonego)....
Witajcie, mam problem z komunikacją na drodze STM32 <-> DS18B/S20. "Hello world!" w tym wypadku to poprawna realizacja funkcji Reset(), niestety nawet tak prosta sprawa mi nie działa. Sprawdziałem na DS18B20 i 2 sztukach DS18S20 aby wykluczyć ew. uszkodzone układy. Co do poprawności działania samego kodu to próbowałem dać odpowiedź DSa wstawiając...
http://obrazki.elektroda.pl/5924959500_1... Witam ponownie! Kilka dni temu chwaliłem się projektem "PALM v1.0 BETA Atmega128", a dziś chciałbym przedstawić komputerek do motoru lub roweru jaki zrealizowałem już jakiś czas temu na zamówienie. Urządzenie miało zastąpić oryginalne psujne, mechaniczne zegary. Funkcje i założenia: *Wyświetlanie...
http://obrazki.elektroda.pl/5636705900_1... https://filmy.elektroda.pl/37_1378532310... Termometr mikromocowy LCD ATMEGA16 Tym razem głównym celem projektu było sprawdzenie możliwości wykonania mikromocowego systemu pomiaru temperatury w oparciu o możliwie standardowe elementy, mówiąc w skrócie byłem ciekawy czy zwykły avr może być...
Czy ktoś może dopisać pomiar temperatur na dwóch czujnikach DS18B20?? Zegar byłby wyświetlany przez 15 sekund a temperatury przez 5 sekund. Temperatura byłaby mierzona w zakresie -50C do +125C. /* zegar.c - firmware for simple digital clock based on AVR ATmega8, designed for VSS from pl.misc.elektronika Copyright (C) 2006 Dariusz Rzońca This...
atmega8 pullup rs232 pullup pullup bascom
skrzypi amortyzatory phoenix programator karta radia kenwood opinie
Jak założyć paski w magnetofonie Sony FH-B70CD? Wieża Sony FH-B70CD - Problemy z magnetofonami i konserwacja