No nic dziwnego, w ustaw_czas robisz call do wys_czas który wbrew obiegowej opinii wyświetla temperaturę;] i... ustawia kursor kilka spacji za *C :) a potem sobie reta do ustaw_czas gdzie już jak widać LCD "Ustaw czas" :) Ot i tajemnica;] Pozdro ;] Dodano po 1 PS lowerline sux, ja bym używał locateów na twoim miejscu ;-) Poza tym funkcje są fajnejsze...
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Jesteś jednym z pionierów bo sprzęt drogi i mało popularny, więc sam musisz sprawdzić co się dzieje. Pierwsze co bym sprawdził, czy piny IO działa OK - miganie LED, potem kup sobie jakiś analizator Saleae (klony na Allegro kilkadziesiąt PLN), w programie Saleae Logic masz dekoder 1-Wire, możesz podejrzeć co się dzieje na magistrali, czy to Arduino nie...
nie wiem czy coś ze mną nie tak czy z tym forum, ale piszę tą odpowiedź drugi raz, albo odpowiedziałem w innym temacie ... użyj tej funkcji, u mnie działa to jest dla DS18 S 20 (niepotrzebnie wkleiłem , ale niech już zostanie) float zamien_temp(unsigned char MSB,unsigned char LSB) { float ftmp; if(MSB==0x00)//dodatnia,lub 0 {...
Przy 1 urządzeniu na 1Wire nie ma potrzeby używać ani SearchROM, ani MatchROM, ani ReadRom, tylko wystarczy SkipROM. 1. Reset1Wire 2. Jeśli Reset poprawny to SkipROM (0xCC) i ConvertT (0x44) 3. Odczekanie czasu na konwersję 4. Reset1Wire 5. Jeśli Reset poprawny to SkipROM (0xCC) i ReadScratchpad (0xBE)
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
Moje doświadczenia z wifi, tymi modułami i gotowymi bibliotekami nie są zbyt dobre. Natomiast popinguj sobie, zobacz też czy z poziomu access pointa widzisz utratę połączenia (włącz może jakiś dodatkowy poziom logowania). Jest sporo kart wifi zasilanych z USB, więc i to powinno dać radę. A jak chcesz żeby ktoś oglądał kod, to wrzuć go w "syntax" wraz...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
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...
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
Jak zrealizować w esphome odczyt temperatury z ds18b20 tylko w czasie załączenia danego urządzenia. Również odczytane dane były wysyłane do HA tylko w czasie włączenia urządzenia i to w interwale czasowym np 5 sek.
Zbyt duzo razy widzialem zapewnienia, ze "wina w 100% nie lezy po mojej stronie", aby w nie uwierzyc :) Byc moze tak jest, pokazanie nam swojego kodu nie zaszkodzi, a moze ktos cos zauwazy niewlasciwego. No i nie napisales, czy inne funkcje (zapis/odczyt wewnetrznego EEPROM) dzialaja poprawnie.
85 ST jest wartością domyślną wpisaną do rejestru w którym przy kolejnych konwersjach DS wpisuje już zmierzoną temp i przy pierwszym pomiarze zawsze taka liczbę odczyta. Może gdzieś nie łączą przewody i czujnik traci na chwile zasilanie i wpisuje to wartość domyślną.
(at)opamp: rozkręciłem za pomocą wewnętrznego oscylatora do 8MHz (za pomocą mkavrstudio) i nic to nie dało. Po włączeniu watchdoga "ucina" mi kawałek temperatury, np. kiedy temperatura powinna wynosić 022.3 'C pokazuje mi się 022. albo 3 'C. Tak na marginesie to jednak 30 cm a 2 m to jest lekka różnica ;) (at)tronics: niestety nie pomogło (at)dondu:...
Witam. Mam problem z błędnym pomiarem temperatury. Termometr pokazuje temperaturę ok 56-58 stopni(?) w temperaturze pokojowej. Sprawdzałem na innym modelu i nadal mam to samo. Po dotknięciu temperatura wzrasta, więc prawdopodobnie nie jest to spowodowane jakimś nagrzewaniem się układu. Kod napisałem w oparciu o ten artykuł: http://www.jaglarz.com/ja/elektronika/ds...
Dołączam się do tematu bo mój problem jest podobny. Mianowicie, po złożeniu układu i podłączeniu, temperatura mierzona wyświetla mi 3,0 st C a nie 20 st C (temp. pokojowa). Nawet jak ogrzeję czujnik to wartości bardzo wolno się zmieniają ( nawet jak przyłożę lutownicę do czujnika to temperatura zmienia się z 3,0 do max 8,0 st C). Wszystko inne działa...
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Odczytaj_ds: 1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 T1 = T1 + 0.05 'T1 wartość temperatury xx.xx T1 = T1 * 10 'wartość całkowita...
Nie to sprawdzałem. Wygląda to jakby procedury odczytu DS-a działały bo ta temperatura wyświetlana -0.1 o tym świadczy. DS jest zasilany z 3,3V i wyczytałem że przy takim zasilaniu rezystor podciągający linie DQ ma mieć około 2k i taki mam. Ale z rezystorem 4,7k też nie działało. Gdzie to wyczytałeś? Datasheet nic na ten temat nie mówi, poza "Can be...
pewnie, że programowo można - ale podpowiem ci , że miałem podobny problem - jak pierwszy raz zrobiłem termometr i podłączyłem nawet 2 czujniki do jednej magistrali to jeden pokazywał prawie cały czas o 2st C więcej niż drugi ;) ... korygowałem to sobie programowo ale okazywało się po chwili, że ta różnica jest tylko przy temperaturach poniżej ok 30st...
Masz tu dokument z Texasa na temat zalet i wad różnych sposobów łączenia takich czujników: http://www.ti.com/europe/downloads/2-%20...
http://www.teslabs.com/openplayer/docs/d... Nie ma możliwości, żeby to nie pomogło.
Blad odczytu z DS18B20 objawia się odczytem temperatury -127 st., tyle, że może to również oznaczać błąd czujnika, brak łącznoeci itp., więc nie jest to jednoznaczne z brakiem zasilania. Pozdr
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
Witam próbuje obsługi 1-Wire na przykładzie termometra cyfrowego DS18B20, niestety odczytana temperatura nijak ma się do tego co powinno być, mianowisie dostaje same "1", Pliki biblioteki 1-Wire [syntax=c] #ifndef OWI_H_ #define OWI_H_ // Ustawienie pinu który bedzie pinem OWI #define DDR_OWI DDRD #define PORT_OWI PORTD #define PIN_OWI PIND #define...
main.c [syntax=c]#define F_CPU 16000000UL //definiujemy F_CPU na 16MHz #include <avr/io.h> #include <util/delay.h> #include <avr/io.h> #include <stdlib.h> #include "HD44780.h" #include "DS18B20.h" char str[17]=" Termometr "; int main (void) { double temp; /* W tablicy zapisywane będą dane odczytane z układu ds18b20 */ unsigned...
1. Trzeba uważać na funkcje delayms i delayus, ponieważ mają one ograniczenia - tzn. nie można tam wstawić dowolnie duże liczby. Szczegóły w delay.h 2. U mnie ciekawy problem się pojawił w czasie konwersji temperatury - ponieważ układ był zasilany pasożytniczo. Nieważne jak kombinowałem z pullupami - zawsze to samo. W końcu po wystawieniu "1" na nóżce...
Ten kod napisałem na podstawie dokumentacji temometru i dokumentu opisującego interface 1 wire od atmela: A do dokumentacji AVR-ka zaglądałeś :?: Zastanów się, czy można uzyskać niski stan na magistrali 1wire, jeżeli pin do niej podłączony jest ustawiony jako wejście :?: [syntax=c]unsigned char _DS18B20_ReadByte() { _DATA_DDR &= ~(1 << _DATA_WIRE);//...
Cześć, Ponieważ udało mi się poprawnie odczytać temperaturę z termometru cyfrowego DS18B20 na module prototypowym eXtrino XL z AtXmega128a3u na pokładzie - pragnę się podzielić tym minikodem z początkującymi osobami. Myślę, że informacje zawarte w tym przykładzie, pozwolą osobom początkującym (czyli takim co już potrafią migać diodą) na zrozumienie...
Możesz kolego napisać coś więcej ?? Dodano po 6 Przepraszam, że pisze drugą wiadomość pod rząd, ale możebyś także umieścił tutaj także kompilator kleina. ??
Czyli DS pewnie jeszcze zyje :) A czy na tej twojej uniwersalnej płytce zrobiłeś podciągnięcie do zasilania 1-wire tj. czy dałeś opornik podciągający np 3,3k od 1-wire do 5 V ??? pozdr KN
Uściślijmy jeszcze czy w kodzie który działa też nie masz wartości $framesize, $swstack i $hwstack? Rzeczy należy eliminować sukcesywnie. Dopisałbym te brakujące rzeczy od razu zamiast je podejrzewać... !EDIT! Zapomniałem o tym a już się w tej sprawie kontaktowałem kiedyś z Supportem :D Słowo Hbyte jest słowem używanym przez wewnętrzne procedury Bascom....
Nie używam Arduino i nie znam processing, ale na logikę rzecz biorąc, należy zmienną inString zadeklarować nie jako zmienną lokalną (wewnątrz funkcji) tylko globalną (na początku programu) - tak jak Serial myPort; Coś takiego: [syntax=objc]import processing.serial.*; Serial myPort; // The serial port: String inString; PFont f; void setup() { size(400,...
Na temat fuse bitów był osobny temat wałkowany i to dobrze ale narazie ich nie ruszaj bo "uwalisz" procka. DS-y są "wyczulone" na czas w którym następuje konwersja i jesli bedzie nieodpowiedni(wg noty 750ms) to DS moze wariowac i w ogole nie mierzyc(nie zdarzy wykonac konwersji). Jesli chodzi o ADC to w zasadzie różnica jest taka ze przy standardowym...
Spoko, zostaje jeszcze sporo pamięci flash i ram. Używam biblioteki Redlib nohost.
Oto odpowiedź: http://mikrokontrolery.blogspot.com/2011...
już chyba wiem jak policzyć temperaturę :) temperatura jest na 11 bitach (12 to znak) przykład: 2000 - 125 stopni 8 - x stopni x=(8*125)/2000=0,5 stopnia i to sie zgadza z tabelka :D czyli muszę teraz tylko połączyć MSB z LSB w 16bitow przesunąć w lewo o 4bity sprawdzić najstarszy bit znaku, a pozostałe 11 bitów pomnożyć przez 0,0625 i mam temperaturę...
Cześć, czy ruszyłeś z tym do przodu przez te parę lat?
Przykład z komentarzami: 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...
Witam. Ja kiedyś napisałem program który zawierał odczyt z ds18b20. 'tablica temperatury po przecinku Tabtemp(1) = 0 Tabtemp(2) = 1 Tabtemp(3) = 1 Tabtemp(4) = 2 Tabtemp(5) = 3 Tabtemp(6) = 3 Tabtemp(7) = 4 Tabtemp(8) = 4 Tabtemp(9) = 5 Tabtemp(10) = 6 Tabtemp(11)...
Praktyka mówi że 1wire ma jeszcze bardzo szybki reset. Tak że układ i2c <> 1wiire na pewno się wyrobi.
Podejrzewam, ze jest jakis bład w algorytmie interpretacji odczytanych ajtów z termometru. Z ciekawosci wlazlem na http://pdfserv.maxim-ic.com/en/ds/DS18B2... i jest tam tabelka przykładowych wskazań dla wybranych temperatur. Nie znając programu niemożliwe jest powiedzenie czegos wiecej. pozdrawiam
Przeczytać opis protokołu 1-wire? Generalnie odczyt zawsze jest z termometru wybranego poleceniem np. MatchRom. Czyli wysyłasz polecenie MatchROM, następnie ROMCode termometru, któy cie interesuje i dokonujesz odczytu.
Witam mamy taki przykładowy kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Porta.1 , Db7 = Porta.0 , E = Portd.2 , Rs = Portd.3 Config 1wire = Portd.0 Config Timer0 = Timer , Prescale = 1 Enable Timer0 Enable Interrupts On Timer0 Pobierz_temp Dim wire_read...
Masz podciąganie linii danych?
Mamy doświadczenia. Możesz np. zaadaptować kod z LPC17xx lub LPC11xx, który łatwo znajdziesz w internecie. Możesz też zaadaptować kod na UART, który podobno masz i który równie łatwo da się znaleźć.
Wszystkie "delaje" nalezy uzależniać od częstotliwości kwarzu a z doświadczenia wiem że odczyt DS18b20 mozna uzyskać prawie na dowolnym F oscylatora.
Witam. Proponuję wszystkie operacje przeprowadzić na przerwaniach. Czyli na przykład Przerwanie od Timer 1 steruje wyświetlaniem znaków co określony czas wyświetlasz kolejny znak czas dobierasz na tyle krótki żeby nie widzieć migotania, Przerwaniem od Timer 0 odmierzasz czas dla odczytu temperatury. Pozdrawiam
Witam, podłączę się pod ten temat ze swoim problemem. DS18B20 wskazuję mi temperaturę ok. 17C, natomiast w tym samym momencie termostat pieca CO wskazuje ok. 20C. Czujniki położone są obok siebie, CRC się zgadza, wskazania temp. zachowują się logicznie tzn. po dotknięciu DS'a temp. się zwiększa, a następnie spada poczynając od najmniej znaczącej pozycji,...
Może ten się nada. http://www.polpunkt.pl/termometr-wifi-ds...
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...
Tu potrzebna jest zmiana koncepcji rozwiązania. Zacznij od skrócenia przerwania obsługi wyświetlacza do jakichś max. 10..12 linii. Co sekundę w obsłudze wyświetlacza inicjuj start pomiaru temperatury, a po np. 800 ms inicjuj odczyt temperatury z czujnika. Całą obsługę DS18B20 zrób w postaci automatu w przerwaniu drugiego timera. Wtedy obsługa DS nie...
usunąłem jedno zero dalej lipa
Jestem w potrzebie skonstruowania rejestratora parametrów pracy. Ma odpowiadać za monitorowanie napięcia, natężenia i temperatury. Będzie współpracował z laserem diodowym. Bardzo przydatnym byłaby możliwość utworzenia i zapisu wykresu z podanymi parametrami. Przekopałem multum projektów na Arduino, lecz nie znalazłem żadnego z tymi czterema warunkami....
Ten plik o ile się nie mylę to jest sama biblioteka, w dodatku niekompletna ponieważ kompilator wywala całą masę błędów :/ Edit. I jeszcze jedno znalazłem kolejny przykład spróbowałem skompilować i tym razem dzieją się takie cuda: http://scr.hu/8e6i/jt5tp kody: DS18B20.h [syntax=c]#ifndef DS18B20_H #define DS18B20_H /* DS18B20 przyłączony do portu PA0...
Kolego (at)StaruchPl , zobacz jak wygląda wykres temperatury kolektora słonecznego ciśnieniowego 200l napędzanego dodatkowo 1kWp paneli fotowoltaicznych, przy odczytach temperatury z DS18B20 co 60s. https://obrazki.elektroda.pl/3378505800_... Wykres jest łagodny, spokojnie wystarczy taki interwał, nie ma sensu częściej.
dziwny problem .. AAaaa .. a czemu skoro zmniejszyłeś rozdzielczość do 9 bitów to robisz wartość / 16 ?? / czy nie trzeba by odpowiednio zmienić działki .. ?? / Masz tu moją bibliotekę dla wielu Ds-ów ( używałem 8 ) chodzi bardzo sprawnie - miałem problemy z zakłóceniami / siały mi falowniki /. Otrzymujesz tablicę z wartościami temp w dziesiątych częściach...
Jeśli masz możliwość - to sprawdź na krótszym kablu (choć wątpię aby to było problemem). Spróbuj zwiększyć czas między pomiarem a odczytem.
Ten kod już raz pojawił się na elektrodzie: http://www.elektroda.pl/rtvforum/topic16... Z konkluzji zawartej w ostatnim wpisie wynika iż są w nim błędne uzależnienia czasowe. Pozdrawiam JarekC
Waitms 750 musisz mieć przed odczytem.
Masz tu procedurkę odczytu i wyliczenia temperatury. Prościej się nie da. Nie wiem w czym piszesz, ale sama procedura (bascom) jest czytelna.
Witam, mam potrzebę odczytu temperatury z kilku (2-4) czujników w mocno zakłóconych środowiskach. Urządzenie będzie implementowane w różnych miejscach, a chcę zbudować uniwersalne urządzenie. Długość przewodów to ~1-30m Moim procesorem jest Raspberry PI, który ma wyjście 1-wire, więc naturalnym wyborem jest czujnik DS18B20, który też pracuje na 1-wire....
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ą...
Jeśli chodzi o ID to chyba najprościej będzie zrobić funkcje i z głównego programu przekazywać do niej ID czujnika, natomiast funkcja będzie zwracać np bit 1/0 OK/ERROR. Podobnie chyba można zrobić z odczytem temperatury.
Dalej to samo... A czemu miało by być inaczej :?: Patrząc na Twój kod , dochodzę do wniosku , że: a) nie czytałeś dokumentacji DS18B20 b)czytałeś , ale nie zrozumiałeś Dlaczego odczytując dane o temperaturze , odczytujesz tylko 1 bajt :?: Pisałem już kilka razy na tym forum , że DS18B20 standardowo zwraca dane w postaci 16-bitowej liczby typu signed...
Dobra, poradziłem sobie inaczej. Użyłem timera, ale nie korzystałem z przerwań, tylko ustawiłem częstotliwość inkrementacji timera na 1us i czekałem, aż wartość timera przekroczy zadany czas ;) Na potrzeby 1-wire wystarczyło :)
Witam, mam problem z obsługą DS18B20. Plik main.c [syntax=c]/* * main.c * * Created on: 19 paź 2014 * Author: Kamil */ #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h> #include "USART.h" #include "DS18B20.h" int main(void){ unsigned char ucReset; char cTemperatureH = 0, cTemperatureL = 0; float...
Witam ! N apisałem taki program: $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output : Portd = 255 Config Portb = Output : Portb = 255 K1 Alias Portd.0 K2 Alias Portd.1 K3 Alias Portd.2 K4 Alias Portd.3 K5 Alias Portd.4 K6 Alias Portd.5 K7 Alias Portd.6 K8 Alias Portd.7 Config 1wire = Portc.5 Dim Nr_kol As Byte , A As...
... do czego służy przycisk... Wciśnięcie tego przycisku, powoduje jednokrotne wykonanie programu głównego. DS1990A - odczytanie ID DS18B20 - odczyt temperatury
odczyt temperatury z DS18b20, dokładność do 0,5 stopnia. A o jaką konkretnie funkcję z libm chodzi? Dziękuję, zaznajomię się z tematem.
Tak jak wyżej napisał kolega Szyszkownik Kilkujadek oba czujniki zamontuj obok siebie, być może niewielka odległość oddalenia czujników wpływa na inny odczyt temperatury. Możesz też wykonać następny termometr i badać temperaturę ! Potem następny i następny. Jednak najpierw " wspólna kołderka".
a nie lepiej podłączyć wszystkie czujniki do jednej szyny? Wydaje mi się, że tak jest łatwiej i mniej będzie problemów.
A nie wystarczy np. zrobić _delay_ms przed każdą funkcją odczytu? Jak odczytuję z ds1302 i jak odczytuję z ds18b20?
Witam. Ja wykonałem ten termometr zgodnie z tym programem i u mnie działa. Jak kolega pisał wcześniej sprawdź częstotliwość zegara mikro kontrolera z programem. Jeżeli kupiłeś nowy mikrokontroler to on ma ustawione 8 MHz/8 = 1MHz, czyli w programie musisz mieć ustawione 1 MHz. Ja mam problem z podobnym termometrem ale z książki "Programowanie mikrokontrolerów...
Witajcie, chciałbym lekko odgrzać kotleta i poprosić o wskazanie błędu przy próbie wyliczenia temperatur ujemnych. Odczytuję czujnik DS18B20 w maleńkim ATTINY13 (zmienne float właściwie odpadają) i co około sekundę wysyłam wynik poprzez UART. Dla temperatur dodatnich - dzięki uprzejmości p. Podkalickiego i jego "odchudzonej" biblioteki DS18B20 działa...
Witam, bardzo potrzebuje pomocy, jestem poczatkujacy a udalo juz mi sie zlozyc taki zegar. Moglby ktos mi pomoc w dopisaniu do tego istniejacego kodu zegara, odczyt temperatury na ds18b20? W załączniku mam sam kod temperatury w kawalku (niekompletny), ktory przeslal mi ElektroTME. Nalezaloby to polaczyc badz napisac cos podobnego. Z gory dziekuje za...
dopinam się do tego tematu. Mam pytanie, czy można wykorzystać odczyt temperatury przez DS18b20 do sterowania wypełnieniem PWM do regulacji obrotów wentylatora. Jaka postać odczytu temperatury nadaje się do użycia jej jako impuls do sterowania . podobnie jak w opisie w książce p.Wiązanii, tylko zamiast sterowania przyciskami +/- ma być sterowanie z...
Panowie naprawde nie wiem czemu mi nie dziala termometr, wyswietla 0 na wyswietlaczu 7seg. Sygnal resetu dziala poprawnie, jest odzew od DS nadawanie bitow tez dziala bo widze na oscyloskopie nadawane ramki po resecie, ale wyswietla 0. Mysle ze mam gdzies blad w czasach ale nie potrafie go odnalezc siedze juz 3 dzien. [syntax=c]#include <avr/io.h>...
Czy moze ktos ma juz gotową procedure do odczytu temperatury z termometru DS18B20 w bascomie ?
Witam wszystkich! Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. ... A co Ty za "algebrę" spłodziłeś ;) , a na dokładkę jeszcze Fusing :?:. Chcesz strzelać z armaty do wróbla :?: Takie "cuś" , robi sie niezwykle prosto: '*********** DS18B20 12 bit *********************** Dim Tds As Integer,Sds...
Witam! Mam taki kod, niestety nie dziala poprawinie, dostaje temperature, ale wyswietlacz szaleje wyswietla jakies dziewne znaki co jakis czas, po jakims czasie gasnie: DEVICE = 16F874 XTAL = 4 ALL_DIGITAL = TRUE LCD_DTPIN = PORTD.0 LCD_RSPIN = PORTE.0 LCD_ENPIN = PORTE.2 LCD_INTERFACE = 8 LCD_LINES = 2 LCD_TYPE = 0 TRISD = 0 TRISE = 0 TRISB = %00001111...
Witam tutaj udało się im zrobić odczyt temperatury z ds18b20 w vhdlu więc na pewno ci to pomoże :)[url=http://www.elektroda.pl/rtvforum/... pozdrawiam Dawid
Może ten artykuł wyjaśni Twoje wątpliwości: http://mikrokontrolery.blogspot.com/2011...
Hej Wykorzystywałam do obsługi czujników przez avr bibliotekę : http://siwawi.bauing.uni-kl.de/avr_proje... chcąc uruchomić ją na xplained ,czujnik podłączony do PC1 + rezystor pull-up 2k do 3.3V,zmieniłam : [syntax=c]#define OW_GET_IN() ( PORTC.IN & PIN1_bm ) // odczyt wejscia #define OW_OUT_LOW() ( PORTC.OUTCLR = PIN1_bm ) // ustaw wyjscie...
Urządzenie dalej przy pierwszym uruchomieniu programu odczytuje 85'C. Nie może być inaczej, skoro pierwsze czytanie temperatur wykonujesz przed wysłaniem polecenia konwersji ;)
Kasować licznik- a nie przerwania- na początek. Kasować licznik i musisz zastosować dwie flagi, inaczej nie da rady. Jedna sprawdzająca czy już możesz odczytać dane, drugie sprawdzająca czy już możesz wysłać żądanie odczytu:)
To mój pierwszy raz z DS18B20. Mam problem z odczytem temperatury z DS18b20. Pierwszy odczyt z układu daje warość 0x0550 czyli defaultowa wartosc po resecie. Jednak nastepne odczyty dają wartość 0x07FF. WTF? Poniżej listing. Procek taktowany 16MHz z zewnętrznego oscylatora. (F_CPU zdefiniowane na 16000000) int main () { uint8_t a=0; uint8_t...
no tak, z tego co pamiętam to w tym czujniku drugi bajt jest bajtem znaku (nie ma tam temperatury) :)
Skonfiguruj prawidłowo magistralę 1wire, czasem może być problem z krótkim opóźnieniem. W dokumentacji pisze żeby czekać 0,5s, ale czasem trzeba więcej. Wydłuż czas opóźnienia, a powinno chodzić. Pozdrawiam
Gdyby nie biblioteka "1-wire" to obciążenie procesora byłoby bliskie zeru. Kernel ma obsługę 1wire i odczytu temperatury z DS18B20, wystarczy załadować odpowiedni moduł modprobem, więc nie trzeba robić tego w userspace.
Hi, CRC nie sprawdzam, ale jestem w trakcie dopisywania mod wziety z http://pdfserv.maxim-ic.com/en/an/app162... W celu ulatwienia sobie zycia na poczatek obliczanie temperatury z dokladnoscia do 0.1 (bit konfiguracyjny na taka wskazuje) kod wyglada tak: res=temp_msb*256 + temp_lsb; res=(float) res/16.0; sprintf(str,"TEMP: %2.2f",res); Dziwna sprawa...
niedawno stworzyłem sobie programik do przetestowania programu na pc zanim wgram go do avr. i masz tu go zmodyfikowanego (dev c++) #include <cstdlib> #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; //------------------------------------- int main(int argc, char *argv[]) { int...
Witam! Pracuję na AVR, piszę w WinAVR w C+. Otóż gdy temperatura schodzi do zera, to w momencie przejścia przez 0stC pojawia się -0.1, a potem już leci do góry i pokazuje wartość bezwzględną temperatury (znika -0.1 i dalej są same dodatnie wartości). Szukałem tutaj sporo, ale wiekszość jest pod bascoma, a ja piszę w C+... Kod (ściągnęty + oryginalne...
Witammój problem polega na tym że podłączyłem do megi termometr i po wywołaniu tego kodu im 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 * 1 Sub Temp 1wr 'podprogram 1wr 1wwrite &HCC 'komenda skip ROM 1wwrite &H33 'komenda convert T Waitms 250 Waitms 250 1wr 'podprogram 1wr 1wwrite &HCC...
Problem jest w sprzęcie a nie w programie. W układzie brakuje kondensatorów ceramicznych 100nF na pinach zasilających uC, LCD, czujnika, wejściu ADC. Nie widzę też filtru na AVCC oraz jakiegokolwiek tantala/elektrolita na zasilaniu. Popraw zasilanie a zamiast analogowego czujnika użyj cyfrowego np DS18B20 na 1Wire.
A dokładnie w TSR2 jest DS1820 a ja wpiąłem DS18B20 czyli jedna nie ten czujnik. Zakupiony i wpięty czujnik DS18S20 z oznaczeniem na czujniku DS1820 - działa elegancko.
Piszesz DS1820 a czytasz dokumentację DS18B20, a te czujniki różnią się rozdzielczością. DS1820 ma 0,5 stopnia.
Mam problem dotyczący DS18B20 a mianowicie proszę o przykładowy program w którym ustawia się bity konfiguracyjne odczyty temperatury. Z konieczności wymieniełem DS1820 na DS18B20 i nie chcę zmieniać programu chodzi mi oto w jaki sposób ustawić 18B20 do odczytu z rozdzielczością 9 bitów (dokładność odczytu 0,1 C) Z góry wielkie dzięki
A z jaką dokładnością mierzysz tą temperaturę ?
Czujnik Dallas DS18B20 jest czujnikiem z magistralą 1-Wire, komunikuje się z procesorem jednym przewodem, a możliwe jest podłączenie dużej ich ilości równolegle. Użytkownika powinno interesować, jak adresować ten czujnik, jak odczytać jego ID i dane o temperaturze. Do czujnika ds18b20 da się wpisać chyba tylko poziomy alarmów, więc raczej nie ma mowy...
ds18b20 odczyt temperatura bascom ds18b20 odczyt temperatura ds18b20 odczyt ujemny temperatura
właściwości karty sieciowej drżeć silnik wariuje klawiatura
moduł komfort termet wyłączniki dotykowe
Audi A3 1.8T: Siła dokręcania głowicy i procedura Jak włączyć koło sterowe w Solid Edge?