Chyba nawet lepiej całkiem przenieść kawałek opisany jako "konwersja temp dla wszystkich dsow" przed pierwszy odczyt. Bo Twoim sposobem konwersja będzie (niepotrzebnie) wykonywana dwukrotnie. Ale ja nie jestem "Bascomiczny", więc uprzedzam, że mogę się mylić ;)
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...
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Zbudowałem ostatnio kilka urządzeń z wykorzystaniem pinu WR wyświetlacza. Ta biblioteka nie jest szczęśliwa. Jest dużo nowsza i w dodatku z możliwością użycia dowolnych pinów biblioteka. Jest włączana automatycznie jeśli jako ostatni parametr/pin napiszesz WR = PIND.3 (przykład) Użyta zostanie biblioteka "lcd4busy_anypin" Przykład z moich kodów: Zapomniałem...
Masz poniżej zawartość dwóch plików, które trzeba podmienić: [syntax=c] #include <util\atomic.h> #include <util\delay.h> #include <avr\io.h> #include "1wire_basic.h" uint8_t Error; uint8_t PinMask; void OW_SendBit(bool bit) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { DDRB |= PinMask; _delay_us(3); if(bit) DDRB &= ~PinMask; _delay_us(60);...
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
nie zagłebiajac sie w kod, wydaje mi sie ze to jest ten delay_ms. ma prawo wystepowac cos takiego ze siedzisz w delay'u to juz sie zmienil czas ale minie spory kawałek sekundy zanim odswiezysz wyswietlacz.. na test usun delay'a, jak pomoze to zrob to czekanie na timerze
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 {...
Witam, Wstrzymaj się z bascomem na razie. Wynik jaki otrzymałeś tzn: 16, 197, 244, 1, 2, 8, 0, 128. nie dokońca jest zły. Koledzy słusznie Ci napisali że pierwszy bajt jak powinieneś otrzymać powinien być 0x28 ale w przypadku użycia 12 bitowego czujnika DS18B20 a Ty odebrałeś 0x10 w Hexie więc ja wyrokuję że Ty poprostu korzystasz z czujnika DS18S20...
...czyli najpierw zamieniam 0x33(READ_ROM) na 0xFF(znajdź pierwszy) to zamiast numeru ID ds-a wyświetla mi FF FF FF FF ... Co robię źle ?... Ha, żeby to było takie proste. "SEARCH ROM" - to jest zaklęcie, które powinno Cię zainteresować. Poszukaj, bo to dość ... popularny temat.
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)
Nie kojarzę już przy jakiej okazji otrzymywałem ten błąd. Ale zaproponować Ci mogę skorzystanie z tych kodów:[url=http://www.stsystem.elektroda... czujnik, [url=http://www.stsystem.elektroda.eu/pr... czujników. Kody działają w 100%, pochodzą z wdrożonego rozwiązania. Przyjrzyj...
Powrócę jeszcze do tematu. Timery programowe to objaśnił Mirekk36 w swojej książce oraz artykułach i wideo poradnikach, bardzo dobrze je się stosuje. Jest to proste, wystarczy ustawić jakiś timer w tryb CTC i wywoływać przerwanie co jakiś zamierzony czas (stosuje około 10ms). F_CPU/Prescaler/100 Zaokrągloną wartość wpisujemy do rejestru OCRx. W przerwaniu...
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.
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...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
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...
a po co ci takie duże zmienne uint16_t decicelsius; uint16_t subzero, cel, cel_frac_bits; tam zdaje sie powinny być unsigned char no i tu hd44780_putInt((decicelsius/100), 10,0); chyba powinno być (decicelsius/10) - jak sama nazwa wskazuje decicelsius zwraca wartość w dziesątych stopnia np. 26.5°C -> 265
Kasować licznik- a nie przerwania- na początek. Kasować licznik i musisz zastosować dwie flagi, inaczej nie da rady. Jedna sprawdzająca czy już możesz odczytać dane, drugie sprawdzająca czy już możesz wysłać żądanie odczytu:)
Masz rezystor podciągający? Niektórzy o nim zapominają.
To nie powinno być więc trudne. W pole can_frame.can_dlc wpisujesz rozmiar typu float, a następne wypełniasz tablicę can_frame.data , np. can_frame.can_id .
Może układ gasika zamontować na styczniku.
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ąć...
Wstałem rano z wyspaną głową i patrzę na Twój kod przy kawie. Deklarujesz 80 bajtów na adresy czujników. Start każdego adresu określasz tak, że mnożysz razy dziesięć wartość zmiennej "Zmienna" Pierwszy Dallas zajmuje więc komórki 10,11,12,13,14,15,16 i 17 Siódmy Dallas zajmuje 70,71,72,73,74,75,76 i 77 ... i tutaj zadeklarowane 80 bajtów się kończy......
1. linia danych jest podciągnięta do plusa?, sprubuj zasilić go "normalnie" 2. jak czesto robisz pomiar, manual podaje że nie powinno sie tego robic częściej niż co 750ms. 3. nie wiem jak zwiekszyć precyzje odczytu w bascomie
https://obrazki.elektroda.pl/1760348500_... Witam. Mam już w posiadaniu kolejny czujnik temperatury DS18B20. Czujnik ten podłączyłem zgodnie ze schematem umieszczonym na zdjęciu. Do jednej dużej podpiąłem 5V, do drugiej Dane (pin cyfrowy np: 13) oraz GND, z Arduino. Dodatkowo umieściłem rezystor 4,7k ohm, w celu dokładnego odczytu...
Jak zrealizować w esphome odczyt temperatury z ds18b20 tylko w czasie załączenia danego urządzenia. Również odczytane dane były wysyłane do HA tylko w czasie włączenia urządzenia i to w interwale czasowym np 5 sek.
Zbyt duzo razy widzialem zapewnienia, ze "wina w 100% nie lezy po mojej stronie", aby w nie uwierzyc :) Byc moze tak jest, pokazanie nam swojego kodu nie zaszkodzi, a moze ktos cos zauwazy niewlasciwego. No i nie napisales, czy inne funkcje (zapis/odczyt wewnetrznego EEPROM) dzialaja poprawnie.
Str. 100 i 101. Rejestr TCCR0, bity COM00 i COM01.
Miałem problem z odczytem z 1 ds18b20 i problem tkwił w opóźnieniach (standardowa biblioteka nie jest najlepsza) http://www.elektroda.pl/rtvforum/topic98... nie jestem znawcą ale pomogło.
Masz tu procedurkę odczytu i wyliczenia temperatury. Prościej się nie da. Nie wiem w czym piszesz, ale sama procedura (bascom) jest czytelna.
Witam Mam problem ze skompilowaniem w Bascom 8051 procedur do DS18B20 B1 = B1 / 16 ,obliczenia wyłącznie... B2 = B2 * 16 , dla temperatur dodatnich. Być może dla Ciebie , przecinek i średnik to to samo - dla Bascome nie ;) Piotrek
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ą.
Kwarcu brak, pracuje na wewnętrznym oscylatorze. 100 ms niestety nie pomogło. A te kable to mogą być takie długie? Wiem, że dla 1 Wire moze być nawet 100 m a dla HD44780?
Program z pewnością można dostosować do konkretnego egzemplarza ds1820, tylko ze to dużo więcej fatygi niż kupienie sprawnego.
Instrukcja odczytuje 8 bajtów unikalnego numeru i zapisuje je w tablicy począwszy od wskazanego indeksu w stronę narastania indeksów. Czyli jeśli wskazuje się 1 to numer pierwszego czujnika jest w komórkach od 1 do 8. To znaczy, że powinieneś napisać: Z = 9 Adres(z) = 1wsearchnext()
Po prostu trzeba odjąć te 3 stopnie przed wyświetleniem temperatury. A jak często odczytujesz temperaturę? Zbyt częsty odczyt powoduje nagrzewanie się czujnika. Pozdrowienia -teedd
Witam. Zaczolem ostatnio zabawe z czujnikiem temperatury DS18B20 podlaczonym do Atmega8. Wszystko gra ale chcialbym sie dowiedziec w jaki sposob mozna zmienic ustawienie dokladkosci pomiaru bo odczyt temperatury przy ustawieniach fabryczne jest zdziebko przydlugi. Czy takie nowe ustawienie czujnika trzeba zapisywac za kazdym razem jak uruchomie uklad...
Ja miałem podobne problemy i okazało się, że to z powodu funkcji czasowej delay_us. Zastąpiłem ją inną i wszystko zaczęło chodzić OK. Zastosuj tą: void delayus(unsigned char t) //parametr t od 0 do 255. { do{asm("nop");}while(--t); } W miejscu gdzie masz zdefiniowaną częstotliwość oscylatora wpisz też: #define F_CPU 8000000ul
Ma to duże znaczenie bo jeśli takie nodemcu z ds18b20 ma chodzić non stop to trzeba brać pod uwagę ilość cykli odczytu termometru ds18b20 która jest limitowana i po której termometr zwyczajnie przestaje działać. Dobrze, że moje DS18B20 o tym nie wiedzą, bo już dawno przestały by działać. :) Od 2018 roku co 10 sekund. Po prostu trafiłeś na złe sztuki,...
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...
Witam. Mam problem z błędnym pomiarem temperatury. Termometr pokazuje temperaturę ok 56-58 stopni(?) w temperaturze pokojowej. Sprawdzałem na innym modelu i nadal mam to samo. Po dotknięciu temperatura wzrasta, więc prawdopodobnie nie jest to spowodowane jakimś nagrzewaniem się układu. Kod napisałem w oparciu o ten artykuł: http://www.jaglarz.com/ja/elektronika/ds...
wg helpa bascoma masz: Gosub podprogram 'wywołanie .... .... a oznaczenie podprogramu podprogram: .... .... Return sub wymaga wcześniejszej deklaracji i wywołania poprzez call poza tym możesz mieć kłopoty ze zmiennymi oznaczonymi samymi cyframi w załączniku masz termometr który zrobiłem dla koleżanki (robiony na szybko więc nie jest specjalnie zoptymalizowany)...
http://www.teslabs.com/openplayer/docs/d... Nie ma możliwości, żeby to nie pomogło.
Ile razy można... Zajrzyj do starych postów
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...
Więc pojawia się pytanie jak sprawdzać kolejne bity w kolejnych przebiegach "pętli" (w przypadku procedury zapisu) oraz jak ustawiać logiczne 1 w kolejnych bitach przy kolejnych przebiegach "pętli" (w przypadku procedury odczytu). Jeśli chodzi o zapis to zrób tak, że sprawdzasz, czy najmłodszy bit w rejestrze jest wyzerowany, jeśli tak to ustawiasz...
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Kuniarz program jest dobry bo działa na 8-ce. Dlatego pytam o ten RXD. Poniekąd rozwiązałem problem. W AVR Studio można zmieniać procesor jaki ma być programowany i gdy wybiorę: atmega16a to pomiar jest wykonywany, ale wtedy przyciski które mam podłączone do PIN-ów odpowiadających za przerwania zewnętrzne, resetują mi cały program(liczniki) i nie spełniają...
Szybciej zdążyłem napisać samodzielny i działający program niż uzyskałem jakąkolwiek pomoc. Dziękuję serdecznie wszystkim forumowiczom ! :) Zamykam.
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
A w jaki sposób wyszukujesz te czujniki? Należy to zrobić przez SEARCHROM, zapisać gdzieś wszystkie adresy, a przy odczycie temperatury wywoływać kolejno te adresy. Wyszukiwanie wszystkich układów: unsigned char ow_search_address() { uint8_t conf_mask[8]={0}; uint8_t i, j, retcode; unsigned char dev_num; for(j=0;j<3;j++)...
Mam termometr na Ds1820 i Atmega8.Pracuje na wewnętrznym oscylatorze(przestawiłem na 4Mhz) bez zarzutu.Należy pamiętać o $crystal (np.4000000). Pozdrawiam! Poprawcie mnie jak sie myle, ale tym poleceniem to raczej wewnetrznego oscylatora nie przestawimy bo takiej opcji po prostu nie ma !! wiec kolega W.K chyba cos namieszal... "Oscillator is voltage...
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...
Nie wiem jak z ceną takiego urządzenia ale osobiście unikam oscyloskopów które nie mają własnych pokręteł i ekranu. Praca na czymś takim to prawdziwa męczarnia. Parametry próbkowania tego sprzętu (jak zerknąłem) też nie powalają. Oczywiście na takim oscyloskopie USB da się robić pomiary i od biedy lepsze to niż nic...ale po co się męczyć. Lepiej kupić...
mialem podobny problem umnie wariowal przy odczytywaniu temp ponizej 15 stopni problem był w 1 wire za dlugo czekalem na odczytanie znaku nieszcesne 1 μs jak zmniejszylem czas to poszlo
Dokładność pomiędzy rzeczywistą temperaturą a wskazaniami tych czujników według noty wynosi 0.5st Może wykonaj jeszcze test umieszczając czujnik na przewodzie. Co tak dokładnie mierzy temperaturę w Twoim pokoju że ufasz bardziej temu urządzeniu? Wszystko zależy gdzie te urządzenie mierzy temperaturę. W sezonie grzewczym myślę że w różnych miejscach...
usuń delay(1000); z sensors.requestTemperatures(); i wykonaj opóźnienie na timerach
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);//...
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...
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....
Pokaż chociaż kawałek kodu to zobaczymy jak to zrobiłeś. Do przemyślenia podam kilka przybliżonych wartości. Odczyt 9 bajtów z DS18B20 (razem z CRC) trwa ~7ms Odczyt tylko dwóch bajtów ~3ms Multipleksowanie 4 LED7Segment to najcześciej 200Hz czyli co 5ms Obsługa wyświetlaczy w przerwaniu trwa ~ 5 us przy 8MHz Napisz przerwanie optymalniej a Dallas nawet...
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...
Pewnie chodzi o to: Niezupełnie, raczej o to: :) [syntax=c]int16_t data = (msb << 8) | lsb; if (data < 0) data = -data; data = data * 5 / 8[/syntax]
Zakładam, że temp -127C jest błędem A dokładniej < -50C lub > 50C Naukowa metoda :-) Tak naprawdę to nie wiesz co się dzieje ma magistrali! Czy brak odpowiedzi na reset, czy złe CRC jak w ogóle jest czytane a wątpię w to. Sprawdzaj CRC! Wcześniej jednak zrób sobie log co się dzieje na magistrali: - reset - presence - search rom (tu masz crc)...
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
Waitms 750 musisz mieć przed odczytem.
Jakie macie pomysły na zastosowanie Icarus IoT? Odczyt z DS18B20 ?? :-)
Temat zamieszczony w nie tym dziale (lepiej Mikrokontrolery), to co się dziwić ? No i trochę za mało danych, aby zacząc pisać program...
Z mojego doświadczenia z DS18B20 wynika: Procedury 1wire w Bascomie działają bez zarzutu. Oscylator wewnętrzny 8MHz jest jak najbardziej dobry i w niczym nie przeszkadza. Podciąganie 4k7 dla jednego DS na krótkim przewodzie jest zupełnie wystarczający. Dla np. 4 DS na kilkunastometrowych przewodach przydaje się 1k. Po co w instrukcji 1wwrite portc.1...
(at)504651921 Dobrze, że próbujesz. Warto jednak poczytać co to jest to open drain, bo skoro masz MCU, który obsługuje takie bajery... Tu masz mój przykład z 1-wire na USART (znowu, skoro masz w XMEGA kilka USARtów, to grzechem jest to robić na pinie): http://www.elektroda.pl/rtvforum/viewtop...
zdzisiek1979, bardzo prosta - idąc dwoma opisami z tego forum, zrobiłem sobie "aplikację" na androida/iphone wyświetlającą odczyty z DS18B20, śmigającą po wifi. Aplikacja Arduino, biblioteki podane w dwóch postach, kod na zasadzie kopiuj-wklej i działa :)
Przy odczycie DS18B20 jest zalecane wyłączenie wszystkich przerwań.Spełniasz ten warunek i to jest przyczyną "mrugnięcia" (Timer przestaje pracować). Pozdrawiam
Podciągnij linię zewnętrznym opornikiem 4k7 do +5V, Ustaw na tej linii stan niski i steruj kierunkiem. Szybko można przerobić jak poniżej: [syntax=c]#define CLR_DQ sbi(OW_DDR, OW_NUM);cbi(OW_PORT, OW_NUM); //0 na wyjscie #define SET_DQ cbi(OW_DDR, OW_NUM);cbi(OW_PORT, OW_NUM); //1 na wyjscie[/syntax]
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
Częstotliwość sterującego sygnału PWM musi być znacznie niższa od częstotliwości sieci. Z punktu widzenia przejść przez zero częstotliwość sieci jest równa 100 Hz, więc częstotliwość sterującego PWM musi być wyraźnie niższa. Prędkość nie zależy od częstotliwości sterującego PWM, ale od jego współczynnika wypełnienia . Można zacząć od 1 Hz, chociaż przy...
Nie używam Arduino i nie znam processing, ale na logikę rzecz biorąc, należy zmienną inString zadeklarować nie jako zmienną lokalną (wewnątrz funkcji) tylko globalną (na początku programu) - tak jak Serial myPort; Coś takiego: [syntax=objc]import processing.serial.*; Serial myPort; // The serial port: String inString; PFont f; void setup() { size(400,...
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...
Ja puścił program w pętli (samo reset-response) i popatrzył oscyloskopem, w ostateczności zacznij od "spowolnienia" opóźnień do rzędu kilku s i sprawdź woltomierzem czy przebiegi się zgadzają.
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Po wrzuceniu tego na STM32F722RE okazuje się, że nie ma to znaczenia. Przy ustawieniu trybu pinu na wyjście z open drain, odczytanie rejestru IDR daje poprawne działanie, bez zmiany trybu na wejście. Sprawdziłem to na porcie A i pinie PA0. Nie...
czytałeś helpa?? było tam takie coś jak $crystal=??
Jak w teromometrze DS18B20 ( NIE w DS1820) przetworzyc odczytany wynik na stopnie celcjusza? Jak to zrobić w Bascomie?
Spoko, zostaje jeszcze sporo pamięci flash i ram. Używam biblioteki Redlib nohost.
Ale jaki to miałeś termometr? Co to za fabryczny cud? Ja akurat testowałem ds'y w zakresie 0-100 i niestety bliżej 100 już względem laboratoryjnej rtęciówki miał w zależności od egzemplarza nawet 2 stopnie różnicy. Nawet w 20 stopniach ds'y względem siebie mają 0,25-0,5 rozrzutu. Stąd w swojej aplikacji precyzyjnego termometru zastosowałem lm35caz,...
teraz działa mi już publikacja : RSSI, IP, SSID Tylko coś w HA namieszali, że jak mam definicję jednostki unit_of_measurement: " " to pomimo, iż widzę w MQTTExplorer wartości to nie widzę w HA. Ja czekam na sieć alternatywną i wykonywanie kopi ustawień wraz z kalibracją. Potem może być odczyt DS18B20
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
Witam. Skleiłem z przykładowych programów odczyt z 10-ciu czujników DS18B20. [syntax=c] /* Fill in information from Blynk Device Info here */ #define BLYNK_TEMPLATE_ID "TMPxxxxxx" #define BLYNK_TEMPLATE_NAME "Device" #define BLYNK_AUTH_TOKEN "YourAuthToken" // Include the libraries we need #include <ESP8266WiFi.h> #include <OneWire.h> #include...
Wypadałoby wysłać do DS18b20 polecenie pomiaru temperatury:&H44 i zaczekać jakieś 700ms przed odczytem:?:
po pierwsze wez w palce czujnik i sprawdz czy temperatura sie podniesie po drugie wstaw do programu funkcje error bo jezeli wskazuje 15 to znaczy ze odczytales z czujnika temperature 15 stC
u Ciebie glownym problemem jest przymusowe czekanie na konwersje temperatury ktora moze wyniesc nawet kilkaset ms. Mozesz np. wyslac rozkaz do DS-a o rozpoczecie pomiaru a nastepnie po kilkudziesieciu(lub kilkuset-w zaleznosci od czestotliwosci przerwania timera) wyswietlen wyniku - co zajmie ok. kilkaset ms po prostu sprawdzac temperatue na czujniku...
A posiada kolega includowane na początku pliki nagłówkowe? [syntax=cpp]#include "DS18B20.h" #include "DS18B20_ports.h"[/syntax] Czy te 2 pliki znajdują się w katalogu projektu?
Wygląda na błąd w programie, bo z DS18B20 nie może wyjść 6548.
Ta sama reakcja ... odczyt 0x0101 ... Z tego co zauważyłem w tym artykule a Atmel'a, to większość "ramek" ma ~70us ... więc czas raczej dobry ... W trakcie odczytu bitu musisz zmieścić sie przed upływem 15us od chwili zainicjowania odczytu, po 15us dane moga być nieaktualne (Parametr t RDV ), ale to i tak nie zmienia faktu że masz zły odczyt. Dodano...
Oto odpowiedź: http://mikrokontrolery.blogspot.com/2011...
zdebel tak znikł ten warning. piti___ niestety teraz dostaje inne bzdury... 4095,9 stopnia flapo213 po twoim poście postanowiłem dokładnie przeryć datasheeta i napisać od początku po swojemu procedure obsługi ds18b20. oscyloskopu nie mam i nie bede miec z kilku powodow a najpowazniejszy to $$$. oto napisana przezemnie od poczatku procedura obsługi z...
Witajcie! Próbuję zbudować sobie termometr, używam następującego kodu: [syntax=c] #include <avr/io.h> #include<util/delay.h> #include "LCD/lcdhd.h" #include "MACRO_PORT.h" #include "stdlib.h" #define PIN_1WIRE 2 #define PORT_1WIRE PINB #define OUT_1WIRE_LOW PORT_1WIRE &= ~(1<<PIN_1WIRE) #define OUT_1WIRE_HIGH PORT_1WIRE |= (1<<PIN_1WIRE)...
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.
Przez AC, triak. Sterowanie fazowe (co powoduje pewne problemy z odczytem czujników ds18b20 itp. z powodu zakłóceń). Bardziej rozpisałem się tutaj [url=http://www.elektroda.pl/rtvforum/to...
obsługa kilku ds18b20 odczyt ds18b20 ds18b20 odczyt
ricoh drukuje stronę testową blokada skrzynia głowica neptun
Niebieska dioda LED w routerach ASUS, TP-Link, Netgear – co oznacza świecenie i miganie? Pompka wody Ariston, Askoll M231X, BLDC – nie pompuje, diagnostyka, typowe usterki