To z 1296_merge_19c501f2bad3 i Maxim DS18B20 i 4,7k ohm - P10 - PowerSave 0 Info:CFG:D S1820 - poproszono o konwersję - Pin 10 Info:CFG:D S1820 - Pin=10 temp=+24.87 Info:CFG:D S1820 - High=1 Low=142 Val=398 Tc=2487 -- Odczyt CRC=8d - obliczono:8d Info:CFG: Info:CFG:D S1820 - zapytano o konwersję - Pin 10 Info:CFG:D S1820 - Pin=10 temp=+24.87 Info:CFG:D...
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...
Witam, chciałbym spytać Was o poprawność zmiany rozdzielczości czujnika temperatury DS18B20 na 9-bit. Zmieniam to w nastepujący sposób: Zacznę od ostatniego pytania: To nie są bity - raczej bajty, i sa to tylko TH i TL i są wpisane tylko do Scratchpad. To by wystarczyło dopóki nie wyłączysz/reset processora. Musiałoby to pozostac częścią programu....
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Ok, to ja dorzucę swoje trzy grosze :) Przede wszystkim, aby procedury _delay_* działały poprawnie należy włączyć optymalizację kodu np -O1 Sprawdź może to powoduje problem. Po drugie, na czas odczytu i zapisu magistrali warto zablokować przerwania, tak żeby procedura obsługi przerwania nie rozjechała czasu poszczególnych okien. A na koniec moje procedury,...
Teraz dopiero dopatrzyłem się, że przy starcie raz wywala wartość 85 stopni co nie powinno mieć miejsca. To jest zupełnie normalne że pierwszy odczyt może wskazywac 85°C. Patrz: uwaga pod tabelą na str. 3 datasheet: *The power-on reset value of the temperature register is +85°C Może ci się takze pokazac 0°C , - jako jeden z poczatkowych odczytów gdy...
Cześć. Podczas pracy z tymi czujnikami, kiedy znajdują się w zakłóconym środowisku, co jakiś czas dojdzie jednak do jego zresetowania się i poda temperaturę +85C (domyślna zawartość rejestru po resecie zasilania). Wydaje się, że nie ma innego sposobu jak tylko sprawdzać czy odczyt wynosi +85 i po prostu go nie uwzględniać. Ale co wtedy kiedy akurat...
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...
wiem wiem, że tak to się robi mam to napisane w programie dokładniej ten fragment jest za to odpowiedzialny: ................. Tyle, że czujnik ds18b20 nie podaje temperatury tak po prostu do procesora np.: 20 stopni Celsjusza tylko trzeba to troszkę przekonwertować za co odpowiedzialna jest ta część programu: fajnie miło i przyjemnie jeśli temperatury...
Ja mam to u siebie zrobione na maszynie stanów - niestety program jest napisany w ASM i a PIC'a, więc nie nadaje sie do bezpośredniego przeniesienia, ale istotny fragment mogę zamiescic: [syntax=asm] ;---------------------------------------... ; Odczyt temperatury z DS1820 - Match ROM bra uL_ResPres ; State=9 - reset/presence...
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ą...
Obiecałem działający programik. Działa na 100%. Jest to progrtam, który wysyła stan temperatury z DS18B20 do kompa, ale dla Ciebie najistotniejszy jest sposób komunikacji. Jest wysyłane zapytanie i uC zwraca odpowiedź. Jak uporasz się z krzaczkami, to program Ci się przyda. Można zrobić bardzo prosty protokół wymiany informacji. #include <avr/io.h>...
Jeśli "Family not discovered", to DS18B20 jest wykrywany, ale jedna ze zmian w sterowniku przestała działać dla niektórych fałszywych czujników, nawet jeśli działały wcześniej. Testuję z pojedynczą partią DS18B20 z Aliexpress i nie działa tylko na NiceMCU, ale spróbuję ponownie. Za chwilę dodam zrzuty ekranu. Dodano po 13 . 1538_merge_331bfab0a8a5...
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...
Powiedzcie mi proszę co w moim przykładzie jest nie tak. Temperatura się wyświetla w obydwóch polach na wyświetlaczu, ale naprzemiennie. Jak zrobić żeby jedna była na jednym a druga na drugim? [syntax=c]#include "Nextion.h" #include "NexText.h" #include "NexGauge.h" #include <OneWire.h> #include <DallasTemperature.h> OneWire ds(7); // deklaracja...
Pomyślałem, że powinienem wrócić i przeczytać Twój pierwszy post. Założyłem (!), że każdy czujnik ma być na własnym gpio. Przerobię na wzór twojej płytki. Ciekawe jednak, że przy pełnym wykryje pierwsze dwa, ale nigdy ostatniego z 3, które ustawiłem, niezależnie od gpio powyżej drugiego. W każdym razie, zmienię to. https://obrazki.elektroda.pl/9845574900_...
Nie działa mi odczyt danych z DS18B20 Program który napsałem: // NIE DZIAŁA - odczytuje FF byte present = 0; byte data[9]; byte addr[8]; #include <OneWire.h> OneWire ds(A0); // DS18B20 pin void setup(void) { Serial.begin(9600); } void loop(void) { ds.reset(); ds.write(0x44);...
Czy można przez konwersję BCD wyciągnąć znak (temperatura dodatnia/ ujemna) . Spróbuj dopasować sobie ten code. [syntax=basic4gl][/syntax ... $regfile = "m8def.dat" $crystal = 4000000 $baud = 9600 $hwstack = 32 $swstack = 16 $framesize = 40 Dim Scratchpad(9) As Byte Dim Temp As Integer At Scratchpad Overlay Dim Ds18b20_temp...
return ((scratchpad[1] << 4) | (scratchpad[0] >> 4));//obliczanie dla DS18B20 return ((scratchpad[0]>>1... // obliczanie dla DS1820 (nie B!!) Ja tak zmieniam temperaturę - oczywiście scratchpad to tablica 9 bajtów odczytanych z czujnika.
Czesc wszystkim, Mam problem z poprawnym działaniem termometru na 7-segmentowym wyświetlaczu. Załączam film - no nie chce się bardzo rozpisywać. Generalnie to nic złego w bibliotekach multipleks. Coś z kodem jest nie tak prawdopodobnie w dsb1820. Poniżej załączam kod. Proszę o pomoc. Pozdrawiam. Dodam tylko, że temperatura jest wyświetlana poprawnie...
main.c [syntax=c]#define F_CPU 16000000UL //definiujemy F_CPU na 16MHz #include <avr/io.h> #include <util/delay.h> #include <avr/io.h> #include <stdlib.h> #include "HD44780.h" #include "DS18B20.h" char str[17]=" Termometr "; int main (void) { double temp; /* W tablicy zapisywane będą dane odczytane z układu ds18b20 */ unsigned...
Przed Copy Scratchpad , daj 1wreset. Piotrek
witam, po raz kolejny powtarzam temat, nie znalzałem rozwiązania wertujac inne dlatego piszę. Złożyłem termometr wg kursu AVR GCC. I nie działa naturalnie tzn. na wyświetlaczu pokazuje się jedynie napis Termometr a kiedy odłącze czujnik pojawia się wartość temperatury czasem 0.0C a czaem 800C. Na czujnik nie reaguje. Wyświetlaz obsługuje hd44780 i działa...
Witam, przekopałem się przez wiele tutoriali, postów, wątków, i nie znalazłem rozwiązania, więc postanowiłem opisać własny problem. Mianowicie: mam podłączone do Atmegi8 dwa wyświetlacze 7seg multipleksowane, oraz termometr cyfrowy DS18B20. Chciałem aby zmierzona temperatura była wyświetlana na tych 7seg, oczywiście ze względu na dwa wyświetlacze jedynie...
Dodam, że pamięci zaczyna brakować, gdy chcę wykonać instrukcje if. Jeśli daje ją w komentarz to program używa 20.2%, a z nią 131% i data 206%. [syntax=c] /* Plik ds18b20.h (xyz.isgreat.org) */ #ifndef DS18B20_H #define DS18B20_H /* DS18B20 przyłączony do portu PD7 AVRa */ #define SET_ONEWIRE_PORT PORTB |= _BV(5) #define CLR_ONEWIRE_PORT PORTB &=...
Okej rozumiem , dziękuję za pomoc ;) Jeszcze przy okazji , aby nie robić nowego tematu specjalnie. Czy możecie sprawdzić program obsługi tego ds18b20? Program ma sterować diodą i optotriakiem podłączonym do PB1 oraz pośrednio (przez optotriak) triakiem do którego podłączona bedzie grzałka i w zależności od temperatury z czujnika DS18B20 uklad ma utrzymac...
Aby zmienić rozdzielczość i/lub temperatury alarmowe w DS18B20 , należy: 1)odczytać scratchpad 2)zmienić rozdzielczość w bajcie konfiguracyjnym(bajt nr.4 licząc od 0) 3)zapisać do scratchpada 3 bajty , w kolejności: TH ,TL , CONFIGURATION 4)skopiować scratchpad do eepromu Można pominąć kroki 1 , 2. Ustawienia zostaną zapamiętane w wewnętrznym eepromie...
Procedury działają robrze z DS1820, natomiast nie za bardzo chcą działać z DS18B20. Wydaje mi się, że dlatego, że DS1820 jest ustawiony standardowo w tryb 9-bitowy, a DS18B20 w tryb 12-bitowy. Stosując DS18B20 wysyłam rozkaz WRITE SCRATCHPAD [4Eh] a potem 00011111b, jednak to nie daje poprawnego odczytu. Czy ktoś stosował DS18B20 w tym układzie ?
Co więcej, nigdzie przy odczycie temperatury nie ma juz sprawdzania CRC, Funkcja getTemp() wywołuje za każdym razem funkcję isConnected(), która z kolei czyta scratchpad i weryfikuje jego zawartość, w tym CRC: Dodano po 4 w większości funkcji (poza jedną, readscratchpad) nigdzie nie jest sprawdzany rezultat resetu, Do tego celu służy właśnie druga...
Teraz jak zmieniłem bibliotekę do ds18b20 to mam wynik -0.0625, czyli tak jak by ta zmienna temp_word miała cały czas 1 i nie zmieniała swojej wartości [syntax=c]/*****************************... * file name: temp_sensor.c *********************************/ #include <avr/io.h> #include <stdint.h> //#define F_CPU 7372800UL #include <util/delay.h>...
Witam Od kilku dni męczę sie z próbą odczytu temperatury z czujnika DS18B20 przy pomocy bibliotek rklibavr. Czujnik jest podpięty do portu PB0 w procesorze amtega8, rezystor podciągający ma wartość 4,74K dane zczytane z czujnika są wyświetlane na standardowym wyświetlaczu 2x16. Atmega pracuje na wewnętrznym oscylatorze 1Mhz, całość jest zasilana ze...
ds -> write scratchpad
I1 = 1wread(2) tu pobierasz tylko 2 bajty (wartość temperatury), a powinieneś pobierać wszystkie 9 http://www.datasheetcatalog.org/datashee... Strona 6 Figure 7 tak wygląda Scratchpad tego termometru. z pierwszych 8miu bajtów liczysz CRC8 i porównujesz bajtem 9tym (CRC8 obliczone przez termometr), muszą się zgadzać. Pozdrawiam,...
Witam Testuje czujniki temp ds18b20 3 sztuki na jednej magistrali. Mam już ich rom code i odczytuje ładnie temperaturę . Jak sprawdzić czy dany czujnik jest wpięty czy nie lub uszkodzony. Niby prosta sprawa a nie mogę sobie z nim poradzić Proszeę o pomoc. [syntax=c] while(!OneWireReset()); OneWireWriteByte(0xCC); // SKIP ROM OneWireWriteByte(0x44);...
Witam Zaczynam zabawę z z atmegą 16 i czujnikiem DS18B20 i mam jak każdy na tym forum mały kłopot............ hm co jest nie tak ? . Prosił bym o podpowiedz Spróbuj ten, troche zmieniony code: [code][syntax=basic4gl] $regfile = "m16adef.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5 , Db5...
Pliczek do odczytu termometru z [url=http://www.elektroda.pl/rtvforum/to... tematu. [syntax=c] //**************Plik ds18b20.h****(xyz.isgreat.org)**********... int nrpin; // numer pinu sensora ds #ifndef DS18B20_H #define DS18B20_H /* DS18B20 przyłączony do portu AVRa */ unsigned char ds18b20_ConvertT(void); int ds18b20_Read(unsigned...
Pliczek do obsługi DS18B20 bez odczytu kodu :) może Ci się przyda [syntax=c] //**************Plik ds18b20.h****(xyz.isgreat.org)**********... int nrpin; // numer pinu sensora ds #ifndef DS18B20_H #define DS18B20_H /* DS18B20 przyłączony do portu AVRa */ unsigned char ds18b20_ConvertT(void); int ds18b20_Read(unsigned char []); void OneWireStrong(char);...
Witam, Z tej stronki [url=http://mirley.firlej.org/node/1137]... dowiedziałem się jak obsługiwać moduły komunikacji radiowej RFM12B. Przykład nadanika: [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 '8MHz $hwstack = 70 $swstack = 70 $framesize = 160 '$noramclear Config Submode = New Config Watchdog = 512 '512ms Start Watchdog '---------Constants---------------------...
Kolego Granat:) Dla Twojej informacji zacytuję Ci fragmenty noty aplikacyjnej układu DS18B20 "MEMORY The DS18B20’s memory is organized as shown in Figure 7. The memory consists of an SRAM scratchpad with nonvolatile EEPROM storage for the high and low alarm trigger registers (TH and TL) and configuration register. Note that if the DS18B20 alarm...
Witam, czy ktoś z użytkowników forum spotkał się z funkcją wyszukującą termometry DS18b20 na magistrali 1wire za pomocą komendy ALARM SEARCH [0xEC]? W moim zamyśle cała procedura wyglądałaby następująco: 1. za pomocą komendy SKIP ROM i WRITE SCRATCHPAD ustawienie w SCRATCHPAD'ach wszystkich urządzeń na magistrali takiej wartości rejestru Th, by wszystkie...
Panowie mam debilne pytanie bo nie rozumiem tego a sporo się naszukałem i nie znalazłem wyjaśnienia. Chodzi mi o to: kody rozkazów do ds18b20 w manuału są takie: ' 1 Wire commands: ' 1. Read ROM - 33h ' 2. Match ROM - 55h ' 3. Search ROM - F0h ' 4. Skip ROM - CCh ' 5. Alarm Search - ECh ' Convert T - 44h ' Read Scratchpad - BEh ' WriteScratchpad - 4Eh...
Witam, otóż posiadam czujnik dallasa ds1820 nie ds18b20 i mam taki problem ponieważ nie mogę znaleźć żadnego kodu by odczytać temperaturę, próbuję korzystać od ds18b20 ale wynik mam równy 4. Oto kod: main.c [syntax=c] if(ds18b20_ConvertT()) { /* 750ms - czas konwersji */ _delay_ms(750); /* Odczyt z układu ds18b20, dane zapisywane są w tablicy ds18b20_pad....
Z noty katalogowej widze że trzeba zmienić w rejestrze konfiguracyjnym (czyli 4ty bajt scratchpada) bit 6 i 5 na 0. sam odczyt temperatury robię tak: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE I = 1wread(2) S = I / 16 T = Fusing(s , "##.#") chodzi mi o to żeby zmniejszyć waitms do 95 jak...
Dziwne wartości z DSa masz na 80% z powodu zakłóceń linii. Nie czytasz całego scratchpada a tylko samą temperaturę, więc jeden przekłamany bit wystarczy żebyś dostał i wyświetlił śmieci. Czytaj cały scratchpad - on się konczy sumą kontrolną, więc po odebraniu danych możesz sensownie zweryfikować, czy to, co dostałeś, ma sens. [syntax=C] static const...
Witam przeczytaj dokładnie datasheet ds18b20 żeby ustawić rejestry TL i TH i Config,w najprostszej postaci musisz zrobić tak: -reset lini 1-wire -skipp rom 0xCC -write scratchpad 0x4E -teraz kolejno zapisujesz 3 bajty TH TL i Config i to tyle, jak sprawdzić alarm doczytasz sobie w nocie katalogowej zmiana np rozdzielczości i wpisnie przykładowej wartości...
Dzień dobry, Korzystam z gotowego kodu na komunikację przez protokół 1-wire oraz odczyt temperatury z czujnika DS18B20. Dla tego kodu prubuję zmienić rozdzielczość czujnika z 12bit na 9bit. Proszę o weryfikację kodu, a w zasadzie miejsca moich zmian, czy w dobrym miejscu kodu zmieniam wartości bajtów rozdzielczości czujnika? Oraz czy w ogóle robię to...
To jest kod z kursu i nie wiem czy mogę go tak umieszczać na forum ale najwyżej jeśli to niezgodne z regulaminem to proszę usunąć [syntax=c]/* Plik ds18b20.c (minimum kodu do odczytu temperatury z ds18b20) xyz.isgreat.org */ #include <avr/io.h> #include <util/delay.h> #include "ds18b20.h" /***************************************...
hym.. nie wiem czy rozszyfrowywac wszystko po kolei, jesli uznasz za stosowne napisz. powklejam kolejne wywolania. Funkcja ktora pisze (zle dzialajaca) wyglada tak: void ds18x20::pobierz_kod(uint8_t kood[8]) { if(!reset()) return ; write_byte (0x33); for(uint8_t i=0;i<8;i--) { kood[i]=read_byte();...
Witam, mam problem z przerobieniem biblioteki do obsługi DS1820, tak ,aby można było odczytywać temperature z kilku czujników umieszonych na osobnych pinach. Biblioteki pobrane są ze strony http://kursc.dioda.com.pl/. W podanym niżej pliku port PC0 do którego przypięty jest czujnik jest przypisany na sztywno. Chciałem zrobić tak: #define SET_ONEWIRE_PORT...
znalazłem coś takiego oblicza crc z np. DS18B20 lub iButon static __inline__ uint8_t _crc_ibutton_update ( uint8_t __crc, uint8_t __data ) [static] Optimized Dallas (now Maxim) iButton 8-bit CRC calculation. Polynomial: x^8 + x^5 + x^4 + 1 (0x8C) Initial value: 0x0 See http://www.maxim-ic.com/appnotes.cfm/app... The following...
ds1820 scratchpad termostat ds18b20 ds18b20 mirekk36
przepalone triak schemat prostej przetwornicy napięcia skrzynia automatyczna honda civic
maszyny budowlane maszyny budowlane
Jak zdjąć przedni panel w kuchence Amica GHI 85312? Dekoder LXHDT203 przeskakuje - problem z FD 650B-S