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...
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"...
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.
W takim razie odczytujesz same jedynki. Prawdopodobnie zapominasz zdjąć strong pullup przed odczytem danych, lub zainicjować odpowiednio odczyt (sygnał reset1wire lub coś podobnego).
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); //...
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
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)...
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...
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ę,...
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...
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...
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...
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...
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ę?...
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, 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...
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...
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...
Znalazłem takiego klienta: [syntax=c]#include "etherShield.h" // please modify the following lines. mac and ip have to be unique // in your local area network. You can not have the same numbers in // two devices: static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; static uint8_t myip[4] = {192,168,1,88}; static uint16_t my_port = 1200; // client...
W końcu na atmega 168 prawodłowo zadziałał mi ten kod. W komentarzu dołożyłem podłączenia. Musiałem zrezygnować w pierwszym podejściu z kwarcu, bo portu PB6 i PB7 są tu wykorzystane do sterowania wyświetlaczem. Kupowałem wyświetlacze jakoś bardzo tanio, więc pewnie chińskie. '**************** Driving graph. display NOKIA LPH7779 ver.1.1 ******************...
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...
Łą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...
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...
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...
Przecież jest połączenie master - slave i pośrodku tego połączenia jest pullup. Jak odetniesz mastera, to zostaje slave z rezystorem...
https://obrazki.elektroda.pl/3874188600_... Zgodnie z propozycją (at)pkaczmarek2 postaram się podzielić tutaj kilkoma pomysłami na rozszerzenia i funkcje firmware OpenBeken IoT, zaczynając "zgodnie z życzeniem" ;-) od rozszerzonego sterownika DS18(B)20. Kod znajduje się w typedef uint8_t DeviceAddress[8]; // wir müssen die...
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...
Podpisuję się por mirekk36 i tmf (; Te czujniki działają na całym świecie na praktycznie dowolnie długich kablach (setki metrów!) działają po kilka sztuk na magistralach, czy to w gwiazde, czy w magistrale T więc, nie marudź:) Sprawdź czasy w kodzie!, Użyj aktywnego pullup'a, popraw kod raz jeszcze, przetestuj z 10 czujnikami na metrowym kablu :) Jak...
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...
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.
__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...
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.
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...
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...
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...
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.
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...
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...
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...
Witam, konstruuje moduł do tzw. inteligentnego domu moduł znajdzie się w puszce pod włącznikiem. Zadania jakie będzie realizował to: - pomiar temperatury DS18b20, - enkoder (będzie zrealizowany na przerwaniach), - 8 wejść cyfrowych, - wyświetlacz oled do wyświetlania parametrów (OLED 0,96' 128x64 na I2C - SSD1306). Moduł będzie komunikował się z sercem...
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...
Przyjąłem że masz przycisk chwilowy a przekaźniki sterowane stanem wysokim. Tutaj poprawki : [syntax=c]#include <OneWire.h> #include <DallasTemperature.h> #define PIN_SENSOR 7 // pin do ktorego podloczono DS18B20 #define PIN_PK1 4 // pin sterujacy przekaznikiem 1 #define PIN_PK2 5 // pin sterujacy przekaznikiem 2 #define PIN_PK3 6 // pin...
Witam, w moim Arduino następuje zwis, gdy będzie odłączony LCD 2x16 (zgodny z hd44780). Arduino się włacza, diody zasilania świecą, ale program staje w okolicach inicjalizacji lcd. Czy to normalne? Czy programowo jestem w stanie to obejść np jakimś IF'em? Drugi problem, który objawia się tak samo, czyli zwis w miejscu kodu gdzie wywołuję Serial.print....
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...
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...
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...
Witam ogólnie to mam już prawie ogarnięte, ale mam jeszcze pytanie w ramach testów trochę zmieniłem program i w tym momencie steruje przekaźnikiem za pomocą temperatury i histerezy. I o tą histerezę mi chodzi, czy może to tak wyglądać? Ogólnie mało jest info na temat regulacji histerezy. #include <OneWire.h> #include <DS18B20.h> #include...
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...
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...
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...
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...
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...
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...
Jak zwykle podstawowych informacji nie podałem :) Program piszę w Arduino. Oczywiście użyłem Enkoder z przyciskiem KY--40. Założenie jest takie że długie wciśnięcie przycisku wyłącza termometr (najprawdopodobniej wykorzystam funkcję sleep) krótkie wciśnięcie uruchamia menu. Też próbowałem wykorzystać switch case, ale nie potrafiłem tego połączyć z obsługą...
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...
Nie mam zdefiniowanego co ile ma być odczyt temperatury Tutaj jest fragment kodu: #include <DallasTemperature.h> //biblioteka czujnika temp #include <OneWire.h> //biblioteka interfejsu #include <LiquidCrystal_I2C.h> //biblioteka wyświetlacza 2004 #define ONE_WIRE_BUS2 //definiowanie pinu ONE-WIRE OneWire oneWire(ONE_WIRE_BUS); DallasTemperature...
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:...
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...
U mnie pullupy maja 1k i SCL wyciąga 500kHz. Jesli masz długie przewody to zmniejsz wartość pullupów. Pozdrawiam
Witam próbuje obsługi 1-Wire na przykładzie termometra cyfrowego DS18B20, niestety odczytana temperatura nijak ma się do tego co powinno być, mianowisie dostaje same "1", Pliki biblioteki 1-Wire [syntax=c] #ifndef OWI_H_ #define OWI_H_ // Ustawienie pinu który bedzie pinem OWI #define DDR_OWI DDRD #define PORT_OWI PORTD #define PIN_OWI PIND #define...
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;...
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...
rs232 pullup rezystor pullup pullup pulldown
pulse width wzmacniacz tl081 schodzi obudowa
parrot ck3100 instrukcja esp32 radio
Parametry diody Zenera w magnetofonie Aria 2411 Producent hulajnogi Kesser ESC X10 - kto to jest?