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...
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...
mam podlaczone dwa termometry ds18b20 do magistrali 1wire, steruje tym z basoma oto krotki fragment kodu Config 1wire = Portb.0 1wreset Dim W As Word Dim Id_cz1(8) As Byte Dim Id_cz2(8) As Byte W = 1wirecount() Id_cz1(1) = 1wsearchfirst() Do Id_cz2(1) = 1wsearchnext() Loop Until Err = 1 po tych...
Buduję termometr na ds18b20. Na AT90S2313 działalo OK ale program zajmował całą pamięc (brak miejsca na zegar), więc kupiłem ATMEGA8L i tu problem Lcd działa OK ale nie mogę odczytać temp z ds18b20 pomimo skonfigurowania 1wire na odpowiedni port. Podobnie z i2c. Czy miał może ktos taki problem i jak go rozwiązał? Dziekuję za pomoc.
na poczatku chcialem sie przywitac... /jest to moj pierwszy post na tym forum/ a teraz mam jeszcze male pytanko... mianowicie robie uklad moniturujacy temperature w 16 punktach... robie to na ds18b20 podpietych na 1wire do 80c552, teoretycznie wszystko powinno dzialac, ale tak mysle, ze bedzie mi potrzeba z 40m kabla /jak nie wiecej/ dlugosc kabli mozna...
Mam problem z czujnikami temperatury DS18B20 na 1wire. Polega na tym, że procesor widzie oba podłączone czujniki, ale czyta tylko z jednego. Czytanie ROMu skutkuje wyświetleniem informacji z jednego czujnika (28 FF FC 29 01 00 00 87) natomiost z drugiego czujnika - 28 00 00 00 00 00 00 00 (przy podłączeniu pojedyńczo informacja z czujnika wygląda następująco:...
Witam Na wstępie chciałbym zaznaczyć iż jestem początkującym programistą i dlatego proszę o wyrozumiałość. Robię termometr na lampach nixie, ale nie działa mi poprawnie komunikacja z ds18b20 i ds1820. Problem polega na tym, że na lampach pokazuje się wartość -00.1 tak jak by wyjście czujnika było zwarte bezpośrednio z + , a nie jest . Czujnik jest podpięty...
Witam. Przejrzalem CALE forum w poszukiwaniu rozwiazania mojego problemu. Probowalem wszystkiego co bylo podane w postach. Mam problem z polaczeniem tn2313 z ds18b20. zegar: kwarc 4MHz (testowalem juz na wew 1-8MHz bez rezultatow - ckdiv8 konfigurowalem poprawnie 1dis 0 en) podlaczam do portu d pod rozne piny. Od strony programowej tez powinno byc all...
Witam Wiem, temat był już poruszany, przeglądałem kilka wcześniejszych postów nt 1Wire, przeczytałem kilka dokumentacji, opis z #define _1W_SET_0(){ DDRB |= 0x01; }//PB.0 jako wyjście, //PortB.0 = 0, więc stan na linii wynosi 0 #define _1W_SET_1(){ DDRB &= 0xFE;}//PB.0 jako wejście, //stan 1 pochodzi z rezystora...
Cześć. Wielokrotnie już elektroda ratowała mnie pomocną ręką, mam nadzieje, że i tak dziś będzie. Staram sie napisać własną obsługę dla ds18b20 dla atmega8. Sporządziłem wstępny kod "biblioteki" (gdy zacznie działać zrefaktoryzuje kod celem jej uogólnienia). Jak narazie jedyna funkcja która mi działa to reset i presence pulse. Dalej w zasadzie odczytuje...
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...
Witam. Zrobiłem już część programu: $regfile = "2313def.dat" $crystal = 12000000 '-- konfiguracja zmiennch: 'potrebne do odczytu 1wire itd. Dim Liczba As Byte Dim Jednosci As Byte Dim Dziesiatki As Byte Dim Czdziesietne As Byte '--deklaracja podprogramow: Declare Sub 1 Declare Sub 2 Declare Sub 3 Declare Sub 4 Declare Sub 5 Declare...
Witam, podłączam 4 czujniki temp ds18b20 poprzez 1wire do atmega32. Chciałbym zapisać ich id do eepromu a potem odczytać z tablicy. [syntax=basic4gl]Dim Id1(8) As Byte zapis: For C = 1 To 8 Step 1 writeeeprom id1(c), c Next C odczyt: For C = 1 To 8 Step 1 readeeprom id1(c), c Next C wyswietlanie: For C = 1 To 8 Step 1 Lcd Hex(id1(c)) Next C[/syntax]...
Witam Chciałbym zczytywac temp. z termometru ds18b20 za pomocą 1wire i wyświetlić ją w konsoli. Przejrzałem i kombinowałem z wieloma już przykładami. Najpopularniejszą metoda jest USART, jednak na tę chwilę po deklaracji moje pomysły się kończą :roll: . Macie już jakieś doświadczenia na tym polu? Prosze o sugestię. ;)
Witam serdecznie. Mój cel jest dosyć prosty - zbudować termometr oparty na uC ATmega128 wykorzystując czujnik DS18B20. Sprawa wydawała się banalna - wydawała się, gdyż niestety do tej porty nie potrafię sobie z tym poradzić. KOD: Identyczny jak ten ze strony (oczywiście ze zmienionym pinem 1wire): [syntax=c]/*****************************...
Witam, Nabyłem moduł MMega01 firmy Problem polega na braku komunikacji z urządzeniami 1wire... Probowałem podłączyć termometr DS18b20(nie jeden - myślałem że ten co mam jest uszkodzony) i nic... taktowanie procka to ok 16MHz. Jako rezystor podciągający na magistrali 1wire daje 2,2k np w ATmega32 zawsze wystarczało. Program który sprawdzam to: Config...
Witam, złożyłem płytkę, napisałem kod i coś nie działa, narazie podam kod bo płytka śmiga byłbym wdzięczny za sugestie co jest nie tak że to nie chce działać, kod zbudowany po części w CodevisionAVR. Wyświetlacz jest na wspólnej Katodzie stąd mój wniosek że aby zaświecić jakiś segment muszę wysłać 0 na pin, a aby go zgasić 1. Jeżeli źle myślę to poprawcie...
Takiego tematu nie znalazłem więc zakładam nowy. Otóż mam problem tego typu że: Posiadam Atmega 2560 ,podłączony do niej odbiornik RC5 (TSOP) , DS18B20 (1Wire) , a także kartę pamięci SD. W fusebitach przełączyłem się na razie na wewnętrzny oscylator i wyłączyłem Fusebit 7(clock divide by 8) . Jeśli mam ustawiony $crystal = 1000000 to transmisja z karty...
Witam Kolegów, zaczynam naukę programowania w środowisku Bascom, na warsztacie mam Attiny2313 i DS18B20, chciałem sprawdzić jak działa odczyt temperatury (wyświetlanie na LCD opanowałem wczoraj, pin'ologia LCD niezmieniona). DS18B20 podłączyłem następująco: 1 - Gnd, 2 - do pin'u wejściowego oraz przez R=4.7k do +5V, 3 - +5V. Całość jest zasilana przez...
1WIRECOUNT Przeznaczenie: Zwraca liczbę urządzeń podłączonych do magistrali 1Wire. Składnia: [syntax=basic4gl]zmienna = 1WIRECOUNT( ) zmienna = 1WIRECOUNT( port , pin )[/syntax] A także: [syntax=basic4gl]1wverify Reg_no(1) Print Err 'Err=1 gdy nie ma takiego numeru[/syntax] Zwróć uwagę na tajemniczą zmienną Err, która jest zaszyta w programie.
Witam Bardzo spodobało mi się środowisko CodevisionAVR, (można naprawdę szybko rozpocząć w nim pracę nad projektem a nie walczyć z ustawieniami i konfiguracją procesora) ale gdy zacząłem zastanawiać się nad zakupem - pod konkretny projekt zauważyłem, że biblioteki pod 1wire mają pewne ograniczenie. Mianowicie port i pin, do którego będziemy podłączać...
Dodano po 1 [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 $baud = 1200 Config 1wire = Portb.0 Dim Adresy(16) As Byte Dim Temp As Byte Dim Temp_wew As String * 6 Dim Temp_zew As String * 6 Dim W As Byte Dim...
Mam sterownik do kolektora słonecznego zrobiony na atmega8 i dwóch termometrach ds18b20. Do tego mam komputer zbierający dane jeszcze z innych czujników podłączonych do innej magistrali 1wire. Teraz chciałbym aby komp zbierał też dane z czujników podłączonych do ATMEGA8. Podłączenie obu magistrali 1wire i podłączenie dwóch masterów do jednej magistrali...
Witam, Dwa czujniki DS18B20 mam podłączone do jednego pinu avr'a, podciągnięte do plusa przez 4k7, zasilane pasożytniczo. Ponieważ nie lubię korzystać z "nieswoich" bibliotek napisałem swoje do obsługi 1wire. Pozwala to zaoszczędzić kilka bajtów... Problem jest taki: Jeżeli oba czujniki są zasilane osobną linią (nie pasożytniczo, czyli Vss, Dane i GND)...
Witam. Nie posiadam wyświetlacza LCD ani 7segm. chciałem nauczyć się obsługi DS18B20 niestety na ekranie terminalu do odbioru sygnału z RSa widnieje dziwna wartość "1360" . UART działa poprawnie. Procesor to Atmega8 z wewnętrznym 8MHz, czujnik podpiłem do PB0 i dałem rezystorek 4,7kłoma. Proszę o jakaś sugestie. #define F_CPU 8000000UL // 8 MHz #define...
Witam, uczę sie programować mikrokontrolery AVR i postanowiłem zrobić sam od podstaw jakiś projekt. Mianowicie, staram sie zbudować termometr na bazie czujnika DS18B20. Nie chcę zaglądać w gotowe projekty ani sugerować się czyimiś rozwiązaniami, chcę żeby był to mój projekt. Ale chciałbym żeby ktoś doświadczony zerknął na niego i wskazał błędy w składni....
Witam serdecznie i dziękuje za zainteresowanie tematem. Czy ten napis "Rozpoczynam temp" znika po tej sekundzie, czy wyświetla się cały czas? Odpowiadam: Napis pali się cały czas Jak tylko wypije kawę sprawdzę kod Pana snnaap. To znaczy tyle, że procek łapie zwiechę na TERMOMETR_RESET(); albo na TERMOMETR_ODCZYTAJ_TEMPERATURE(tablica); a najbardziej...
Witam Właśnie sobie projektuję taki dość prosty układzik; Atmega162-16AU, do niej podłączone 4 DS18B20. Chcę sterować z procesora 4 wyjściami PWM - 2 będą regulować 12V taśmy LED, a 2 wentylatory 12V (takie "komputerowe" powiedzmy). Całość pod BASCOMEM (nie znam C niestety), a jako jeszcze zielonkawy, mam tu pewną wątpliwość - obawiam się jednego problemu;...
Oj kolego, poważny błąd - zasilaj prawidłowo mikrokontroler: Dzięki za upomnienie, faktycznie gdzieś to przeoczyłem, na schemacie ideowym nawet masa wisi :) Poniżej zamieszczam poprawiony schemat ideowy i płytkę w EAGLE. Widząc duże zainteresowanie kodem wrzucam wsad w BASCOM. Załączam również program współpracujący z urządzeniem. Program może działać...
...Okna czasowe są realizowane według zaleceń z datasheet układu DS18B20. Nie bardzo :( Zauważ , że każdy timeslot , kończy się zwolnieniem magistrali na >1us , a Ty nie robisz tego , kiedy wysyłasz bit o wartości "0".Gdybyś wysłał na magistralę kolejno 8 bitów o wartości "0" , to DS zinterpretował by to jako Reset(8x60=480).Musisz to poprawić , a...
Gdyby ktoś szukał sprawdzonego rozwiązania do zmiany rozdzielczości to polecam ten kod w c plik configds.c [syntax=text] // modified version to read DS18B20 in bit banging // // 24 May 2014 // Daniel Perron // // Use At your own risk // 7 August 2014 // Add arg parameter to select the GPIO pin // Add the priority function from Adafruit DHT22 c code...
układ się spodziewa danych w standardzie 1wire. W dokumentacji o tym jak podłączać 1wire do rs232 jest napisane jak to się robi że układ rozumie dane wysyłane przez rs232 jako dane 1wire. sory z gory ale nie jestem elektronikiem i jakos mimo tego ze poszukalem i poczytalem to nadal malo rozumiem.mozesz mi to wytlumaczyc na jakims przykladzie odczytu...
Opisany poniżej miniaturowy zamek elektroniczny z układami 1WIRE w odróżnieniu od setek podobnych projektów posiada pewną specyficzną cechę: współpracuje nie tylko z układami DALLAS DS1990 czy RW1990, ale w zasadzie z każdym układem z interfejsem 1WIRE posiadającym własny niepowtarzalny adres ROM. Oprócz pastylek DS1990/RW1990, w swojej szufladzie...
Witam Już od dłuższego czasu nie mogę poprawnie uruchomić termometru ds18b20. mikrokontroler to ATMEGA32A, F_CPU 16Mhz Próbowałem już na wiele sposobów, ostatecznie jednak korzystam z kodu zamieszczonego w książce tmfa. Każda próba kończy się odpowiedzią " No Presence Pulse" Jestem początkujący i pewnie popełniłem jakiś mały błąd, jednak od pewnego...
Witam ! Mam dziwny problem z 1wire. Mam obecnie podpięty moduł 1wire/I2C na DS2482 do Raspberry. Zasilany jest 3.3V, do tego w układzie gwiazdy mam podpięte 14 czujników DS18B20 + licznik. Wszystko działa dobrze i stabilnie. Pomiary zczytuje sobie przez owfs. Do mojej sieci postanowiłem dodać switch DS2408 w celu sterowania urządzeniami i zaczęły się...
Temat jest podobny do: Próbowałem ten kod z książki o którym mowa i ten poniżej co jest oraz zmieniałem na 1MHz i nic Mam albo Brak układu albo Temp:0.0C w zależności od kodu. Napięcie na ds jest a układ jest dobrze podłączony. Poniżej mój kod $regfile = "m32def.dat" $crystal = 16000000 Config Lcdbus = 4 Config Lcd = 24 * 2 Config Lcdpin =...
Witam, Mam pytanie co do obsługi termometru ds18b20 i ogólnie komunikacji 1wire. Przejrzałem kilka gotowych bibliotek do obsługi 1wire i wszystkie zawierają opóźnienia programowe (delay). Znalazłem też informację, że można wykorzystać UART do tego celu ale z tego co widzę tam również występują opóźnienia. Nie chodzi mi o opóźnienie 750ms czyli czas...
Walczę właśnie z DS18B20. Mój procek to AT90S2313 na płytce ZL1AVR, a kwarc 8 MHz. 1-Wire wychodzi tam na pin nr 3 portu D, a pin VCC DS18B20 jest podłączony do 5V. Port B służy do obsługi wyświetlacza. (To info dla tych co nie znają ZL1AVR ;-) ) Program pisałem w AVR-GCC na podstawie informacji ze strony www.mikrokontrolery.net i książki "Mikrokontrolery...
Od kilku dni staram się uruchomić pomiar temperatury czujnikiem ds18b20. Pomiar niskich temperatur przebiega poprawnie. Po przekroczeniu temperatury 54stC na wyświetlaczu ukazuje się wartość 127. Poniższy kod jest skopiowany z tego forum, poza tym napisałem własne funkcje obsługi 1wire lecz skutek był taki sam. Programując uC bascomowymi procedurami...
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...
Witam! Od kilku dni nie mogę poradzić sobie z takim dziwnym problemem. Zbudowałem system z ATmega8 z podpiętym do niego (poprzez TWI) PCF8583 (generuje przerwanie na INT0 co 1s), do systemu dołączony jest wyświetlacz LCD 2x16 oraz poprzez 1-Wire (portd.0) czujnik DS18B20. System działa poprawnie, nie ma wad sprzętowych, wyświetlacz działa, RTS działa,...
Coś chyba źle robie. Mam tak: #include <stdlib.h> . . . signed int a; . . dtostrf((float)((msb... . . lcd_puts(a); W rezultacie dostaje: 1wire.c:64: warning: passing arg 4 of `dtostrf' makes pointer from integer without a cast 1wire.c:74: warning: passing...
Po pierwsze jak zamierzasz podlaczyc czujnik do komputera? W zamieszczonym przez ciebie linku autor wykorzystuje osobna plytke z uC programowana w .Net MicroFramework wiec ten sposob raczej odpada. Mozesz wykonac\zakupic konwerter 1Wire\RS232(1Wire\USB) i do niego podpiac czujnik a aplikacja musialaby tylko odczytywac dane z portu szeregowego komputera.W...
Witaj tmf! Miałeś rację :D Przyczyną "wariowania" czujnika przy wysokich temperaturach były złe timingi - zarówno slotów "write" i "read". Do policzenia dokładnych czasów wykonania procedur wykorzystałem wbudowany w AVR Studio 5 symulator. Okazało się, że większość czasów była niemal o połowę za krótka. Na przyszłość: jeśli ktoś uważa przebiegi czasowe...
Mam mały problem z termometrem DS18B20. Dotyczy on "zrywania" transmisji przy temperaturze powyżej ok 45..50 degC (dwa dzialały do 65 C), w niższej temperaturze i/lub po ostudzeniu wszystko zachowuje się poprawnie. Przy obniżeniu napięcia zalilania DS18B20 (przy lini trójprzewodowej) do ok 4V temperatura pracy wzrasta średnio o 5K. Czy ktoś mial podobny...
z tego co mi wiadomo to zwykly ukladzik pracujacy na 1wire. czyli tak podlaczasz mase do ukladu i teraz tak zlbo podlaczasz 5 v i dane osobno albo razem. bo jesli razem wystarcza tylko 2 przewody ( 1 wire ;) ) przewod danych podlaczasz do ktoregos z wyprowadzen proca (nie zapomnij o wejsciach open collector - niektore nie maja pullupow) i teraz tylko...
Hej! Cześć mam fajny problem z magistralą 1Wire, otóż chce podłączyc do jendej lini termometr DS18B20 oraz czytnik pastylek DS1990A i zaczynają się dziać cuda-> nie działa. Gdy łącze osobno wszystko gra tylko dwa na raz nie chce zadziałać. Pomocy Pzdr
Tu masz sprawdzoną procedurę odczytu temperatury. Zmień tylko definicję procesora, przypisania portu 1wire i LCD i masz gotowe. '=======================================... 'definicja użytego kontrolera $regfile = 8535def.dat 'jaki rezonator kwarcowy $crystal = 8000000 '$sim '---------------------------------------...
Witam. Napisałem program w bascomie, zwykły termostat z wyjściem na przekaźnik. Mikroprocesor to Atmega8 + lcd + DS18b20 + 2 przyciski. Przerwania działają, lcd tak samo, jednak program nie chce odczytywać danych z czujnika. Sądzę że jest dobry gdyż tą cześć kodu która ma służyć do obsługi czujnika zaczerpnąłem z tego forum. Kod zamieszczam poniżej...
Witam! W zeszłym roku był na ten temat topic. Termometr 4 punktowy DS18b20 by Duch na podstawie materiałów znalezionych w sieci 'Kontakt duszkowski(małpa)o2.pl $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...
Wersja poprawiona ale bez skutku czy ktoś widzi błąd którego Ja nie widzę Jak nie ma czujnika wyświetla 0 a jak podpinam czujnik wyświetla -6(kreska6) #include<avr/io.h> #include<inttypes.h> #include<util/delay.h> #include<avr/interrupt.h> #define F_CPU 8000000 #define W1 6 #define W2 5 #define pin_nadmuch 3; #define pin_pompka...
Witam ! Mam prosty programik do sterowania lampy nixie za pomocą PWM poprzez odczyt temperatury z DS18B20. W chwili obecnej mam zakres pomiaru od 0st do 125st.C i płynną zmianę PWM od 0-255. Chciałbym jednak zawężyć pomiar temperatury od np 15 do 30 stopni ale nadal w pełnym PWM od 0-255 tylko nie wiem w jaki sposób to zrealizować w programie. [syntax=basic4gl]...
Problem z arduino (zarówno w wypadku avr jak i esp32 / 8266) jest taki że mnóstwo tam laików. Najlepiej jeśli nie jesteś w stanie odfiltrować względem jakości weź przykład z wykorzystywanej biblioteki. Ogólnie tam nie ma standardów, więc nie masz co liczyć na odgórnie narzucony sposób wykorzystania czegoś Np Daje które wysyłasz na uart możesz równie...
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...
-> snow bez zmian.... zrobiłem tak: main: ........................ ........................... wire_reset1(); wire_write_byte1(0xCC); wire_write_byte1(0x44); delayms(250); delayms(250); delayms(250); wire_reset1(); wire_write_byte1(0xCC); wire_write_byte1(0xBE); lsb1 = wire_read_byte1();...
Witam. Ponownie DS :( ale jakoś nie mogę znaleźc błedu. HW i biblioteki 1 wire sprawdzone z inym programem i DS18(nieB)20. 1) Wartośc po 0xBE i reset_1w () przez chwile pokazuje 85 (poprawnie) a potem tylko 127. Timingi sprawdzalem 2) Jak poprawnie zapisac temperature z dokadnoscia do 0.1 na dwoch bajtach unsigned char? Nie chce uyzwac floatow ani int...
Oto kod całego programu , wyświetla wszystkie linie ,jednak w momencie gdy zaczyna odczytywać temperature- ekran zaczyna mrygać, wygasza co ok 1s na 1s, potem kilka razu krócej aż przez całą sekundę jest obraz i tak od nowa .Po paru minutach chyba łapie błąd bo wyświetlacz zaczyna wyświetlać znaki graficzne jakie ma w pamięci. 'Zegar DCF77 $regfile...
Witam Mam pewien problem, chciałbym żeby w moim termometrze kiedy temperatura z pierwszego czujnika zejdzie poniżej 2 st zapalała się dioda podłączona do portd.0 Zrobiłem warunek, niby działa, ale tylko dla 0, kiedy wpiszę zero dioda się zapała, ale wszystko powyżej zera i dioda stoi w miejscu... (temp w pokoju 22st) Druga sprawa to jak zrobić, żeby...
Witam Może ktoś wie jak dogadać się z termometrem DS18B20 ? Na początek wersja uproszczona z jednym układem na magistrali 1wire. Do kontroli transmisji chcę użyć ATMEGI oprgramowanej w avrgcc. Czytam dokumentację i nie mogę zbudować obrazu całości :( . Przypuszczam, że najpierw trzeba wysłać rozkaz "CC" i zapamiętać zwrócony adres, potem rozkaz "55"...
Daj się przekonać do $crystal. Jeśli częstotliwość zadeklarowana jest różna od rzeczywistej to nici z 1Wire. Gdzieś czytałem, że przy 16MHz 1Wire w Bascomie nie chce chodzić.
Witam Jak najlepiej zabezpieczyć złącze/linię czujnika DS18B20? Czy jest jakiś miarę prosty układ na transoptorach? Czy może wystarczy użyć DS9503 i załatwi wszelką sprawę zakłóceń związąnych z przewodem czujnika..? Dziękuję Pzdr.
Kolega ma nowy procesor. Prosto ze sklepu. Trzeba ustawić fuse-bity by pracował z zewnętrznym kwarcem - takim jaki jest podany podczas kompialcji. Inaczej cała transmisja 1wire idzie w maliny. Ewentualnie najpierw proszę zmienić zapis w dyrektywie $CRYSTAL na: $crystal = 1000000 Jek będzie dobrze to przycyzną jest taktowanie. ps. A swoją drogą. Tyle...
1wire jest wolne jak slimaki pod gorke, a dokladnosc 1us jest za mala? 4\/3!!
Pozwolę sobie zapodać link do posta, w którym jako złącznik wrzuciłem kompletny przykład do komunikacji po 1Wire. Przykład obejmuje zarówno odczyt z DS1990 lub z DS18B20, w zależności co się wykomentuje w "mainie". Przykład chodzi na zegarze 4MHz, więc będziesz musiał sobie jedynie przerobić funkcje opóźniające (waitus), aby jej wywołanie waitus(60);...
Witam, Znalazłem taką stronę: Jest tam sposób podłączenia termometru ds18b20 do portu com komputera. No i super, podłączyłem w taki sposób i wszystko działa. Chciałbym samemu napisać aplikację, która będzie odczytywała mi temperaturę z czujnika, lecz nie mam pojęcia w jaki sposób to zrobić.. Zainstalowałem już analizer rs232, który pokazuje mi co 'przepłynęło'...
Witam W swoim programie wykorzystuję klasyczny kod dla DS18B20. Pomiar, obliczenia i odczyt podzieliłem na dwie części, każda wyzwalana flagą od od Timer0. Najpierw w podprogramie wywołuję DS'y pierwszym wystąpienie flagi od Timer0, a w następnej wywołuję podprogram konwersji i obliczeń. [syntax=basic4gl] $regfile = "m644def.dat" $crystal = 14745600...
Czyli funkcje 'v1Wire_SendByte' i 'uv1Wire_ReadByte' służą tylko do tego, żeby wysłać odpowiedni rozkaz do termometru? Te funkcje, jak sama nazwa wskazuje, wysyłają i odczytują bajt danych z magistrali 1wire. W przypadku ds18b20 ten bajt danych to może tym rozkaz dla termometru (np. wspomniany już start pomiaru) lub dane (np. zmierzona wartość temperatury)....
taktowanie procesora: 16MHz atmega32a main.c: [syntax=c] int main(void) {/* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */ czujniki_cnt = search_sensors(); /* wysyłamy rozkaz wykonania pomiaru temperatury * do wszystkich czujników na magistrali 1Wire * zakładając, że zasilane są w trybie NORMAL, * gdyby był to tryb Parasite, należałoby...
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...
$regfile = "m16def.dat" $crystal = 8000000 On Int2 Int2_int Config 1wire = Pinb.0 Enable Interrupts Enable Int2 Dim Iloscczuj As Byte 'Ilosc wykrytych czujników Dim Ktory As Byte 'Ktory czujnik będzie odczytywany Dim Index As Byte 'Index do tablicy z adresami czujników Declare Sub Oblindex 'Funkcja do obliczania indeksu w tablicy adresu dla...
Witam Mam napisany następujący program Config 1wire = Portb.0 Dim I1 As Integer , Ss As String * 6 Dim I2 As Integer , Tt As String * 2 Dim I3 As Integer Dim Sc1(9) As Byte Config Pind.1 = Input Portd.1 = 1 Config Pind.4 = Input Portd.4 = 1 Config Pind.3 = Input Portd.3 = 1 Config Pind.0 = Output Portd.0 = 0 Config Pinb.1 = Output Portb.1 =...
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...
Witam. Koledzy niby prosty układzik między innymi z czujnikiem temperatury DS18b20. Nijak nie mogę uruchomić tego czujnika. Sprawdziłem wszystko pod kątem połączeń zwarć i zimnych lutów. Ba nawet czujnik podmieniałem i nadal temperatura odczytana z czujnika to -0.1. Wiem że mam jakiegoś babola w programie którego nie widzę. Jak znam życie to jakiś banał...
Witam Szukałem w internecie odpowiedzi na swoje pytanie ale nie znalazłem konkretnej odpowiedzi. Straciłem 3 dni na doświadczenia i nic mi nie wychodzi. Pracuję nad urządzeniem które odczytuje temperaturę w czterech różnych miejscach. Dopóki wszystkie czujniki działają nie ma problemu. Jeżeli padnie któryś z czujników pojawia się problem bo po jego...
Witam, Mam problem z inicjalizacja DS18B20. one_wire.c [syntax=c] #include <avr/io.h> #include <util/delay.h> #include "one_wire.h" #include "../pjlcd_hd44780/lcd_hd44780.h" #include <avr/interrupt.h> // makra upraszczające dostęp do portów // *** PORT #define PORT(x) SPORT(x) #define SPORT(x) (PORT##x) // *** PIN #define PIN(x) SPIN(x)...
Bardzo proszę o opis zasady działania magistrali i2c i 1wire, ponieważ chcę zbudować termometr na procesorze at89c2051 i czujniku ds18b20. Dopiero zaczynam zabawę z prockami, zapoznałem się z budową w.w. procesora i jego komendami. Mam nadzieje ze znajomość tego oraz poszczególnych magistral da mi możliwość zbudowania mojego termometru. Z góry dziękuję.
Transmisje z DS wykonuje 5 razy i sprawdzam, czy zawsze przychodzi to samo. Mam aktywne przerwanie timera, ktorz relizuje zegar czasu rzeczywistego. Po kazdym odczycie dwoch pierwszych bajtow wykonuje reset lini 1wire. Rzecz w tym, ze nie dostaje roznych odczytow tylko zawsze 0. Zauwazylem, ze 0 dostaje sie tez jak sie zewrze linie danych do masy. PL
No witam wszystkich elektroników :) Mam problem z komunikacja z czujnikiem temperaturki DS18B20. Musze szybko oddac projekt, a wciaz nie moge sobie poradzic z odczytem temperatury. Wygląda na to ze nie odbiera on wysyłanech komend :( co moze byc nie tak?? przegladnąłem już wszystkie posty z elektrody i dalej nic nie pomaga :( Ponizej zamieszczam procedurki...
Z braku czasu powracam do zabawy z uC dopiero teraz :) Tdv: sprawdziłem i teraz twoja biblioteka działa. Brawo!!! Teraz wzięłem się za czujnik temperatury DS18B20. Było sporo o tym czujniku więc znalazłem kawałek kodu, który podobno był sprawdzony, ale u mnie niestety nie działa :( (historia znów się powtarza) :| No nic, wkleje go tu może ktoś znajedzie...
Wstawiłeś tu cały program, więc nie miej pretensji, że go nie analizowałem. Podam jedynie wszystkim znany link do działających (przynajmniej u mnie) funkcji obsługi 1WIRE. Próby, które wykonałem na tym programie dotyczące głównie zmiany opóźnień powodowały, że czujnik przestawał reagować - stąd wiem, że czasy są istotne. Dla pamięci napiszę jeszcze...
Wita! Mam problem z termometrem dziwnie wskazuje w pokoju mam 29 stop. ?? i mu nie wierze bo jest max 24 patrzylem na zwyklym termometrze, czytam czytam i kazdy cos wspomina o rozdzielczosci dla serii b moj programik ... config 1wire=portb.0 declare sub odczyt_temp dim temperatura(2) as byte do call odczyt_temp cls lcd "temp:"...
Pierwsze to linia z #define XTAL 110592 zmieniasz na #define XTAL 36864. Drugie to obliczsz czas trwania cyklu maszynowego przy twoim kwarcu T = 10e6/(12 * 3,6864) [us] Trzecie - na podstawie dokumentacji 1 wire obliczasz jakie wartości opóźnień musisz uzyskać i odpowiednio modyfikujesz linie takie jak przykładowa: //pętla opóźnienia 480 < t <...
Witam! Mam problem a polega on na tym że: Mam procka atmega 8 oraz trzy czujki temperatury ds18b20. Czujki temperatury skonfigurowane są na 1wire, rezystor podciągający tych czujek to 4,7 kohm. Połączenie czujek jest trój przewodowe. I problem jest w tym że co jakiś czas temperatura podawana przez czujki jest albo 0 albo 85 st. Mierzy dobrze temperaturę...
Trochę zajęło mi znalezienie co jest nie tak... ale w końcu do tego doszedłem, może się komuś przyda. Problem rozwiązałem stosując kwarc 4,4 Mhz (lecz samo zastosowanie kwarcu nie było przyczyną rozwiązania problemu), następnie przeliczyłem czasy dla tej częstotliwości, a to co pomogło to wydłużyłem czasy trwania ramek w 1wire. Widocznie jeżeli czujnik...
Vpu to podciągnięcie do zasilania (5V). Ten czujnik ma 3 piny. Masę, dane i zasilanie. Jak nie podłączasz zasilania działa w trybie parasite power (pobiera zasilanie z linii danych). Jak programujesz w bascom wystarczy że dasz rezystor podciągający 4.7k między zasilanie a linię 1Wire. Pin Gnd na masę, pin danych przez wspomniany rezystor podciągający...
Program Kompiluje sie dobrze jednak nie wyświtla wyniku pomiaru No od kompilacji programu do wyświetlenia wyniku jest jeszcze parę kroków :wink:. Co znaczy nie wyświetla? Czy nic nie wyswietla, czy źle wyświetla, czy w ogóle coś wyświetla? (to ostatnie jest pewne bo nigdzie nie widzę żebyś konfigurował lcd'ka). Jak jesteś początkujący to proponuje...
Pisząc reset mam na myśli sygnał wystawiany na linii 1wire.
NIE Jeden rezystor na całą magistrale 1Wire.
Nie wiem jak dodać konwersję czasu i ile ms. Skąd się biorą te wartości 255 (248) 16 10 26 ? i za co odpowiadają jak zmieniam wartości 16 na większe lub mniejsze to termometr koryguje temp w dół lub w górę ale źle wskazuje na całym zakresie od -50 do +150 stC ( ustawie temp zgodnie z innym termometrem wzorcem i jest ok ,wystawie czujnik za okno to na...
Na szybko przeglądając kod, to nigdzie nie stosujesz podciągania portów. Np tutaj void send(char value) { CLEAR_1WIRE; _delay_us(5); if( value == 1) { SET_1WIRE; } _delay_us(65); SET_1WIRE; } Robisz tylko SET_1WIRE, a więc ustawiasz kierunek na wyjściowy i nic więcej. Musisz też ustawić port w stan...
Witam. Poszukuje układu termometru ale dokładniejszego niż 12 bitowy ds18b20. Najlepiej układ całkowicie cyfrowy np na 1wire lib i2c.
No to mam taki problem, mam attiny 2313 podłączonego do wyśw. 2x16 i do attiny podłączonego ds18b20. Na wyśw. mam napisane Temp:-0.1C. Problem tkwi w tym że temperatura jest zawsze -0.1C kod programu : $crystal = 4000000 'deklaracja częstotliwo?ci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program ' definicja...
Witam! Mam taki problem: Skleciłem oto taki kod i nie bardzo działa $regfile = "m16def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Porta = Input : Porta = &B11111111 Config Portb = Output : Portb = &B11111111 S1...
No korzystałem z kodów w sieci i wiem jak odbywa sie pomiar temp przez DS18b20. Tylko najwiekszy problem mam z tym wyświelaczem. Nie wiem czy on musi być podłączony pod 1wire czy pod SPI. Dodam ze chciałbym zrobić coś podobnego do tego projektu: [url=]Link Ten kod do wrzuciłem do załacznika to moje połaczenie chyba 3 rozych kodow znalezionych w sieci...
Podłącze się do tematu bo coś nie idzie mi 1wire. Na reset układ reaguje prawidłowo. Chyba jednak coś sknociłem przy odczycie lub zapisie bajtu, cały czas dostaje dziwne (15, 143, 128, 248, etc) wartości MSB i LSB. Zwarcie lini do masy zwraca same 0, do vcc lub pozostawienie wiszącego: same 255 Dalass wydaje się reagować na zmiane temperatury. Przeliczania...
Tak przerwania mogą zakłócać komunikację 1wire. Na czas komunikacji z DSem blokuj przerwania.
Witam! Zlecę wykonanie układu pomiaru temperatury poprzez 2 czujniki DS18B20. Układ ma umożliwiać komunikację z nim za pomocą protokołu MODBUS RTU, bądź za pomocą stałej ramki ASCII. Komunikacja odbywać musi się za poprzez linię RS485 (najlepiej) lub RS232 - rozpatrzę i porównam oferty. Założenia: -Rozdzielczość pożądanego pomiaru to 4 bajty -Komunikacja...
witam serdecznie Tak używam przerwań (z TIMER0), ale są uruchamiane tylko gdy są potrzebne tzn. wykorzystuję do tego instrukcję Start/Stop Timer0. Co ciekawe ten fragment co wyżej to fragment większej części programu i jak zamienię pętle "do loop " na np. [syntax=vb] while a=0 i tutaj to co wyżej..... wend[/syntax] oraz dodam drugi warunek [syntax=vb]...
Trudno określić, co dzieje się wewnątrz układu. Mi ostatnio zdarzały się nawet sytuacje z uszkodzeniem procesora po przepięciach na linii 1Wire. Być może u ciebie też powstało jakieś przepięcie. U mnie pomógł układ zabezpieczający przed ESD DS9503.
Witam Mam następujący problem z termometrem DS18B20. Oto mój kod: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portb.6 , E = Portb.7 , Db4 = Portd.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 Config 1wire = Pinc.1 Deflcdchar 1 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32 Dim T As Single Dim...