Mógłbym dać rybę ale dzięki wędce, dam Ci coś więcej. Zaglądnij do noty katalogowej, jest tam wartość dla ujemnej temp.: -10.125 1111 1111 0101 1110 FF5Eh Dodaj za hardcodowaną linię z temp. z dokumentacji, [syntax=c] temperatura = sensors.getTempCByIndex(0);//*100; temperatura = 0xFF5E; //<------ -10.125 Serial.println(temperatura); [/syntax] a...
no tak by Duch ;) sam przyznasz że u niego też jest "String as 6" i nadpisuje dane. Tobie udało sie to odkryć bo byłes dociekliwy i testowałeś dokładnie w temperaturach ujemych. Nie mówiac o tym jak zasilał DSy niezgodnie z aplikacją fabryczną. Masz racje jeśli chcesz by układ działał stabilnie to trzeba robić zgodnie ze sztuką. To że duchowi i innym...
O ile dobrze widzę, to ten czujnik jest podłączony do A3 , a nie A4 .
85 ST jest wartością domyślną wpisaną do rejestru w którym przy kolejnych konwersjach DS wpisuje już zmierzoną temp i przy pierwszym pomiarze zawsze taka liczbę odczyta. Może gdzieś nie łączą przewody i czujnik traci na chwile zasilanie i wpisuje to wartość domyślną.
U mnie najczęstszym powodem awarii tych czujników była awaria przewodu. Przewody były co prawda bardzo narażone na uszkodzenia mechaniczne. Ciężko przy tak częstym uszkodzeniu przewodu wywnioskować, czy przy którymś razie nie był to czujnik. Ale u mnie pracowały one w trudnych warunkach. /CIACH/ Skrętki nie stosowałem, Stosowałem z tego co pamiętam...
Po pierwsze to kup nowego DS a tego wyrzuć- bo gdzieś go schowasz, zapomnisz że zepsuty- a za jakiś czas będziesz się znowu użerał. Ale zanim go wyrzucisz zmień us na ms na końcu programu. Zresztą powinno być 900ms a nie 200.
Jakoś nie spotkałem sie z takimi zjawiskami. Mam czujniki z róznych serii nawet z 1995 roku i wszystki wskazują jednakowo (w granicach tolerancji max 0.8 stopnia różnicy. Terstuje poprzez podłączenie 10-20 czujników równocześnie. Dobry termometr labolatoryjny kosztuje koło 100zł - taki masz?
To się robi na dwa sposoby: masz wyjście typu otwarty dren, albo wyjście trzeba przestawić w Input przed odpowiedzią DS-a. W obu przypadkach potrzebny jest pull-up.
Podmień DS18B20. Czasami, przy "podróbkach" słabej jakości, takie "cuda" mogą się pojawiać. Pomijam tutaj niestabilne podłączenie czujnika.
z tego co pamietam kiedys o tym czytalem pomiar temperatury w tym czujniku jest realizowany poprzez zmiane czestotliwosci czujnika temperatury wbudowanego w strukture układu
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.
- Starujesz pomiar temperatury w DS18B120. - ustawiasz jeden Timerów na 750ms i odblokowujesz przerwanie od niego - wykonujesz inne działania - gdy upłynie 750ms zostanie zgłoszone przerwanie i będziesz wiedział że możesz odczytać zmierzona temperaturę JarekC
Nie to sprawdzałem. Wygląda to jakby procedury odczytu DS-a działały bo ta temperatura wyświetlana -0.1 o tym świadczy. DS jest zasilany z 3,3V i wyczytałem że przy takim zasilaniu rezystor podciągający linie DQ ma mieć około 2k i taki mam. Ale z rezystorem 4,7k też nie działało. Gdzie to wyczytałeś? Datasheet nic na ten temat nie mówi, poza "Can be...
Witam. Poczytaj tutaj http://akademia.nettigo.pl/ds18b20/#podl...
WItam Najlepiej zrób tak: linie DQ podłącz do pinu procka i podciagnij ją rezystorkiem 4,7kohm do +5V a mase do masy. Nie podłączaj zasilania czujnika. Ja miałem takie problemy własnie gdy wykorzystałem techlogię 2wire taka jak ty. Gdy zmieniłem tak jak Ci napisałem wszytko było już ok. Pozdrawiam Shevu
Potem, jak chcesz to dziel przez 10 i na float ... Float? O zgrozo 1,5kB w plecy :) Tak to się robi: http://mikrokontrolery.blogspot.com/2011...
Panowie zamiast brać oscyloskop w rękę żeby sprawdzić czy czujniki na pewno działają - to weźcie sobie na chwilę Bascoma - napiszcie 2-3 linijki kodu i od razu sprawdzicie, że wam DS'y działają. Bascom ma gotowe i dobre procedury - więc sprawdzenie za jego pomocą czujników to pikuś nawet dla kogoś kto nigdy dotąd nie używał Bascoma. Jednak dla ludzi,...
Nikt nie jest w stanie mi pomóc? nie wie wiem dla czego kontroler nie porównuje wartości Rozumiem że jesteś początkujący , ale nawet Ty powinieneś wiedzieć , że nie porównuje się zmiennej binarnej(Us) ze stringiem (Tmp) :( To tak , jak byś porównywał kilogram z czerwonym :D Poza tym , ten program jest niezwykle pamięciożerny(Fusing,Single). Jeśli ten...
Przypisywać powinieneś wartość zwracaną przez metodę getTempCByIndex - tak jak to robisz wyświetlając wynik, a nie metodę requestTemperatures która tylko wykonuje pomiar do zmiennej wewnątrz klasy a później nie zwraca nic (dlatego void). Poza tym twój kod jest tak samo zły jak wspomniany delay - poczytaj o przerwaniach.
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
hexen2k, z tego co przeanalizowałem, to ten fragment dokumentacji, który przytoczyłeś jest zrealizowany w moim kodzie (?): Zgadza się :) michalko12 ma rację, sprawdzasz za późno: http://obrazki.elektroda.pl/2352154200_1... 3us na krótkiej lini powinno zadziałać, jednak przy dłuższych magistralach może być problem. IMHO lepiej sprawdzać...
Może ja wyjaśnię jaśniej. Generujesz przerwanie od timera np. co 800ms, czy 1s. I w przerwaniu wykonujesz operacje: 1. Odczyt temperatury do zmiennej 2. Komenda Convert_T Odpowiadając na Twoje pytanie - 750ms to MINIMALNY czas między CONVERT_T a odczytem (dla 12-bit). Więc odczyt po 1, 2, 3600 sekundach po CONVERT_T nie jest błędem. Dzięki takiej metodzie...
Nie znam się na ATmegach i Atmel Studio jak określa port ale zaprezentowany kod odwołuje się do całego portu: #define OUT_1WIRE_LOWPORT_1WIRE &= ~(1 << PIN_1WIRE); Konfiguracja (wskazanie) w kodzie prawidłowego portu/pinu 1W jest oczywistą oczywistością, jak mawiał klasyk i szczerze mówiąc wstępnie nie rozważałem takiej sytuacji. Użycie błędnego...
http://www.teslabs.com/openplayer/docs/d... Nie ma możliwości, żeby to nie pomogło.
W moich ramkach udało się zrobić to o wiele bardziej dyskretnie: http://obrazki.elektroda.pl/9686671100_1... http://obrazki.elektroda.pl/8869006400_1... http://obrazki.elektroda.pl/9916695300_1... http://obrazki.elektroda.pl/2156467800_1...
http://arduinotronics.blogspot.com/2010/...
unsigned int, long itp - musisz poczytać o typach zmiennych stosowanych w Arduino ( i nie tylko ) . To dość istotny ale prostu temat. Jeśli chodzi o maktro F_ to tak, nic nie wnosi do działania programu ale zapisuje stałe tekstowe w pamięci programu zamiast w pamięci RAM . To taki dobry nawyk na przyszłość :)
Witam, można po 1-wire bez problemu, przetwornica z 12V DC na 5v DC, masa może być ta sama. Nie będzie to zakłócało pracy alarmu, w kwestii przewodowej, jak dobrze zamkniesz obudowę to nie będzie sabotażu ;)
Tak jest. Mam DS1820 (DS18S20) - tutaj temperatura jest stała ale o 60 stopni za nisko a po podpięciu DS18B20 temperatura jest ujemna i cały czas spada. A jaki rezystor został użyty?
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
Co prawda w temacie kolega umieścił wątek o termometrze wykorzystującym jako czujnik LM35, ale może "malutka sugestia": Brałeś pod uwagę scalony cyfrowy czujnik typu np DS18B20 ? Ja np w aucie zbudowałem termometr (na ATMEGA8) przy użyciu dwóch czujników DS18B20 (temperatura silnika i w kabinie) oraz DHT22 (zamiennik to AM2302) w nawiewie, który oprócz...
Masz tu dokument z Texasa na temat zalet i wad różnych sposobów łączenia takich czujników: http://www.ti.com/europe/downloads/2-%20...
Co wykorzystujecie do rejestracji i podglądu (wykresów)? Home Assistant ESPHOME Przepływomierz i temperatura Ds18b20
Tak, do masy po stronie Uno.
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...
Szukałem na forum i nie znalazłem żadnych informacji na ten temat. Może złe hasło wpisywałem. Proszę o pomoc. Tu jest to , o czym myślałem. http://www.elektroda.pl/rtvforum/viewtop... Piotrek
Witam Na forum też są te informacje, np. tu: http://www.elektroda.pl/rtvforum/topic68... Wyszukiwarka forum jest słaba, lepiej szukaj przez google, dopisz na końcu: site:www.elektroda.pl
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);//...
No nic dziwnego, w ustaw_czas robisz call do wys_czas który wbrew obiegowej opinii wyświetla temperaturę;] i... ustawia kursor kilka spacji za *C :) a potem sobie reta do ustaw_czas gdzie już jak widać LCD "Ustaw czas" :) Ot i tajemnica;] Pozdro ;] Dodano po 1 PS lowerline sux, ja bym używał locateów na twoim miejscu ;-) Poza tym funkcje są fajnejsze...
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...
Program do czujnika temp ds18b20 ktory mierzy z dokladnoscia dwoch miejsc po przecinku. Sprawdzony ale tak jak juz koledzy mowili wyniki po przecinku bardzo czesto skacza Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 Config Pind.7 = Output Config Pind.4 = Output Config Pind.5 = Output Config Pina.6 = Output Config Pina.7 = Output Set Portb.0 Set...
Specjalnie się na tym nie znam, ale ja bym sprawdził fusebity, kwarc. Pzdr
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
Witam. Chyba nie szukałeś, lepszym i praktyczniejszym projektem jest mikrokontrol ATmegi czyli Arduino i wpiecie czujników wilgotności i temperatury. Mona kupić czujniki juz gotwowe uruchamiajac przy pomocy kodu napisanego w srodowisku Ardino IDE (np. dla początkujących). ARDUINO (ATmega) - https://botland.com.pl/content/category/... Odczytanie...
... i tu moje pytanie co można w tym programie zoptymalizować może deklaracje czujnikó próbowałem za pomoca czegos takiego ale mi nie wychodzi: 1wwrite adr adr: data tu numer seryjny czujnika Numer ID DS-a wystarczy umieścić w pamięci programu , tak jak zamierzałeś. 'jest 1wwrite Id(1) , 8 '... 'popraw na For x=0 to 7 y=Lookup(x,adr)...
Udało mi się znaleźć bardzo ciekawy [url=http://www.atmel.com/dyn/resources/... Atmela. Przeczytaj go dokładnie i wykonaj wszystko tak jak tam opisano. Myślę, że pomiędzy podanym w tym dokumencie buforze (strona 3), a zaemulowanym RS232 nie koniecznie musi być konwerter poziomów - MAX232. Pokazany tam bufor wzbogaciłbym o...
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Poprzez RS232 lub USB? W czym problem? Przy USB możesz wykorzystać z FTDI, np FT232, lub kupić AVR z wbudowanym USB i skorzystać z LUFA. To drugiej jest zdecydowanie dla nieco bardziej zaawansowanych osób.
Jesteś jednym z pionierów bo sprzęt drogi i mało popularny, więc sam musisz sprawdzić co się dzieje. Pierwsze co bym sprawdził, czy piny IO działa OK - miganie LED, potem kup sobie jakiś analizator Saleae (klony na Allegro kilkadziesiąt PLN), w programie Saleae Logic masz dekoder 1-Wire, możesz podejrzeć co się dzieje na magistrali, czy to Arduino nie...
nie wiem czy coś ze mną nie tak czy z tym forum, ale piszę tą odpowiedź drugi raz, albo odpowiedziałem w innym temacie ... użyj tej funkcji, u mnie działa to jest dla DS18 S 20 (niepotrzebnie wkleiłem , ale niech już zostanie) float zamien_temp(unsigned char MSB,unsigned char LSB) { float ftmp; if(MSB==0x00)//dodatnia,lub 0 {...
Chyba już wiem co może być, tylko nie wiem gdzie jest źródło problemu. Doczytałem się, że po zerowaniu po włączeniu zasilania bajty odczytu temperatury są ustawiane na wartość 85.00 stopni i tę wartość udaje ci się odczytać z rejestrów DS18b20 (co świadczy, że procedury odczytu działają poprawnie). Doczytałem się jednak też, że w układzie zasilania...
Elo! Jeśli ja mogę coś zasugerować to fragment kodu: Odczyt(1) = 1wread(2) T = Makeint(odczyt(1) , Odczyt(2)) można zastąpić takim: T=1wread(2) Oczywiście wcześniej deklarujemy zmienną T jako typ INTEGER i tu stwierdzenie: po co wyręczać kompilator, zmienna INTEGER z natury jest ładowana w kolejności LSB...
Uściślijmy jeszcze czy w kodzie który działa też nie masz wartości $framesize, $swstack i $hwstack? Rzeczy należy eliminować sukcesywnie. Dopisałbym te brakujące rzeczy od razu zamiast je podejrzewać... !EDIT! Zapomniałem o tym a już się w tej sprawie kontaktowałem kiedyś z Supportem :D Słowo Hbyte jest słowem używanym przez wewnętrzne procedury Bascom....
Panowie gdzie umieścić czujnik temperatury DS18b20 do pomiaru temperatury paneli. W którym miejscu go umieścić gdzieś na czole panela czy moze pod spodem?
Przeczytać opis protokołu 1-wire? Generalnie odczyt zawsze jest z termometru wybranego poleceniem np. MatchRom. Czyli wysyłasz polecenie MatchROM, następnie ROMCode termometru, któy cie interesuje i dokonujesz odczytu.
Tutaj widzę 18.313: 2012-02-21 14:06:21.661 T 00 00 FF FF 00 00 FF FF 2012-02-21 14:06:21.662 R 00 00 FF FF 00 00 FF FF 2012-02-21 14:06:21.662 T 00 FF FF FF FF FF 00 FF 2012-02-21 14:06:21.663 R 00 FF FF FF FF FF 00 FF 2012-02-21 14:06:21.663 T FF FF FF FF FF FF FF FF 2012-02-21 14:06:21.664 R FF FC FF FC FC FF FC FC 2012-02-21 14:06:21.664 T FF FF...
Przy 1 urządzeniu na 1Wire nie ma potrzeby używać ani SearchROM, ani MatchROM, ani ReadRom, tylko wystarczy SkipROM. 1. Reset1Wire 2. Jeśli Reset poprawny to SkipROM (0xCC) i ConvertT (0x44) 3. Odczekanie czasu na konwersję 4. Reset1Wire 5. Jeśli Reset poprawny to SkipROM (0xCC) i ReadScratchpad (0xBE)
DHT11 z założenia nie są zbyt precyzyjne ... Jeśli masz uwierzyć w któryś z tych czujników, to uwierz w DS18B20 :D
A może tak: Dim Temp As Integer Dim Disp As String * 5 Temp = 366 'odczytana wartość temperatury Disp = Str(Temp) Disp = Format(Disp , " 0.0") Locate 1 , 1 Lcd Disp Pozdrawiam...
Nie definiuj F_CPU w kodzie programu z tych powodów: http://mikrokontrolery.blogspot.com/2011...
No i teraz zasilanko że "mucha nie siada" ;) Ale dopiero teraz zauważyłem :( .... zastanów się co robisz z nie używanymi liniami LCD .... może zerknij tutaj a potem zrób jak uważasz: http://mirekk36.blogspot.com/2012/04/lcd... Dodano po 7 A to po to żeby uniknąć niszczenia styków przez prądy zwarciowe z kondensatora podczas wciskania...
Zobacz ten temat: http://www.elektroda.pl/rtvforum/topic22...
...Jakieś pomysły?? Źle "składasz/sklejasz" odczytany bajt :( //procedura odczytu bajtu z urzadzenia unsigned char wire_read_byte1(void) { unsigned char bajt, tmp, i; bajt = 0; for(i = 0;i<8; i++) { tmp = wire_read_bit1(); tmp = tmp << i; bajt = bajt | tmp; } return bajt; } Ja zrobiłbym to tak: //procedura...
Najbardziej ogólnie: 1820 - rozdzielczość pomiaru 9 bit 18b20 - rozdzielczość od 9 do 12 bit
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Witam ponownie. Ze względu na częstą potrzebę wykonywania pomiarów temperatury w dość długich procesach postanowiłem ulżyć sobie i stworzyć coś co zrobi to za mnie. Efektem moich przemyśleń jest urządzenie oparte o mikrokontroler Atmega8 i czujnik temperatury DS18b20. Dodatkowo urządzenie wyposażone jest w wyświetlacz, na którym można odczytywać mierzoną...
Aby kod łatwo było analizować używaj znaczniki SYNTAX: [syntax=c] tu wklej Twój kod [/syntax] Plik : HD44780.c Plik : HD44780.h Dodano po 25 Ja połączyłem je w ten sposób ale pewnie źle bo wystąpiły błędy w kompilacji. Proszę o pokazanie mi sposób połączenia tych dwóch plików w prawidłowy sposób. Pierwsze uwagi: - te dwa pliki to tylko...
Ja bym obstawił że to wina zasilania pasożytniczego. Jako że one nie są selektywne to ładują się wszystkie podczas transmisji, za mocno może przysiadać napięcie a przez to źle dokonuje się konwersja temperatury.
Moje doświadczenia z wifi, tymi modułami i gotowymi bibliotekami nie są zbyt dobre. Natomiast popinguj sobie, zobacz też czy z poziomu access pointa widzisz utratę połączenia (włącz może jakiś dodatkowy poziom logowania). Jest sporo kart wifi zasilanych z USB, więc i to powinno dać radę. A jak chcesz żeby ktoś oglądał kod, to wrzuć go w "syntax" wraz...
Gdy temperatura będzie wahać się 26,5 *C - 27*C zawór będzie wariował. Jak to można usprawnić? Zastosuj histerezę. [syntax=c]if ( temperaturaAktualna >= tempzanizona) { digitalWrite(zawor, HIGH); Serial.print("zawor otwarty"); } else if ( temperaturaAktualna < tempzanizona - jakasStalaWartosc) { digitalWrite(zawor, LOW); Serial.print("zawor zamkniety");...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
No być powinien :) Zobacz w schemacie do swoeje płytki ZL2AVR tam masz na 100% taki rezystor podciągający magistralę 1-wire do zasilania pozdr KN
Na maksymalną i minimalną daj dodatkowe zmienne min, max z warunkiem: jeśli aktualna większa niż maksymalna max=akt , jeśli aktualna jest mniejsza niż minimalna min=akt. Średnia może być obliczona na podstawie kilku pomiarów. Do kolejnych komórek pamięci zapisz wartości i na koniec wyciągnij z nich średnią.
To nie jest termopara, tylko DS18B20 - cyfrowy czujnik temperatury. https://obrazki.elektroda.pl/7344066100_... Potrzebujesz termopary typu K, np. https://allegro.pl/oferta/termopara-typu...
(at)ziom10zset co do Supli bym kupił https://allegro.pl/oferta/esp8266-v3-ch3... https://allegro.pl/oferta/modul-przekazn...
napisze to troche asemblerowym ( nie wiem czy dobrze napisalem) jezykiem: a wiec np: dla temperatury -25 stopni ( cos tam po przecinku ) odczytujesz taka wartość: 1111 1110 0110 1111 - ostnie 4 bity to wartość po przecinku nie bierzemy jej po uwage zostaje 1111 1110 0110 teraz zaneguj wszystkie bity; powstanie ci taki potwór 0000 0001 1001 a to jest...
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Jak masz rozmieszczone te czujniki ? Wszystkie są na końcu tych 300m czy co kilkanaście metrów jest kolejny czujnik. Myślę czujniki podpiąć pod uC całość przesłać RS-485 do PC co prawda będzie potrzebna aplikacja na PC
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
Na temat fuse bitów był osobny temat wałkowany i to dobrze ale narazie ich nie ruszaj bo "uwalisz" procka. DS-y są "wyczulone" na czas w którym następuje konwersja i jesli bedzie nieodpowiedni(wg noty 750ms) to DS moze wariowac i w ogole nie mierzyc(nie zdarzy wykonac konwersji). Jesli chodzi o ADC to w zasadzie różnica jest taka ze przy standardowym...
If Ttt < 0 Then 'wg. porady zumka Lcd "-" Ttt = Abs(ttt) Else Lcd " " End If w takim razie w ten sposób masz zamienić kawałek kodu odpowiedzialnego za automatyczny minus. zapewne chodzi tylko o dodanie komendy Else Lcd " "
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Poniżej przykład. Zwróć uwagę, że w tym przykładzie komenda konwersji temperatury występuje na końcu, a nie na początku. Odczytana temperatura będzie zatem tą która została konwertowana po poprzednim odczycie. To oczywiście nie ma znaczenia dla tego jak adresować czujniki. Powodzenia ! PL Config 1wire = Portd.6 Dim Adresy(16) As Byte Dim T1 As Byte...
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
Zegar posiada na pokładzie czujnik temperatury DS18B20 ale występują przekłamania temperatury o kilka stopni.
Odczytaj_ds: 1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 T1 = T1 + 0.05 'T1 wartość temperatury xx.xx T1 = T1 * 10 'wartość całkowita...
Zbytnio mi ta odpowiedź nie pomogła... To chyba niezbyt dokładnie przeczytałeś(zrozumiałeś) dokumentację DS18B20 :cry: Przypatrz się tabelce i zobacz, gdzie znajduje się rejestr konfiguracyjny, w którym zapisane jest, z jaką rozdzielczością ma "pracować" nasz DS. http://obrazki.elektroda.net/29_12275171... Zakładając, że nie znamy wartości...
A ja sugeruję, poczytać dwa tematy 1. Ten projekt nie spełni wymogów producenta mikrokontrolera od strony podłączenia niezbędnych pinów: http://mikrokontrolery.blogspot.com/2011... 2. Podobnie z częścią zasilającą: http://mikrokontrolery.blogspot.com/2011...
Witam ! Daj cały kod i cały schemat. Pozdrawiam. Stefan
Tutaj masz przyklad w ktorym po kazdorazowym wcisnieciu przycisku zmienna zwieksza sie o 1: Config Pinb.3 = Input S1 Alias Pinb.3 Set Portb.3 If S1 = 0 Then Waitms 25 If S1 = 0 Then 'np. Incr twoja_zmienna End If End If A tutaj wcisniecie przycisku i jego przytrzymanie powoduje zmniejszanie sie zmiennej o 1 co 200 ms: Config Pinb.3 = Input If S1 = 0...
Oto odpowiedź: http://mikrokontrolery.blogspot.com/2011...
Hej! Twój problem polega na specyficznej konstrukcji magistrali 1Wire i tego że wszystkie czujniki są podłączone za pomocą jednej lini i w momencie gdy chcesz pobrać dane z jednego to zgłaszają ci się wszystkie na raz lub ten który jest szybszy. Miałem podobny problem gdy w układzie miałem podłączony czujnik temperatury oraz pastylkę dallasa i efekt...
Podejrzewam, ze jest jakis bład w algorytmie interpretacji odczytanych ajtów z termometru. Z ciekawosci wlazlem na http://pdfserv.maxim-ic.com/en/ds/DS18B2... i jest tam tabelka przykładowych wskazań dla wybranych temperatur. Nie znając programu niemożliwe jest powiedzenie czegos wiecej. pozdrawiam
Witam chciałbym zaprezentować układ pomiaru temperatury z wielu czujników Ds18b20 ,na razie czterech z jednego modułu ESP8266. Projekt nawiązuje do tego rozwiązania : https://www.elektroda.pl/rtvforum/topic3... Tamten projekt już nie będzie rozwijany w tym natomiast wprowadziłem wiele zmian przygotowując sobie grunt pod przyszłą rozbudowę i...
Blad odczytu z DS18B20 objawia się odczytem temperatury -127 st., tyle, że może to również oznaczać błąd czujnika, brak łącznoeci itp., więc nie jest to jednoznaczne z brakiem zasilania. Pozdr
Dołącz i edytuj plik config.h z folderu, w którym są źródła tego przykładu. W tym pliku jest zdefiniowany port i pin. Ustaw odpowiednio dla Twojego układu.
Trochę czasu już minęło i nie pamiętam, czy akurat to poprawiłem. Parę zmian wprowadziłem w wersji 1.03 v1.03: - dodana wersja dla procesora ATmega328 - brak wyświetlania temperatury w przypadku braku czujnika DS18B20 - dodany wyświetlany format daty “DT DD.MM” - dodana możliwość wyłączenia synchronizacji GPS - dodany parametr konfiguracyjny “P8”,...
Chodzi o to że czasami odczytujesz nie cały wiersz lecz jego fragment. [syntax=delphi]var P:Integer; begin ComPort.ReadStr(Str, Count); Memo.Text:= Memo.Text+Str; P:=Pos(#13,Str); if P>0 then begin Str:=Memo.Lines[Memo.Lines.Count-2+Ord(P... T1:= Copy(Str,1,4); T2:= Copy(Str,6,4); Label3.Caption:= 'Temperatura IGBT [T1] = '+T1; Label2.Caption:=...
temperatura ds18b20 miernik temperatura ds18b20 ds18b20 czujnik temperatura
prostownik trójfazowy mostkowy bosch sterownik silnika prędkość sprinter
pętla prądowa skymaster 32sh1000
Zamienniki tranzystora Infineon BFP621C – BFP620, BFP640, NXP BFU730F, parametry RF Koszt wymiany radaru przedniego w Mercedes W213 2019