Dzień dobry Mam mały problem ze zmianą kolejności adresów czujników DS18B20. Mam tablicę uint8_t z adresami czujników. Każdy adres zajmuje 8 pozycji tablicy. Napisałem menu ustawień z możliwością zamieniania kolejności. W menu po wejściu w wybrany czujnik mogę przypisać mu adres ze "świeżo" przeskanowanej magistrali. Problem w tym, że o ile po zapisie...
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ą...
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
Na wyświetlaczu mam górny rząd prostokątów. Co jest nie tak w kodzie? [syntax=arduino]/* * Połączenia: * * 1. Wyświetlacz LCD 2x16 po I2C: * - VCC: 5V (pin Arduino 5V) * - GND: GND (pin Arduino GND) * - SDA: A4 (pin Arduino A4) * - SCL: A5 (pin Arduino A5) * * 2. Czujnik DS18B20: * - VCC: 5V (pin Arduino 5V) * - GND: GND (pin Arduino GND) * - Data:...
http://obrazki.elektroda.pl/2126980700_1... System monitorowania środowiska, oparty o interfejs LoRa IoT składa się z stacji bazowej zbudowanej z wykorzystaniem modułu Arduino Mega z bramką LoRa oraz zdalnych stacji opartych na Arduino Feather, które łączą się z stacją bazową poprzez radiowy interfejs LoRa. System pozwala na monitorowanie...
Mam problem, podłączyłem dwa czujniki i nie mogę odczytać temperatury. Czy schemat odczytu wygląda tak: 1) Reset 2) write H55 - aby powiedzieć kto ma słuchać poleceń 3) Podaje adres czujnika 4) write HBE dla odczytu scratchpad 5) Odczyt scratchpad do zmienych 6) Reset Mam jeszcze pytanie, co tak właściwie robi 1wverify, co on weryfikuje? Czy połączenie...
Jak mam rozwiązać aby omijał adresy czujników które ma i które są już dodane - chciałbym aby adoptował adres którego jeszcze nie zna. Hm... może jakaś lista aktywnych czujników? Może się przyda..., tutaj masz kod z podobnym problemem: https://www.elektroda.pl/rtvforum/topic3... .
https://obrazki.elektroda.pl/6483751800_... Witam, PROJEKT ostatecznie ukończony :D wersja ostateczna programów dla płytek MASTER Arduino Mega2560 i SLAVE ESP8266-12E Testowałem urządzenie przez kilka dni, w międzyczasie dokonałem kilku przeróbek, jak w kodzie tak i w połączeniach PIN itp. Usunięte zostały wykryte błędy, najważniejsze to...
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...
soft wyglada OK, uszkodzenie DSa jest mozliwe, zaobserwowalem ze gdy wywala sie na CRC to odczyt z czujnika jest FF FF FF FF FF FF FF FF bledne odczyty zdarzaja sie z roznych czujnikow, nie z jednego co ktora enumeracja czujnikow pomija tez niektore czujniki - adres nie zgadza sie z zadnym ze zdefiniowanych
Kombinuję z programem obsługującym DWA termometry DS18B20. Używam ATmegi8 i programuję pod C. Chodzi o odczytywanie temperatury na dwóch magistralach onewire - dwóch pinach. Przerobiłem standardową, powszechną bibliotekę do obsługi DS18B20 zmieniając to, że normalnie adres bitu portu magistrali 1W jest definiowany jako makro, a ja zrobiłem z tego parametr,...
Witam, wiem ze to jest trochę utarty temat potrzebuje pomocy w programowaniu czterech termometrów ds18B20 a meczę sie już dłuższy czas. Poniżej mój kod. (narazie jeden termometr. bez sprawdzania błędów i stanu podłączenia) 1. jak odczytać i wyświetlić temperaturę (z mojej konfiguracji) nie musi być dokładna do 0.1 stopnia!(narazie nawet same pełne stopnie)...
Tzn. mam tablicę 24 bajty ( na razie do testów). I teraz podaje adres początkowy z tablicy, od którego zaczyna się ID układu DS18B20. Podprogram ma załadować ID, odczytać, sprawdzić CRC i w odpowiedzi podać mi LSB, MSB, status czujnika, histereze ( poprzednią muszę mu jakoś podać ) i wynik w postaci zmiennej typu string. Wzorowałem się na czymś takim:...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
Wydaje mi się, że pomyliłeś fazy sygnałów wysyłanych do czujników. Najpierw powinno być[syntax=basic4gl] 1wreset 1wwrite &HCC 1wwrite &H44[/syntax] . To oznacza, ze wszystkie czujniki muszą zacząć konwersję. Następnie trzeba w jakiś sposób odczekać około 750 milisekund i dopiero dokonać odczytu z poszczególnych czujników. Odczyt też wypadało by poprawić...
Witam. Kolega Kazjo się chyba pomylił. Punkt 2 wysłanie komendy (55h) Match rom uaktywnia układ którego zawartość ROM jest taka jak sekwencja wysłana przez mikroprocesor. Ale skąd mam wiedzieć jaki jest adres urządzenia i CRC. Przeanalizowałem notę ds18b20 (zaznaczam że z angielskim to nie mam wiele wspólnego, użyteczna okazała się pomoc słownika) i...
(at)R-MIK Czas transmisji po IIC (nawet 400kHz) jest stosunkowo długi. Interesująca teoria. Rozumiem że wysyłka 115k UART jest szybsza niż 400k i2c. Ile bajtów trzeba wysłać i odebrać po IIC do/z DS2482 aby wysłać jeden bajt na 1-W, a ile po USART do DS2480? Używał kolega któregoś w tych układów w praktyce? Ja tak, obu. I widzę, że kolega zapomniał,...
Witam. Nie chciałem zakładać nowego tematu. Jestem początkujący z Arduino i z ESP8266. Na arduino-mega z modułem ETH zbudowałem 6xDS18b20 oraz DHT21 z których odczyty są wysyłane na Thingspeak.com. Na smartphonie mam zainstalowane Virtuino i mogę sobie podglądać 7 czujników temp i 1 wilgotności. Teraz chciałem coś podobnego zrobić na ESP8266 + 2xDS18b20...
Powodem dla którego każdy termometr działa osobno jest fakt, że musiałbym znać adres każdego termometru jaki znajduje się na magistrali abym mógł określić w którym pomieszczeniu znajduje się ten konkretny termometr. Oczywiscie. Chociaz ... Odczyt wszystkich aktywnych ID nie jest jakoś specjalnie trudny. Dallas dal nawet przykładową implementacje algorytmu...
Witam Temat jest taki. Posiadam magistralę 1wire na której są zamontowane termometry DS18B20 oraz przełączniki DS2407. Pracuje na tym sterowanie ogrzewaniem w mieszkaniu. Do tej pory sterowałem nią układem na bazie Atmega168 i działało to prawidłowo. Zbudowałem następny sterownik z Atmega32 na pokładzie i zaczeły się schody. Odczyt adresów układów prawidłowa....
Pisząc o adresowaniu nie masz na myśli ID czujnika, bo każdy DS18B20 ma unikatowy ID. Czujniki są na jednej linii, ale odczyt jest prawidłowy. Jeśli dobrze Cię rozumiem, to chodzi o to, aby mu bardziej "doprecyzować", który czujnik ma reagować na którą temp. Co prawda myślałem, że wykona proste porównanie wartości T1 z T_max i T2 z T2_max. Możesz mi...
Tryb pracy normal. Dodam jeszcze, że na linii danych nie mam żadnych zabezpieczeń przepięciowych. Zastanawiałem się czy przewody nie są za długie. Kod taki zwyczajny: Dodano po 17 ... W trybie pasożytniczym nieprawidłowy pullup na czas konwersji zwróci temp. 85. Rezystor pociągający ma być taki jaki jest wskazany w datasheet (4.7k).. . U mnie pierwszy...
Witam Mam układ, który mierzy dwie temperatury ( DS18B20 ), dwa napięcia ( PCF8591 ( pobiera czas ( PCF8563 ), a z powodu niedużego wyświetlacza ( 12 x 4 ) wskazania są zmieniane do 10 sekund po przepełnieniu Timer1. Układy PCF8563 i PCF8591 są podpięte z "zewnątrz" przewodami około 10 cm. Magistrala I2C ma obniżoną prędkość przez Config I2cdelay =...
No ale pisałem, że chodzi o to, że główny program korzysta z komendy input, która odbiera polecenia via RS232. I w tym czasie nie ma możliwości "równoległego" odczytu z termometrów. A chodzi mi o to, żeby po odebraniu zapytania o temperatury pomiary były już "gotowe", co można zrobić tylko odczytując je w przerwaniu. Jest tylko kwestia prawidłowej obsługi...
Wsadź odczyt pod jakiś label np: odczyt: "wyłącz przerwania" "dokonaj odczytu z ds" "włącz przerwania" return w programie zamiast całej formułki : 1wreset 1wwrite &H55 1wverify Dsid1(1) 'wysyłamy adres pierwszego czujnika If Err <> 1 Then 1wwrite &HBE Tp = 1wread(2) Wywołuj tylko label...
Jeżeli chodzi o konwersie bin na dec i wysłanie tego przez rs232 to chyba nie powinienem mieć problemów. Nie wiem jak ugryźć adres MAC. Jak go wysyłam przez rs232 to w oknie terminala wyświetlają mi się litery z tego kodu a ja nie chcę liter tylko chcę wyświetlić ich wartość szesnastkową z kodu ASCII. Czyli jak w tablicy mam zapis 4A,61,72,65,6B,53...
Witam Mam mały problem z tym dość prostym programem. Generalnie działa tak jak powinien, tylko przy włączeniu układu następuje krótkie załączenie przekaźnika. Jest to spowodowane tym, że początkowy odczyt z DS18B20 jest 85 stopni ( integer 850 ) co przekracza ustaloną przeze mnie początkową wartość 45 stopni ( integer 450 ). Próbowałem dać badanie warunku...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
Przy takim kodzie: Attiny2313 - temu raczej nic nie dolega - odbiera i wysyła: $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 9600 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5 '********************* Config Serialin = Buffered , Size = 10 Enable Interrupts '********************* Konfiguracja wejść i wyjść...
Mialem taki gotowiec wraz z fachowa literatura ale nie dzilalo Do 1wreset 'standardowe polecenie resetu 1wwrite &H33 'rozkaz READ ROM Adr(1) = 1wread(8) 'odczytaj adres 'zamiast powyższych 3 linii zamiennie można użyć jednego polecenia: ' Adresik(1) = 1wsearchfirst() 'odczytaj numer-adres kostki 1wreset 'standardowe polecenie resetu 1wwrite &H55 'polecenie...
Fajny projekt, bo powstał na konkretną potrzebę i spełnia swoje zadanie. Do seryjnej produkcji znajdź fajną obudowę i rozmieść odpowiednio wyświetlacz i diody ;) Chciałem podrzucić Ci pomysł na mruganie wyświetlaczy, który jak piszesz miałes. Komunikacja 1wire posiada wysokie restrykcje czasowe. Też kiedyś robiłem urzadzenie, które czytało 2 x DS18B20...
U mnie dziala tak: 1wire_1 Alias P3.0 Dim T As Word Sub 1wire1 1wreset 1wire_1 ' reset magistrali 1wire 1wwrite &HCC 1wire_1 ' zaadresowanie DS'a - skip rom 1wwrite &H44 1wire_1 ' polecenie dokonania konwersji Wait 1 ' dajemy czas na konwersję (wystarczy 750ms) 1wreset 1wire_1 ' reset 1wwrite &HCC 1wire_1 ' adres 1wwrite &HBE 1wire_1...
Witam Mam taki kod nie jest to całość tylko to z czym mam problem: [syntax=basic4gl] '********************* Deklaracje zmiennych DS18B20 Dim Dsid1(8) As Byte Dim Ds_i1 As Integer Dim Stopnie_d As Byte Dim Stopnie_j As Byte Dim Stopnie_p As Byte Dim Stopnie As Byte '********************* Adres ID DS18B20 Dsid1(1) = &H28 '40 Dsid1(2) = &H78 '120 Dsid1(3)...
Witam To moze zaczne od kodu: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 Cls Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portc.5 = Output Config Portd.0 = Input Set Portd.0 Cursor Off Dim Serworuch...
chyba, że zmienna i jest zadeklarowana wcześniej jako globalna. tak, jest globalna, w zasadzie większość zmiennych mam globalne i właśnie mi o to chodziło, że nie które mógłbym zmienić na lokalne. Powinieneś użyć getFreeMemory() dobrze, wstawiłęm rozmiar "int size = 8192" dla Mega, wtedy wynik to 6694, gdybym zostawił 2048, wtedy wynik to 2047. No...
Do czego to doszło ;p Może od nowa, wersja z i2c chce dopiero teraz wprowadzić jak na razie jest po Bożemu znaczy sie wyswietlacz ze sterownikiem znajduje się na 2pietru kamienicy układ wykonawczy i wyłącznik (countera) znajduje się w piwnicy. Z i2c to dopiero mam zamiar zrobić bo zależy mi na dwóch wyswietlaczach jednym w piwnicy drugim na 2pietrze....
Witam forumowiczów, zacząłem realizować projekt zegarka, kalendarza i termometrów z owego linku: http://obrazki.elektroda.pl/6128170300_1... Proszę o porady i sugestie jak można rozwiązać ten problem :P
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
witam mój problem jest tego typu, że ma termometr, który wykorzystuje właśnie18d20 i wyświetla temperaturę na lcd tylko że nie liniowo;/ co jest nie tak podłączony jest przez rezystor podciągający a o to jak wygląda kod programu $regfile = "m8def.dat" ' zdeklarowane dla Atmegi8 $crystal = 8000000 ' Taktowanie wewnetrzne 1mHz Config 1wire =...
odczytałem numer id i teraz po nich chce się odwoływać do poszczególnych czujników jak zaranie do jednego oto mój kod coś to nie chce działać czy ktoś wie w czym problem ? ow_reset(); ow_write_byte(0x55); //match rom ow_write_byte(0x13); //odczytany wcześniej adres ow_write_byte(0x00); ow_write_byte(0x00); ow_write_byte(0x01);...
Witam Konstruuje projekt który ma być docelowo systemem monitorowania i bezpieczeństwa układu laboratoryjnego. Mój problem polega na tym że: Chciałbym aby po wciśnięciu określonego przycisku na klawiaturze numerycznej program na chwile zatrzymał się pozwolił na wpisanie hasła a później wrócił do normalnej pracy(zbierania danych z czujników) oczywiście...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Arduino Leonardo które zamierzam wykorzystać będzie korzystało z yun shieldu, 6 czujników temperatury ds18B20 jednego DHT22, dwóch modułów 4 przekaźników podłączonych do wyjść PCF8574 oraz z modułu PCA9685 do sterowania 12 driverami power led DW8501 i 4 modułami mosfet do obsługi 3 kanałów wentylatorów i pompy wody, oraz moduł zegara RTC3231, całość...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam:) Złożyłem układ z linku: http://www.elektroda.pl/rtvforum/topic81... Moje dzieło pracuje jednak z dwoma czujnikami a nie czterema, oto kod kolegi Duch__ : Można... Po wgraniu HEX-a do procka wyświetlacz pięknie pokazuje odczyt dwóch temperatur, jednak poniżej 10st. na plusie, program się resetuje i zaczyna od nowa procedurę. Nie wiem jak...
No hej! Więc miło że ktoś poruszył temat tego „badziewia” od Dallasa… Wszystko robię mniej więcej tak jak napisałeś… tzn. póki co nie bawię się numerami seryjnymi. Co do różnych przykładów dostępnych na stronach Dallasa, to też z nimi walczyłem… ale do sedna. Udało mi się odczytać pierwszy bajt numeru seryjnego mojego czujnika,...
Tutaj masz działający kod do termometru. Na 2 DSy ale sobie przerobisz :) Wytnij tylko deklaracje zmiennych od napięcia i ADC bo oryginalnie mierzył jeszcze napięcie. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 8000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja...
Jest taki sobie termometr - moduł ma BT222 podłączany przez złącze http://obrazki.elektroda.pl/1320347600_1... Wgrywam do niego kod Bascom: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000 '$baud = 9600 ' predkość transmisji $hwstack = 64 ' rozmiar stosu sprzętowego $swstack = 24 ' rozmiar stosu programowego $framesize = 48...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam. Napisałem program do obsługi woltomierza i pomiaru napięcia na atmega8. Cały układ będzie zamontowany w samochodzie. Po zaprogramowaniu wszystko prawie działa tylko przy samym włączaniu na wyświetlaczu pojawia się że temperatura wynosi 85 stopni a dopiero po ok 4s (drugim odczycie temperatury) podaje właściwą temperaturę. Później wszystko działa...
If I3 > 0 Then .Nie wiem właśnie, w którym miejscu robię błąd, bo w sumie przepisuje wynik pomiaru do I3 i procedure If, then, else, end if.
Panowie, Panie potrzebuję pomocy bo siedzę i siedzę i nie mogę sobie dać rady z kodem BASCOM. Jestem początkujący, a raczej raczkujący w AVR, programowaniu itd. :( Próbuję zbudować sterownik do pokoju który ma wykonywać: -sterowanie światłem (8x) -sterowanie piecem/kotłem gazowym (temperatura noc i dzień-dwie różne temperatury) -każdy przycisk ma dwie...
Witam kolegów. Potrzebuję sterownika pompki do C.O. Znalazłem program napisany w BASCOM i przerobiłem go nieco do swoich potrzeb. Działa wszystko prócz HISTEREZY. Przy powolnym narastaniu temperatury, która skacze +/- pompka włącza się i wyłącza, czyli histereza nie działa. Histerezę zrobiłem wg. porad z forum. Czy może ktoś pomóc? Oto kod: [syntax=vbnet]$regfile...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Witam Po raz pierwszy ( lepiej późno niż wcale ) wykorzystałem wyjście CLKOUT układu PCF8563. Oczywiście podciągnąłem przez 10K do VCC. Dzisiaj po pierwszym kilkugodzinnym braku prądu, rano zegar był wyzerowany. Podejrzewam, że to przez podciągnięcie CLKOUT do Vcc. Jeśli to jest to, to może wystarczy włożyć diodę np. Schottky pomiędzy wyjście CLKOUT,...
W planie termostat sterowany poprzez okna dialogowe,przyciski na webserwerze według takiego schematu działania: -Zegar pokazujacy Aktualna Temperature z czujnika -Zegar do Zadawania temperatury -Zintegrowany Timer z biblioteka PID,gdy ustalam temp zadana timer się włącza -Zintegrowany przekaźnik z czujnikiem temperatury i biblitoteką PID i timerem -Jeden...
Witam Z wycinków kilku programów chciałem zrobić jeden duży barkuje kilku rzeczy i zwiazku z tez pytania W jaki sposób mogę zwiększyć ilość wejść i wyjść żeby zmieścić wszystko ? ( patrz 1 PINY ) brakuje ustawiania podlewania względem kalendarza zielonego pojęcia nie mam jak z pcf mogłbym ustawić godzinę i czas podlewania np 18:00]przez 1 min ? brakuje...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Odczyt z jednego czujnika (12bit) Co za różnica czy 9 czy 12? trwa około 20ms, Dlaczego tak długo? Bit w 1-Wire trwa ok 64us więc bajt ok 0,512ms. Dziewięć bajtów (wszystkie rejestry razem z CRC) + adres 8 bajt + cmd ok 9,5ms do tego reset (460us) i presence (240us) i pauza pomiędzy reset a presence (nie pamiętam 30 czy 50us), w każdym razie poniżej...
Z tego swojego kodu usuwasz "Odczyt numerów ID czujników temperatury" A w to miejsce wpisujesz odczytane adresy do tablicy z adresem danego czujnika. np. tak będzie to wyglądało dla pierwszego czujnika: Dsid1(1)=&H28 Dsid1(2)=&H65 Dsid1(3)=&HC3 Dsid1(4)=&H89 Dsid1(5)=&H05 Dsid1(6)=&H00 Dsid1(7)=&H00 Dsid1(8)=&H25
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......
Ręce to opadają i masz rację ;) Masz błąd w definicji zmiennej do której wpisujesz ID czujników to nie jest jeden bajt tylko tablica 8x8bitów czyli 8 bajtów. Adresujesz nie istniejące czujniki bo ich adresy sa niepoprawne, wysyła procek ciagle ten sam bajt. Dim Adres1 As Byte 'adres pierwszego Dim Adres2 As Byte 'adres drugiego Dim Adres3 As Byte 'adres...
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...
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...
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...
Rozpoznawanie za każdym razem ID ROM może i jest uniwersalne ale ja tez wybrałem prostszy sposób oznaczyłem sobie każdy czujnik i odczytałem jego ID. Aby odcztać ID ROM na magistrali musi być tylko jedno urządzenie na którym wykonujesz np taka operacje: [syntax=c] void IdRead(u08 *tab)//Odczyt adresu przetwornika { u08 n; wire_reset(); wire_write_byte(0x33);...
Czy tak może być? Nie. Po komendzie: "1wwrite &H55" Spodziewana jest komenda wpisu adresu adresu device do której odnoszą się dalsze komendy, ponadto: Błędem jest stosowanie tejsamej flagi (niby stopniowej) do wielu operacji bez jej kasowania. Zauważ że flaga=1, lub flaga =2 utrzymuje sie przez dłuższy czas, o wiele dłuzszy niż 'przewinięcie 'pętli...
Ale zle ci hulało, albo jeden tylko sie meldował !!! W przypadku gdy stosujemy tryb pracy DS z pasywnym zasilaniem to nie działa logika DS odpowiedzialna za pracę układu w trybie adresowym ! Normalnie gdy kazdy DS pracuje z zasilaniem 5V to można podłaczyć wiele DSów do magistrali 1-wire i kazdy jest rozrózniany po swoim unikatowym numerze (adres) i...
Piszesz o testowaniu po kolei każdego bitu. O jakie bity chodzi? Bo tego nie załapałem. Jeśli piszesz o możliwych czterech stanach to co masz na myśli dokładnie? Idea jest taka, po instrukcji Search ROM dokonujesz dwa odczyty (w sensie magistrali 1wire, czyli odpowiednie impulsy odczytujące), najpierw urządzenia które mają pierwszy bit zero zwierają...
I właśnie o tą tablicę mi chodzi, czy dany czujnik temperatury zawsze przyjmie to samo miejsce(pozycje) w tej tablicy???, czy np po restarcie zasilania, czy po ponownym wyszukaniu jego pozycja w tablicy się zamieni??? Jak one się sortują na tej tablicy??? Kol. BlueDraco już odpowiedział. Ja tylko dodam, że ta tablica jest sortowana po adresach i warto...
Witam poszukuje adresowalnych układów z odczytem wejść 0-1 - adresowalne czujniki stanu ( cos podobnego do DS 18B20 z tym że zamiast informacji o temeperaturze podawana jest info o stanie wejścia ) pz waldek :D
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
Masz w dokumentacji napisane, innym rozkazem zwróci Ci wartość rejestrów wewnętrznych (jest wśród nich wartość temperatury) innym jeszcze rozkazuje się wykonać pomiar. Komunikacja jest identyczna jak przy odczycie adresu ROM.
Witam, jak dokładnie ma wyglądać procedura wyszukiwania podpiętych do magistrali układów 1wire? Komenda to niby "F0h" ale jak to dokładniej ma wyglądać? Nie ma problemu z obsługą 1 układu na lini, czy też wielu układów jak znam już ich adresy. Jednak nie wiem jak poprawnie wykonać procedure odczytu adresów w przypadku gdy do lini podpiętych jest kilka...
Drogi kolego dondu, Kiedy ściągałem oprogramowanie ze strony Atmel nie znalazłem informacji że to BETA Bardzo proszę o rozwinięcie tematu delay Podaje jeszcze raz adres źródła www.jaglarz.com/ja/elektronika/ds18b20.p...
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...
Szybkie pytanie od laika, na odmóżdżenie ;) z akademii nettigo skopiowałem sobie kod odczytujący dane z kilku czujników DS18B20 - działa on prawidłowo. Jednak arduino z tym kodem zasypuje mnie co 0,5s odczytami z czujników. A nie wiem jak przerobić kod tak, by arduino wysyłało mi odczyty na wyraźne żądanie, czyli np na komendę "odczyt" Mój obecny kod(a...
Witam. Widze ze brak jakichkolwiek odpowiedzi. Może ktoś z was napisałby mi taki program pod ten procesor. Oczywiście za opłatą. czekam na info na powyższy adres
Najlepiej będzie jednak jak pokażesz kod. Algorytm odczytu ROM-adresu rzeczywiście powinien wyglądać tak jak opisujesz. Być może uda się dostrzec jakieś błędy w samej funkcji.
Witam, mam dziwny problem, pomoże mi ktoś go rozwiązać? Chodzi o to, że buduję urządzenie, które na żądanie będzie mierzyło temperaturę układem DS18B20. Żądanie odbywa się poprzez naciśnięcie odpowiedniego przycisku na pilocie RC5. Całe moje urządzenie to dwa AVR: Atmega8 (jako dekoder RC5, który wysyła odebrany adres i komendę poprzez USART do drugiego...
Witam, potrzebuję pomocy z kodem na Arduino. Chodzi o adres czujnika DS18B20. Korzystam z poniższego kodu aby zeskanować adres: '..................' Korzystam również z biblioteki DallasTemperature.h do obsługi DS18B20 i tu moje pytanie jak z tego kodu skanera wyciągnąć ten adres do jakiejś zmiennej aby później zapisać go nie tak: To po co w takim...
Witam! 1. czas na konwersję 750 ms, jest to maksymalny czas potrzebny tylko wtedy, gdy mamy czujnik podłączony tylko dwoma przewodami, a wiec przy zasilaniu "parazytowym" i przy maksymalnej rozdzielczości pomiaru. 2. w przypadku kiedy czujnik jest podłączony trzema przewodami, ten czas może być skrócony do około 20 ms. 3. ten czas nie oznacza, że trzeba...
Witam! - Między wysłaniem polecenia pomiaru, a odczytem temperatury musisz odczekać 850ms. - Żeby odczytać temperaturę z konkretnego czujnika musisz w poleceniu odczytu podać adres czujnika. - Błędna ilość czujników często wynika z zakłuceń i "luzów" na magistrali 1-wire. Pozdrawiam
Ważny też jest rezystor podciągający DS-y. Przy 4 szt. stosuj ok. 1,5 kOm , przy większej ilości czujników trzeba jeszcze mniej, nie mniej jednak niż ok. 700 Om. Przy źle dobranym pull-up rezystorze miałem problemy z odczytem temperatur mimo poprawnego programu i właściwycch adresach DS-ów.
Jest to DS18B20. Ale pomiar temp. działa OK tu mogę odczytać wszystkie 9 bajtów. Problem leży tylko w odczycie adresu układu. Może coś mi brakuje ? //Procedura odczytu adresu wire_reset(); wire_send(0x33); //odczyt adresu z ROM //wire_byte_read() odczytuje 1 bajt z 1-wire a=utoa( wire_byte_read() , buffer,16); LcdSetCursor_4(0x00,4); LcdPrint_4a,4);...
Wszystko masz w dokumentacji układu http://www.iele.polsl.pl/elenota/Maxim/2... Wystarczy przeczytać dokładnie. ... 1wreset 'reset magistrali 1wwrite &HCC 'komenda opuszczenia adresu (bo jest jeden DS18B20) 1wwrite &H44 'komenda rozpoczęcia konwersji Waitms 750 *czeka aż ds18b20 przetwozy temp -tu dobrze 1wreset 'reset magistrali 1wwrite...
Tak samo jak masz 10 zmiennych na adresy, możesz zrobić 10 zmiennych na temperatury, zadeklarowane w tym samym bloku programu będą globalne i dostęp będzie do nich z każdego miejsca w programie. Jeszcze lepiej zrobić tablicę o 10 elementach. Potem tam gdzie masz funkcję, w której odczytujesz temperaturę i ją drukujesz możesz też przypisać do zmiennych...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
Wrzucam tu procedurki którymi ja odzczytuję DS18B20 w asemblerze '51 może się przydadzą :) ; /-----\ ; |-------| ; | | ; |DS12B20| ; |_______| ; | | | ; GND Vdd ; DQ ; PIN1WEQU P1.0 ;=======================================... ; procedura odczytu temperatury z DS18B20 ;---------------------------------------...
Chcę pominąć odczytywanie adresów na każdym z czujników. Wydaje mi się że tak będzie prościej obsługiwać ten termometr.
Jak potrafisz odczytać adres czujnika to dokumentacja ds18b20 do ręki i strona 17 tabelka pierwsza. Cała sekwencja do odczytu przy adresowaniu poszczególnych czujników. Prościej już się nie da wytłumaczyć.
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++)...
Prosze bardzo, zmenne oraz main. Zakomentowane linie sluza do odczytu temperatury z ds1820, wyswietlania jej na LCD czy tez zapiswanie do eepromu. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include <util/twi.h> #include "hd44780.h" #include "ds18b20.h" #include "i2cds1307.h"...
Witam Skompilowałem wsad na którym można uruchomić to urządzenie napisany na kodzie z int DS_TEMP = 5; // DS18B20 Temperature pin int AC_LOAD = 3; // PD3 Output to Triac pin code from https://alfadex.com/2014/02/dimming-... int PC817_DET = 2; // PD2 INT0 interrupt pin connected to cross zero detect circuit volatile byte state...
(...) y jeżeli elektronicznie podłączenie jest sprawne, zaproponujesz listing (AVR GCC) testujący taka "obciążoną" magistralę wyświetlający adresy odczytanych termometrów, ich parametry i temperatury oraz szacunek, który z nich to fake. Program ma możliwie najwięcej nieprawidłowości wychwycić (obsługa błędów). Rozpoznanie podróbek DS18B20 wymaga zaimplementowania...
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...
Ten opis nie jest raczej numerem ROM w przypadku DS18B20. Niestety nie mam pod ręką odpowiedniego asortymentu, aby to sprawdzić, ale znalazłem gdzieś w internecie zdjęcie, na którym jest kilka czujników z takim samym napisem (o ile to nie fotomontaż). Liczba cyfr też by na to wskazywała. Najlepiej skontroluj CRC dla odczytywanych adresów, o ile masz...
Witam Mam problem ze zmianą rozdzielczości ds18b20 na 9bit Sub Odczyt_temp 1wreset 'początek 1 sesji łączności 1wwrite &H55 'rozkaz match rom - adresowanie indywidualne 1wverify Dsid1(1) 'wysyłamy adres pierwszego czujnika 1wwrite &HBE 'rozkaz odczytania z kostki danych T1 = 1wread(2) '--------------------------------- 1wreset 'początek...
Wydaje mi się, że wystaczy na port COM podać jakieś dane (na linię TXD), a układ sam powinien nam odpowiedzieć wysyłając na linę RxD np. temperature? No to źle Ci sie wydaje :D To raczej oczywiste że należy czujnikowi wysłać rozkaz konwersji, a po (co najmniej) 750ms rozkaz odesłania wyniku. O adresowaniu (bo masz więcej jak 1 czujnik) nie wspomnę....
Witam. Mam procedurę odczytu trzech czujników temperatury: [syntax=vbnet] Sub Odczyt_ds18b20 Reset Watchdog Disable Interrupts 1wreset Select Case Ktory_ds Case 0: 1wwrite &HCC 1wwrite &H44 Case 1: 1wwrite &H55 1wwrite Ds1(1) , 8 'adres pierwszego czujnika 1wwrite &HBE Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty T = Odczyt(2) : Shift T , Left...
ds18b20 adres odczyt ds18b20 adres odczyt ds18b20
wkładka menuet niskie sprężanie kondensator mniejszy zasilacz
sterowanie sygnalizacją sucha beskidzka
Czy świeca płomieniowa wymaga paliwa? Lokalizacja włącznika w telewizorze Panasonic 2014