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...
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....
ł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...
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ą...
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
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);...
Będę jeszcze eksperymentował, STM32 z tego wątku wyleciał już na "produkcję" do lasu wysyłać pomiary. Ogólnie jestem zaskoczony - fajne te STM'y, jak pisałem to moje pierwsze starcie z nimi i całkiem pozytywnie zaskoczony. Mam zewnętrzny pullup 4.7k na 1wire i 470k na SPI przy LoRa - bez nich w sleep prąd skakał do dziwnych wartości całkiem losowo,...
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...
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...
Jak zasilany jest DS, jaki rezystor pullup
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
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...
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...
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.
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); //...
W takim razie odczytujesz same jedynki. Prawdopodobnie zapominasz zdjąć strong pullup przed odczytem danych, lub zainicjować odpowiednio odczyt (sygnał reset1wire lub coś podobnego).
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
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)...
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...
Witam ponownie. Prośba jak w poprzednio. Zupełnej zmianie uległ sposób sterowania grzałkami. Obecnie problem polega na tym, że na wyjściu grzałek, bez względu na temp., nic się nie dzieje. Załączam zmodyfikowany kod: include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h"...
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%...
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...
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...
ok znalazłem... teraz jeszcze zaimplementować: If the DS18B20 is powered by an external supply, the master can issue “read time slots” (see the 1-Wire Bus System section) after the Convert T command and the DS18B20 will respond by transmitting 0 while the temperature conversion is in progress and 1 when the conversion is done. If the DS18B20...
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...
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...
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...
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.
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...
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...
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ę,...
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...
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...
...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...
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...
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...
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...
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...
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...
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...
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!!!...
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 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,...
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...
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 ->...
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&...
Witam serdecznie Jestem początkującym użytkownikiem Arduino. Chciałem napisać program termostatu z timerem, LCD, i enkoderem ale niestety nie mam zupełnie pojęcia o enkoderach. Wiec znalazłem jakiś przykład na działanie enkodera (który wydal mi się najlepiej działający i prosty) i dorobiłem do niego troszkę :). Niestety nie pamiętam kto był autorem...
mirekk... Teraz ja powiem bez obrazy ale... 1. Z angielskim fakt jestem na bakier jednak obrazki oglądam i jakby co to wiem na czym polega różnica pomiędzy 2wire i 1wire przynajmniej na czym polega różnica w podłączeniu i sposobie ich zasilania 2. W datasheet DS18B20 angielski jest, ale jak spojrzysz na stronę 6 są dwa rysunki i widać jak drut różnicę...
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...
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ę?...
rs232 pullup rezystor pullup pullup pulldown
multiswitch unicable części electrolux canon reset pampers
zestaw uruchomieniowy arduino legrand włącznik
Brak obrazu z dekodera Polsatu przez kino domowe Kamera cofania: "no signal" przy 10V zasilania