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
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()
Witam, Czasówki 1wire do zmiany. Sprawdzaj CRC numerów seryjnych.
...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.
Czas odczytu 7 sztuk DS18B20 z pobraniem numeru czujnika z tablicy ze sprawdzeniem CRC wyniku ATmega kwarc 18,432 MHz 12,5 milisekundy. Dodano po 16 Koryguję czas podany poprzednio. Nie zauważyłem przeniesienia. Ten czas wynosi 26,8 milisekundy.
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);...
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ą...
To czego szukasz jest rozwiązane w Arduino i można łatwo skorzystać z tego. Instalujesz bibliotekę OneWire i DallasTemperature, otwierasz przykład Multibus, w tablicy podajesz numery pinów, klikasz wgraj i na UART lecą temperatury z wybranych pinów. Koszt to 6k flash i 516B RAM dla UNO (Atmega328P). Problemem jest to, że nie ma w typowych płytkach ATMEGA128...
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...
To nie jest poprawny zapis http://obrazki.elektroda.pl/3954802400_1... Życzę miłego dnia
Ale to właśnie jest komplikowanie sobie życia! Nie wykorzystujesz podstawowej cechy 1-wire, mianowicie możliwości swobodnej komunikacji przy wykorzystaniu tylko jednej linii portu uC. Gratis masz kontrolę numerów układów, ich ilości, stanu itp. Programując "po okrężnej" wolniej rozwijasz swoje umiejętności! DS18B20 mają unikalny, 64 bitowy numer ID...
Dziekuje za kolejna podpowiedz i mam pytanie może dziecinne ale dla mnie to moze byc spory problem jak zrealizować procedure odczytu numeru seryjnego danego czujnika z pamieci eprom?
Pt100 i DS18B20 to całkiem różne czujniki temperatur i o ile sam wskaźnik/regulator nie jest przystosowany do obsługi obydwu rodzajów czujników to nie da się ich zamieniać. Czujnik Pt100 jest czujnikiem rezystancyjnym. Zbudowany jest z cienkiego drutu platynowego, którego opór elektryczny się zmienia pod wpływem temperatury. Im większa temperatura tym...
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...
Najbardziej trafnym sposobem odczytu ROM poszczegolnych czujników jest przypinanie je pojedynczo do układu i zapisywanie ich numerów w pamięci EEPROM. Następnie odczyt EEPROMU przy pomocy programatora. Sposób sprawdzony, wszystko działa.
Też tak kombinuję. Tablice do których zapisuje 9 bitów to Dsid1 i Dsid2 Czyli tak: dim crc1 as byte dim crc2 as byte dim crc11 as byte dim crc22 as byte Dsid1(1) = 1wsearchfirst() Dsid2(1) = 1wsearchnext() crc1 = Crc8(Dsid1(1), 7) 'obliczenie crc dla pierwszego czujnika crc2 = Crc8(Dsid2(1),...
Witam. Chciałbym odczytać temperaturę z czujnika DS18B20 przez długie i krótkie migania diodą. Np gdy mamy temperaturę 25 stopni to dioda sygnalizowała by dziesiątki za pomocą dwóch długich piknięć a jedności poprzez 5 krótkich. Dopiero zaczynam zabawę z Bascomem i kompletnie nie wiem jak się za to zabrać. Poniżej wklejam fragment kodu z odczytem temperatury....
oto kod mojego programu, właśnie niewiem czy napewno 176 to numer stopnia, skąd jeszcze mogę się tego dowiedzieć? niewiem o co ci chodzi z tym put_s chyba powinno być lcd_puts(zmienna); #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h" char stopien=176; char...
Mam prośbę o pomoc.W jaki sposób wykorzystać odczytany numer ID ROM CODE z mojego czujnika ds18b20. Odczytałem go pewnym programem z sieci i mam coś takiego na LCD: 28776CBB02000079 jest to 16- bitowy kod ale nie wiem jak go dalej wykorzystać w w programie termometru na magistrali 1-wire tym razem wykorzystując jeden tylko pin procesora.Ogólnie chodzi...
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...
A więc kolego odczytałem numer seryjny i wyświetla mi, po konwersji wyniku na system dziesiętnym, 16. Czy to jest poprawnie czy znowu jakaś bzdura?
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",...
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...
Wszystko byłoby fajnie jak bym wiedział jak sie za to zabrać. Czytałem troche na ten temat w archiwalnych numerach Elektroniki ale tam jest opisany sposób odczytu na podstawie 1820 a na tym forum przeczytałem , że ds18b20 obsługuje sie troszke inaczej....
Witam wszystkich forumowiczów. Z góry przepraszam jeśli umieściłem temat w złym miejscu. Posiadam arduino uno r3 , 5 sztuk termometrów ds18b20 i do tego wyświetlacz LCD 4x20. Miałem podłączone 4 termometry w trybie pasożytnicym z odczytem numerów seryjnych termometrów z rezystorem 2.2k i wszystko pięknie działało. Mój problem pojawił się gdy podłączył...
Teraz mam problem jak z wyniku pomiaru wyrzucić wartości po przecinku. trunc(), round() - Dodano po 2 Możesz również użyć: [syntax=c] // returns temperature in 1/128 degrees C or DEVICE_DISCONNECTED_RAW if the // device's scratch pad cannot be read successfully. // the numeric value of DEVICE_DISCONNECTED_RAW is defined in // DallasTemperature.h. It...
A to niby dlaczego nie wolno stosować waitms ??? U mnie jakoś działa przy wielu czujnikach na jednej linii i co to ma wspólnego z wysyłaniem przez uarta ? W tym przypadku waitms nie zakłóca obsługi przerwań, wiec nie widzę problemu. Kolega namieszał trochę w procedurze "odczyt". Na początku wyszukujesz czujniki na linii 1wire, a później, w procedurze...
Witam, próbuję podłączyć czujniki DS18B20 do atmegi328p. Atmegę kupiłem na allegro, posiada ona wbudowany Kwarc oraz załadowany Bootloader. DS18B20 działa na raspberry pi b+. LCD działa poprawnie, potrafię na nim wyświetlać dane. Termometr do atmegi podłączyłem w następujący sposób korzystając z opornika 4.7k Ohm: https://obrazki.elektroda.pl/8029225900_...
Trudno tak wróżyć a błąd pewnie jest błahy. Dlatego warto zawsze wykonać kilka testów. Znajdź to miejsce w kodzie i dopisz to co tam dodałem. To przy starcie pokaże numery seryjne zapisane w pamięci czyli sprawdzi czy zapis przebiegł pomyślnie. Numery pokazuję w postaci Hex bo się akurat zmieszczą na 16-nasto znakowym LCD. Jak w pamięci będa same FF...
...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...
Witam, Czy istnieje możliwość przerwania wykonywania przerwania ale nie innym przerwaniem tylko zupełnie, tak jak działa break w pętlach? Chodzi o to, że chciałem sobie zrobić takie prowizoryczne menu i jednym przyciskiem wybierałbym pozycje. W tej chwili robię to tak, że wywołuję przerwanie przyciskiem i w ciągu sekundy jeśli nacisnę jeszcze raz ten...
Mniej wiecej tak to mozna zrobic ;) Listing do AVR-a pozmieniaj nazwy portów '################# wyswietlanie temperatury ######################### Multiplex: Dim Mux As Byte Dim 100stopni As Integer Dim 10stopni As Integer Dim 1stopni As Integer Dim Dstopni As Integer Config Porta = &B11111111 Config Portc = &B11111111 T2 = Abs(t1) Porta = &B11111111...
Witam, Jak w temacie. Mam układ w którym (niestety) pracuje wykręcona do 25MHz Atmega 32. Wszystko działa bardzo dobrze i nie przeszkadza jej taki ovrclock ale mam problem z odczytem danych z czujnika DS18B20. Komunikacja typu RS232, ISP, i2C działa idealnie. Nie mogę zejść z taktowaniem niżej. [syntax=vbnet] If DSwait < 5 then 1wreset 'reset magistrali...
Witam. Szukałam już tutaj na forum i na google, ale nie znalazłam odpowiedzi na moje pytanie. Otóż mam zrobić na zaliczenie projekt termometru 20xDS18b20 z zapisem numerów ID czujników do EEPROM-u. Następnie chciałabym przy pomocy tych numerów ID zapisanych w EEPROM komunikować się z wybranym przeze mnie czujnikiem w celu odczytu temperatury. Na razie...
Witam, napisałem program do odczytu temperatury z jednego DS18B20. Działa wszystko pieknie. Oto kod: [syntax=c]void zmierz_temp(void) { unsigned char devices,temp_L,temp_H; send_byte(0xCC); send_byte(0x44); delay_ms(750); devices=one_wire_reset(); send_byte(0xCC); send_byte(0xBE); temp_L=read_byte(); temp_H=read_byte(); devices=one_wire_reset(); delay_ms(200);...
(at)tmf dzięki za poradę, ale w tą stronę nie mogę iść. 1 - czujki pracują jednak w dynamicznym środowisku i "stabilizacje temperaturowe" nie mogą być dłuższe niż max 30 sekund, idealnie by było gdyby był to czas możliwie jak najkrótszy. 2 - budujemy za dużo urządzeń aby bawić się w programową kalibrację, dodatkowo wymiana czujnika, każdorazowo wbijanie...
Ja jeszcze jak się bawię kilkoma czujnikami porównawczo, to owijam je razem do kupy folią aluminiową. Zadziwiające jakie potrafią być ruchy powietrza na niewielkich odległościach. A jakiej biblioteki używałeś? Ja przeglądałem gotowe projekty i były programy gdzie trzeba użyć numeru seryjnego. Ja używam <DallasTemperature.h> Tu nie muszę wpisywać...
Hey czyli problem jest w instrukcji Ss = Format(ss , " 0.0") wrzuć ten program i powiedz czy wszystko gra jeżeli tak będę pisał co zrobiłem. [syntax=basic4gl]$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza...
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);...
informującego o zmianie temperatury co 1 stopień w górę lub dół To są założenia więc co każdy stopień ma być krótki sygnał. Warunek If T >= 200 then spowoduje że przekroczenie 20 stopni spowoduje sygnał. Muszę chwilę pomyśleć. Trzeba badać także różnicę pomiędzy odczytem poprzednim a następnym. Sprawdź to: (zmień procesor, konfigurację LCD, portów,...
[syntax=c] #include <Wire.h> #include <OneWire.h> #include <DS18B20.h> #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // Numer pinu do którego podłaczasz czujnik #define ONEWIRE_PIN 9 // Ilość czujników #define SENSORS_NUM 2 // Adresy czujników const byte address[SENSORS_NUM][8] PROGMEM = { 0x28, 0x6A, 0xE6,...
czytasz woogole moje posty :> DS'y rozpoznajesz po unikatowych numerach ID czujnika ,niewiem w czym widzisz problem z przypoządkowaniem ich , - robisz odczyt ID na szynie - zapisujesz do eprom - z eprom pobierasz ID DS'a - sprawdzasz czy odpowiada na żądanie ,jesli nie error=1 (brak czujnika) podstawy wire1 :!:
Podłączyłem układ DS1820 (dokładnie ten numerek) do pinu PB0 układu ATTiny2313. Linia danych jest podciągnięta do Vcc rezystorem 1kΩ. Taktowanie wewnętrzne 8MHz. Fragment kodu odpowiedzialny za odczyt czujnika: Numer seryjny16 163 113 94 2 8 0 170 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt: 255 255 Odczyt:...
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...
Niestety jakoś mi ten sposób odczytu nie chce działać. Obecnie używam takiego sposobu odczytu: Config 1wire = Portc.6 1wreset 'reset magistrali 1-Wire 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite &H44 'start pomiaru temperatury Waitms 750 'opóźnienie na czas pomiaru 1wreset 'reset magistrali 1-Wire 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite...
Tutaj masz wszystko... 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Pinb.1 = Input 'linia PB1 jako wejściowa Config...
Czy program uwzględnia odczyt numerów ID i przypisanie ich do konkretnego miejsca (tzew, twew)? Niech ci się zepsuje jeden czujnik, to jeśli masz szczęście, podczas wstawiania nowego nie zamienią ci się one miejscami tak że Tzew i Twew będą na właściwych wyświetlaczach, a nie na odwrót.
możesz stosować 2x config 1wire ale musisz wtedy tą linijkę umieścić przed odczytem danych z danego ukłądu, żeby obsłużyć 2 scalaki na 1 pinie trzeba odczytać z każdego serial number poleceniem 1wiresearch, 1wirecount 1wirenext i wywoływać je tymi numerami
Witam Dzięki pomocy elektrody i 2 mądrych książek udało mi się coś takiego naskrobać. Przez moment używałem 2 timerów ale po jakimś czasie wyszło coś takiego: $regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = 255 'wszystkie końcówki jako wyjścia Portb = &B11111111 'na początek wygaś Config Portd = &B1111111 'dwie najmłodsze jako...
Witam miłośników CA80, w ostatnim czasie zainstalowałem sobie dwa gadżety na CA80 – RTC DS3231 /do aktualizacji czasu i daty, z możliwością ustawiania czasu i daty na RTC/ oraz termometr DS18B20. O ile z tym pierwszym nie ma problemów ze sterowaniem /wg I2C/, to z termometrem mam mały problem. Mam program na odczyt temperatury i działa prawidłowo...
Kiedyś zrobiłem prymitywne porównanie dwóch DHT11. Umieściłem oba czujniki obok siebie, podłączyłem do dwóch Arduino z programem DHTtester. W pobliżu dla porównania znajdował się też DHT22 (jako część całkiem innego układu w trakcie rozwoju, na stykówce). Odczyty wszytkich trzech czujników się różniły, ale niejakim zaskoczeniem była skala różnic. Między...
No dobra, teraz działa. W związku z tym, że mam odczyt z jednego czujnika, chciałbym tak zmodyfikować kod aby odpytywać np. dwa. Teoretycznie wiem, że można sobie pobrać numery identyfikacyjne czujników, na sztywno przypisać je do jakiś zmiennych a następnie po kolei zczytywać temp. z konkretnych czujników. W teorii wydaje się proste ale jak to teraz...
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ć...
Jak w temacie. Temperatura prawidłowo się czyta przy 3 przewodach (+3v3 na stałe), natomiast nie chce się czytać przy podłączeniu dwoma. Nie bardzo widzę w dokumentacji żeby był jakiś inny algorytm do 2 przewodów? Wyświetla się natomiast 85C więc odczyt jest prawidłowy tylko nie oznacza temperatury.... Sprawdziłem i numer seryjny wysyła dobrze (co za...
Witam Próbuje przerobić kod obsługujący kilka DS18B20 na jednej linii i drugi obsługujący kilka DS18B20 na kilku liniach. Niestety jak na razie efekt jest taki, że działa tylko pierwsza linia, czyli dwa DS18B20. Jeśli chodzi o konfiguracje, to celowo nie ma Config 1wire = Porta.1 gdyż wpisanie tego portu, jako 1WIRE powoduje wyświetlanie 0.0 dla pierwszego...
witam wszystkich - to jest moj pierwszy post i oczywiscie jest tez prosba uporania sie z problemem napisalem program ktory odczytuje temperature z 1 czujnika i wyswietla ja na 2 wyswietlaczach 8 segmentowych niestety nie potrafie go przerobic odpowiednio do odczytu z dwoch czujnikow one_wire_reset(); one_wire_byte_write(SKIP_ROM);//...
Dodaje poprawnie listing programu. [syntax=basic4gl] 'OSTATNIE ZMIANY 08,10,2014 'Problem z blednie wysylanymi danymi 'Problem z wylaczaniem sie sterownika $regfile = "m32def.dat" $crystal = 7372800 $baud = 19200 $include "Config_MMC.bas" $include "CONFIG_AVR-DOS.Bas" $hwstack = 128 $swstack = 128 $framesize = 128 '**************KONFIGURACJA LCD*****************...
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...
Książka to "Programowanie Mikrokontrolerów AVR w jez. BASCOM" Program termometra. Przykład z książki. 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler...
Temat chyba przekazał wszystko kod od 10 lat nie ruszany działający ale zachciało mi się aby zwracał błąd gdy nie ma jednego czujnika na magistrali kombinuję i stoję w miejscu. [syntax=basic4gl] Sub Odcz_temp K = 1 For J = Poczatek To Koniec 'Odczyt numeru seryjnego z eeprom Readeeprom Register_number(k) , J Incr K Next J Call Zap_num 'Wywolanie procedury...
Witaj Kolego. Kiedyś robiłem projekt na DS18B20 i miałem popdobny problem ale pocieszę Cię łatwo można go rozwiązać. Któryś z kolegów forowiczów napisał Ci wyżej iż 85C to jest normalna temperatura którą odczytasz zaraz po włączeniu układu. Jeśli chcesz mieć poprawny pomiar to niestety musisz się dostosować do tego co jest napisane w dokumentacji. Ja...
Z braku sukcesów w programowaniu funkcji search_rom 1Wire rozwiązałem problem następująco: 1) użytkownik podłącza jeden czujnik pod 1Wire, program wykonuje funkcję read_rom, użytkownik ustala numer czujnika który aktualnie podłączył. 2) program zapisuje tak odczytany ROM do pamięci EEPROM procesora 3) z każdym czujnikiem użytkownik podstępuje dokładnie...
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....
Witaj Kolego. Ja zrobiłem obsługę one wire w C na mikrokontrolery i działa dobrze. Kilka kwestji jeśli używasz atmega8 to raczej nie używaj zmiennych typu float bo samo użycie tego słowa kluczowego zajmie Ci ponad połowę twojej pamięci flash, niestety tak to już jest. Kilka porad z mojej strony: 1. Czy przeczytałeś już w manualu od maxima/dallasa jak...
Witam Zachęcony sukcesami z płytką EVB 4.3 zaprojektowałem i zamówiłem swoją - na początek z AtMega8 w DIP. Do tego pamięć 24C32 oraz układ do RS485. Wszystkie układy mają kondensatory 100 nF ( stabilizator 7805 również + jeden elektrolit ). Całość ze złączem pod wyświetlacz 2*24 ( właściwe 4*12 ) Reset przez rezystor 10 K do +5V AtMega8L ( na 8 MHz...
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,...
Premature optimization is the root of all evil. Proponuję uruchomić jednak funkcję referencyjną i jak będzie działąć, to krok po kroczku wywalać to co niepotrzebne - gdy w pewnym momencie przestanie działać, to będziesz wiedział dlaczego i co jednak jest nie-zbędne. Argument o tym, że "tobie wystarcza" jest lekko lewy, skoro wystarcza ci niedziałająca...
Niedawno pisałem takie oprogramowanie w C - sterowanie fazowe triaka a odczyt takze był z ds'a. Także miałem ten problem co autor tematu - jedno z dobrych rozwiązań to zastosowanie maszyny stanu, gdzie zmiana kolejnych stanów jest uzależniona od przejścia sinusoidy napięcia sieci przez zero(inaczej:maszyna taktowana jest przerwaniem zewnętrznym ). Samo...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Hm a może wina nie leży w części programu odpowiadającej za odczyt ds'a tylko w częci komunikacji. ja odczytuje 2 termometry na 2 odrębnych pinach i na trzecim pinie pastylkę pamięci. nie mam najmniejszych problemów wyciągam termometr i mam napis Sensor 1 uszkodzony.. albo 2-gi zależy który wyciągnę, ale cała reszta programu chodzi idealnie. mogę ustawić...
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...
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 =...
'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z ksišżki "Mikrokontrolery dla Poczštkujšcych" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja częstotliwo�ci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17...
Dziękuję Ci zumek za pomoc wcześniej napisałem do twórcy tego kodu i on też powiedział mi o przesunięciu bitowym przy odbieraniu bajtu. Możliwe że podczas przepisywania pomyliłem się w trakcie pisania ale i również możliwe że została zmieniona zawartość pliku pdf na ten który jest teraz ale tak czy inaczej kod już działa. Gdyby ktoś chciał to w załączniku...
Nie znam bascoma, ale po tym co piszesz problem masz natury błędnego podejścia. Jak zabierzesz jeden czujnik to oczywiste jest, że urządzenie przy 1wire search zwróci czujniki w innej kolej kolejności. Np jak zabrałeś czujnik zwracany jako pierwszy (z "najmniejszym" numer seryjnym) to drugi czujnik stanie się pierwszym. Masz 2 wyjścia: - zapmiętać numery...
Co to znaczy programy Arduino w języku c? Dodano po 4 Jasne, oto przykłady programów w języku C na Arduino dla podanych zadań: ### 1. Wyświetlanie napisu zawierającego polskie znaki Jeśli używasz wyświetlacza LCD, możesz napotkać problem z polskimi znakami, ponieważ standardowe wyświetlacze LCD nie obsługują ich bezpośrednio. Możesz spróbować zastąpić...
...Kiedyś wyczytałem że można podłączyć je na osobnych portach i w trakcie programu po poleceniu config 1 wire przełączać z którego chce się robić odczyt... A teraz nie możesz wyczytać w helpie , że to co piszesz jest nieprawdą :?: ;) Config 1wire jest dyrektywą "jednarazowego użytku" :idea: By osiągnąć to o czym marzysz ;) , należy używać alternatywnej...
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...
Witam, w ramach nauki programowania uC, znalazłem kod pozwalający na wyświetlanie temperatury z DS18B20, na wyświetlaczu 1602A. Jako że na samym przeklejeniu kodu pewnie zbyt wiele bym się nie nauczył, użyłem nieco innego termometru(dokładność nie 0,1, a 0,5*C), zmieniłem układ w jakim ma się wszystko wyświetlać, zastąpiłem float przez int zmieniane...
Procerdura jest taka. Trzeba zczytać wszystkie ID czujników i przechować je w pamięci (np: tablicy). Następnie na początku kolejnego odczytu temperatury podajemy ID żądanego czujnika i tylko ten "słucha i odpowiada" reszta milczy. W załączeniu przetestowany program odczytu z 2-ch DS18B20 ale sens pozostaje taki sam. Pozdro. 'Odczyt Temperatur IN i OUT...
Witam, moze ktos przesledzic ten kawaleczke kodu (BASCOM) i powiedziec co jest nie tak ? Problem tkwi w tym ze odczytywane temperatury sa ok (wystarcz mi dokladnosc do 1 st C) jednak jak odlacze ktoregokolwiek DS'a to Tin = Tout zamiast wpisac wartosc 99 (w taki sposob wykrywam ze uszkodznieu ulegla ktorys czujnik) Program to kawalek kodu ktory ktos...
Tu masz prosty programik, który kiedyś pisałem. Przedstawia obsługę zarówno wersji B jak i S. [syntax=basic4gl] $regfile = "m8def.dat" 'deklaracja procesora $crystal = 8000000 'deklaracja czestotliwosci taktowania Config Lcd = 16 * 2 'typ wyswietlacza i konfiguracja pinow Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5...
Witam staram sie uruchomic weryfikacje odczytanych danych z czujnika DS18B20 o ile w przypadku weryfikacji CRC dla odczytu nr identyfikacyjnego czujnika dziala poprawnie to dla weryfikacji danych odczytanych ze scrathpad`u juz nie. Zalaczam kod do wyliczania CRC [syntax=c]uint8_t crc8_update(uint8_t crc , uint8_t data,uint8_t generator){ crc = crc XOR...
http://obrazki.elektroda.pl/1523592300_1... W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja...
No i przedobrzyłem Dokonałem optymalizacji kodu, oszczędzając kilkanaście procent pamięci FLASH, ale... sygnał z pilota NEC ( takie małe płaskie na baterie pastylkową ) przestał być odbierany - brak jakiejkolwiek reakcji na naciśnięcie przycisku w pilocie. Poniżej kod: Print Command w przerwaniu Infrared , żeby sprawdzić, czy coś odbiera - reakcji brak,...
Aktualizacja ............ Z tego co się zorientowałem późnej z dokładniejszej analizy dokumentacji to jest to takie prawie 1-wire gdyż w kodzie odczytu z nich danych nie podaje się żadnego adresu tylko operuje się na odpowiedniej sekwencji wysyłanych sygnałów oraz ich odpowiednim czasie. Dzięki za pomoc To źle to kolego zrozumiałeś! Tak możesz postępowac...
Tylko nie wywołuj w przerwaniach tak długich bloków instrukcji - lepiej ustaw flagę, która wskaże pętli głównej programu wykonać te instrukcje. Ale co tu możemy mówić, jak widać tylko wycinek programu. Zgadza się, dlatego wklejam nieco więcej Flaga_wybor jest co 10 sekund, Blokada zatrzymuje odczytywanie czujników na czas odbioru DCF77, zwłaszcza DS18B20...
Witam Mam problem z odczytaniem temperatury z 2-uch ds18b20 program napisałem w C w oparciu o znalezione pliki owire.c i owire.h program się kompiluje jednak na wyświetlacz nie trafiają informacje o MSB i LSB (na początku chcę przetestować na jednym ds18b20 bez konwersji na temperaturę) jedyną modyfikacją jaką wprowadziłem było zdefiniowanie typu u08...
Dzięki za pomoc! Okazało się że jednak procek ze sklepu był uwalony :) Nowy procek działa bez żadnych problemów :) Teraz mam inny problem: Do tego procka mam dołączone 3 układy ds18b20 i nie wiem dlaczego co jakiś czas jedna z temperatur wynosi 16 stopni. Dzieje się to nieregularnie i wystepuje raz na jednej czujce raz na drugiej :( Prosze o pomoc ten...
Zainstaluj bibliotekę DallasTemperature od https://www.milesburton.com/Dallas_Tempe... w niej jest przykład Multiple. W tym przykładzie do czujników odwołujesz się po ich numerze seryjnym, jest pokazane jak odczytać serial czujnika, potem odkomentowujesz linijki gdzie są podane przykładowe numery, wklejasz te odczytane, komentujesz...
Chce odczytac dane z ds18b20 o danym ID. Czy to jest poprawna metoda? one_wire_reset(); one_wire_send_command(SKIP_ROM,numer id); one_wire_send_command(CONVERT_T,nume... id); one_wire_reset(); one_wire_send_command(SKIP_ROM,numer id); one_wire_send_command(READ_SCRATCHPA... id); tb1=one_wire_byte_read();...
http://obrazki.elektroda.pl/8359932900_1... W Wi-Fi i Bluetooth oparty o ESP32 . W porównaniu do wcześniej dostępnych modułów Charakterystyka ESP32 w porównaniu do ESP8266: -liczba rdzeni: 2 (ESP8266: 1) -WiFi + Bluetooth/BLE (ESP8266: WiFi) -RAM: 512kB (ESP8266: 160kB – 96+64) -ilość pinów GPIO zależnie od wersji: ~32 (ESP8266:...
Dziękuję już wiem jak to zrobić: wyszukać wszystkie układy które są podłączone następnie zapisać do pamięci Ram lub eeprom ich numery id, a następnie przy odczycie odwoływać się do tych numerów.
Witam wszystkich, w temacie mikrokontrolerów nie jestem zbyt mocny, dlatego proszę o pomoc. Postanowiłem zbudować termometr dwupunktowy na ds18b20 i wysterować multipleksując IW-18. Poniższy program działa, jego mankamentem jest losowy zanik pomiaru w jednym (IN) albo drugim (OUT) czujniku, czasem przekłamuje na sekundę pomiar, podając 80 stopni, jednak...
Rejestrator dość spory. Większość danych zbiera płytka nadajnika na Atmega328 i tam następuje praktycznie całkowita obróbka - oprócz danych z siedmiu DS18B20, jednego DHT11 oraz MPL115A2, odbieranie czasu z DCF77 i jego aktualizacja w PCF8563 przesyłane są dane o tym czy nie ma awarii czujnika ( zmienna Err ) oraz informacja o histerezie czujników DS18B20...
Przedstawiam działający kod na atmega32. Można go adaptować na większą liczbę czujników. Mam dwa podłączone i działa bez problemu. Kod nie jest zoptymalizowany. 'Odczytanie Id czujników Sub Termometr_id Ilosc_czujnikow = 1wirecount() Cls Lcd " test term " Lowerline Lcd " wcisnij prg" Wait 1 Upperline Prg = Prgp If Prg = 0 Then 1wreset Ilosc_czujnikow...
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);...
I tu już klapa. Nie mogę sobie pozwolić na to aby w przypadku awarii czujnika ponownie grzebać w programie. To musi działać tak że odpinam uszkodzony czujnik i wpinam nowy. Potem restart modułu i wszystko działa.. Nie chcę się upierać, że odczyty wszystkich czujników na jednej magistrali to najlepszy sposób ale kurka wodna ;) .... dla mnie większym...
a ja się zastanawiam jakie jeszcze istnieja czujniki dzialajace na 1-wire ? jakos nie moge tego znalezc :( A patrzyłeś na stronie producenta? Z tego co pamiętam głównie są termometry, ponadto przetwornik A/C, układ 1 bitowego portu I/O, układ "rozgałęźnika" 1wire. Pozatym jest cała seria układów podobnych elektronicznie do iButton czyli układy z samym...
Do pełni szczęścia , brakuje Ci funkcji wyszukującej numery seryjne urządzeń , podłączonych do madistrali 1wire. Możesz odczytać pojedynczo te numery i zapisać je na stałe w pamięci programu , czy w eepromie , ale to takie .... prostackie(?) :D http://pdfserv.maxim-ic.com/en/an/AN187.... Piotrek
ds18b20 odczyt numer bascom numer ds18b20 odczyt ds18b20
samsung le32b530p7 potencjometr sterowany cyfrowo patriot laptop
unitra m8011 czujnik zbitej szyby
Zwarcie elektrozaworu Prins VSI – objawy, diagnostyka, naprawa LPG Daewoo DWF-5590DP – pralka nie wypuszcza wody, działa pranie, filtr, pompa, odpływ