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...
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Hm. To pewnie będzie za proste. [syntax=c] float temperatura = ds18...(); can.write(&temperatura, sizeof temperatura); [/syntax]
Oto odpowiedź: http://mikrokontrolery.blogspot.com/2011...
Potem, jak chcesz to dziel przez 10 i na float ... Float? O zgrozo 1,5kB w plecy :) Tak to się robi: http://mikrokontrolery.blogspot.com/2011...
Google->avr printf float.
Temperatura jest jako float. Wyświetlacz 2x16 przez I2C z biblioteką <LiquidCrystal_I2C.h> Dziś faktycznie przetrzepię wyniki w serial monitorze.
Niestety nie potrafię. Trzeba by przerobić bibliotekę DallasTemperature.h (tak mi się przynajmniej wydaje) a na to jestem za krótki. Czym zastąpić float?
Niedawno napisałem to samo używając float tylko dla czujnika temperatury DS18B20. Urządzenie różni się czujnikiem jedynie. Nic do obsługi sprintf specjalnego nie dodawałem. Co trzeba dodać string.h, stdio.h Tutaj jeszcze próbowałem z includowanym float.h Też nic nie daje. Ja pracuję na Eclipse.
(...) Blynk.virtualWrite(VPIN_coolerbtn, coolerState); } } if (modeState == 0) { display.setTextSize(1); // Draw 2X-scale text display.setTextColor(SSD1306_WHITE); display.setCursor(32, 45); display.print("Manual Mode"); display.display(); } delay(3000); } Witaj, Wygląda na to, że kod, który dostarczyłeś, jest niekompletny. Mogę jednak podać Ci podstawową...
obsługa czujnika, formaty temperatury jak i zapis do pamięci nieulotnych był już tu setki razy przerabiany. Float do przechowywania temperatury z DS18B20 to przerost formy nad treścią. To się wszystko robi na zwykłych intach, niezależnie czy wyrzucasz to na wyświetlacz, czy nie.... Uzyj szukaj !
Możesz zrobić 2 próby (w dolnej wersji). Zdefiniuj float temperatureC jako volatile Zamiast wysyłać temperaturę, wysyłaj zmienną za każdym razem zwiększaną, w ten sposób oszacujesz czy funkcja się wywołuje, czy pakiety dochodzą po kolei i czy problem ogranicza się do odświeżania odczytu z czujnika. Nie używałem Dallasów, ale w przykładach request jest...
Witam, Obecnie jestem w fazie tworzenia kontrolera do terrarium który odpowiadałby za wilgotność pory dnia oraz temperaturę. Niestety utknąłem w martwym punkcie, otóż mój program raz na jakiś czas się zawiesza i nie jest to cyklicznie np. co 2 godziny. Wyczerpała się już moja wiedza ale może któremuś z was uda się odnaleźć błąd w kodzie, będę bardzo...
Co do DS1820 to strzelam że trzeba rzutować temp1 i temp2 na float temp=(float)(temp1+(temp2*256))/16; czyli temp=(float)((float)temp1+((float)temp2*...
jeśli chodzi o ujemne temperatury to ta funkcja sobie poradzi: float zamien_temp(unsigned char MSB,unsigned char LSB) { if(MSB&0x80)//ujemna temp { LSB=~LSB +1; MSB=~MSB; unsigned int suma = LSB + (((unsigned int)MSB)<<8); return ((float)suma) * -0.0625; } else//dodatnia...
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 {...
A propos float oraz wyświetlenia temperatury na LCD: http://mikrokontrolery.blogspot.com/2011...
Witam chciałbym zaprezentować układ pomiaru temperatury z wielu czujników Ds18b20 ,na razie czterech z jednego modułu ESP8266. Projekt nawiązuje do tego rozwiązania : https://www.elektroda.pl/rtvforum/topic3... Tamten projekt już nie będzie rozwijany w tym natomiast wprowadziłem wiele zmian przygotowując sobie grunt pod przyszłą rozbudowę i...
Kolega słowem nie wspominał o ds18b20 :). Ale faktycznie warto przejrzeć typy- nie potrzeba 16 bitowego inta na wartosci w zakresie 0-255 itp.. Wrzuć kod, będzie moźna rozmawiać konkretnie. Pozdrawiam. Ale kolega się domyślił, że temperatura idzie po DS18B20 ;-) Float to nie 1.5 KB, a 30 bajtów. Zmienne wyglądają u mnie tak: A jak ci wyszło owe 30...
ale dlaczego nie float? Bo float to zabójstwo zasobów takiego małego 8-io bitowego mikroklocka. A w 99% przypadków obejdzie się bez float. Przeczytaj [url=http://mikrokontrolery.blogspot.com... opis odczytu temperatury z czujnika cyfrowego DS18B20 bez użycia liczb zmiennoprzecinkowych. Bardzo ładnie opisane...
Jeśli chcesz już na piechotę liczyć to pamiętaj, że w U2 jest zapisana cała liczba, a nie tylko wartości całkowite. Czyli chcąc wyświetlić tym sposobem liczby ujemne musisz ją zanegować, dodać jedynkę, wyświetlić znak "-" i dopiero Twojego sprintf'a. Nie wiem co to za procesor i jak bardzo zależy Ci na oszczędności miejsca, ale jeśli nie bardzo to najprościej...
A propos tego fragmentu: [syntax=c]float temp=0; temp=(float)(temp1+(temp2*256))/16; dtostrf(temp,1,1,buf); lcd_puts(buf); [/syntax] http://mikrokontrolery.blogspot.com/2011...
Jak wpisałem w googlach cannot find -llm to dostawałem podpowiedź "Czy chodziło Ci o: cannot find -lm " czyli to co napisał Newbieman. A właśnie lm miałem dodane do bibliotek http://obrazki.elektroda.pl/7996331100_1... Teraz co doszedłem do tego że LPCXpresso daje samo l przed nazwą biblioteki, jak usnąłem l i zostawiłem tylko m projekt...
aaaaaaaaaaaaaaaaaa macie: (ds18b20, 16 bit) public class Calculate { public static float Temperature(int temp_lsb,int temp_msb){ temp_lsb = temp_lsb + ((temp_msb&0x07)<<... if(temp_msb >= 8) temp_lsb = temp_lsb - 0x0800; return (float)temp_lsb/0x10; } }
odczyt temperatury z DS18b20, dokładność do 0,5 stopnia. A o jaką konkretnie funkcję z libm chodzi? Dziękuję, zaznajomię się z tematem.
Poza tym warto się zastanowić czy konieczne jest korzystanie z typów float do tak prostych celów??? Przecież w 100% można się obejść bez nich robiąc proste działania na liczbach całkowitych. W zależności od tego ile masz miejsc po przecinku w temperaturze to przez tyle pomnożyć liczby składowe w tym działaniu. Np jeśli będą dwa miejsca po przecinku...
To, że makro (bo to nie jest funkcja), jako argument ma float nie ma znaczenia, przy podawaniu opóźnienia jako stałej. Nie rozumiem co masz tu na myśli. Tam nie ma żadnego float. Jest double. Mówię o funkcjach _delay_ms i _delay_us.
typ float chyba powinien być.. Te czujniki zapisują dane z przecinkiem ze wzgledu na ich dokladnosć do 0,1 albo 0,5 st c.
Przyjąłem że masz przycisk chwilowy a przekaźniki sterowane stanem wysokim. Tutaj poprawki : [syntax=c]#include <OneWire.h> #include <DallasTemperature.h> #define PIN_SENSOR 7 // pin do ktorego podloczono DS18B20 #define PIN_PK1 4 // pin sterujacy przekaznikiem 1 #define PIN_PK2 5 // pin sterujacy przekaznikiem 2 #define PIN_PK3 6 // pin...
A co to za cudaczne obliczenia :wink: ... unsigned char wynik1=0; unsigned char wynik2=0; wynik1=read1w(); wynik2=read1w(); reset1w(); float temp=0; if((wynik2)!=0){ //temp ujemna wynik1=~wynik1; temp=wynik1+1; //dlaczego /2 i gdzie się podział wynik2 ? temp=-temp/2; //??? } else{ //temp dodatnia...
Problem wynika stąd, że liczby temperatury gdy zmieniają się z 4-cyfrowej na 3-cyfrową to całość przemieszcza się pozostawiając po sobie znak stopnia. Pamięć wyświetlacza nie jest czyszczona za każdym razem kiedy wysyłana jest nowa wartość i jeżeli jest krótsza to nie nadpisuje ona całości dłuższego napisu i zostają po nim ślady. Rozwiązaniem może być...
(...) t szerokosc wysokosc temp display.println(temp); display.println(" "); display.drawRect(123,30, 5, 5, WHITE); // to jest od celsjusza znaku display.setCursor(110,25); display.setFont(); display.display(); Blynk.virtualWrite(V2, temp); //sending to Blynk app delay(5000); } Zauważyłem, że pomimo zastosowania `dtostrf(temp, 4, 2, temp_display);`...
Kwestia połączeń jest raczej mniej prawdopodobna, bo błędny wynik oznaczałby błędy transmisji, a te okresowo powodowałyby "przeinaczenie" komend i brak poprawnej komunikacji z sensorem (co przy dobrze napisanej obsłudze 1wire wyrzuciłoby komunikat o błędzie). Tutaj jest kwestia tylko samego wyniku i właśnie przy samej konwersji szukałbym przyczyny....
Powyższe funkcje będą zawsze kiepsko działać. OW jest dostosowana do zmiennych timingów, jak popatrzysz w nocie to tolerancje są spore. W efekcie należy zawsze czekać na powrót magistrali do stanu recesywnego, aktywnie sprawdzając jej stan, a nie wrzucać jakieś magiczne opóźnienia. To dotyczy reset pulse, presence pulse, oraz sytuacji odbierania bitów....
Ja pisze też w Basicu lecz na PIC'i i robie to tak: 1. Czytam wartość z czujnika 2. Podstawiam pod zmienną FLOAT 3. Zmienną mnoże przez 0.0625 4. Wyświetlam z dokładnością do jednego miejsca po przecinku i chodzi dobrze.
Witam. Mam takie zadanie, by zdziałać regulację temperatury i sterować zarówno wentylatorem jak i ogrzewaniem. Wymyśliłem na razie coś takiego: [syntax=c] /* Regulacja temperatury */ void regulacja_temp(uint8_t temp_cale,uint8_t temp_przecinek) { float temperatura; float uchyb ; float histereza=0.5; temperatura=temp_cale+(temp_przecinek/10... uchyb=temperatura-temp_zadana;...
Czesc wszystkim, Mam problem z poprawnym działaniem termometru na 7-segmentowym wyświetlaczu. Załączam film - no nie chce się bardzo rozpisywać. Generalnie to nic złego w bibliotekach multipleks. Coś z kodem jest nie tak prawdopodobnie w dsb1820. Poniżej załączam kod. Proszę o pomoc. Pozdrawiam. Dodam tylko, że temperatura jest wyświetlana poprawnie...
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ć...
ad 1. Nie nadają się. Policz ile instrukcji MCU wykonuje w czasie 1-3 us, a następnie ile trwa wykonanie przerwania i obsługa handlera. Zamiast przerwań stosuje się interfejs USART - można nim precyzyjnie i sprzętowo odmierzać czas. ad 2. Są dokładne i jak najbardziej nadają się. Zakłądając oczywiście, że procek nie jest taktowany np. 1MHz. ad 3. Nie...
Witam jakiś czas temu kupiłem na Allegro wyświetlacz VFD od kasy fiskalnej model Fujitsu VF60. Postanowiłem zrobić na nim termometr jednopunktowy z czujnikiem DS18B20, po rozkręceniu wyświetlacza okazało się że jest to wyświetlacz z interfejsem UART i pojawił się problem. W sieci jest sporo projektów termometrów ale wszystkie opierają się na tradycyjnym...
Swego czasu chciałem porównać czujniki z Chin DHT22(AM2301) 5szt. oraz DS18B20 10szt. Złożone na stykówce i logowanie do karty SD #include <SPI.h> #include <SD.h> #include "DHT.h" #include <OneWire.h> #include <DallasTemperature.h> const int DS18B20Pin = 4; OneWire oneWire(DS18B20Pin); DallasTemperature ds18b20(&oneWire);...
Dzięki! Szczerze mówiąc, nie zauważyłem tego. Użycie poniższego rozwiązania naprawiło problem, teraz poprawnie uruchamia powtarzające się zdarzenie: backlog startDriver DS1820 5; waitFor WiFiState 4;waitFor MQTTState 1; addRepeatingEvent 60 -1 publishFloat DS1820Temp $CH5; OpenBelken FW robi to, co obiecał. Dane są wysyłane do właściwej kolejki/tematu...
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...
Spróbuj tego : [syntax=c] // wgrany na esp8266 z czuinkiem temperatur DS18B20 zapis na server //sprawdzony działa prawidłowo #include <ESP8266WiFi.h> #include <OneWire.h> #include <DallasTemperature.h> #include <ESP8266HTTPClient.h> extern "C" { #include "user_interface.h" } #define WiFiSSID "DWRgjgjwz" #define WiFiHaslo "eeeeeeee"...
Powiedzcie mi proszę co w moim przykładzie jest nie tak. Temperatura się wyświetla w obydwóch polach na wyświetlaczu, ale naprzemiennie. Jak zrobić żeby jedna była na jednym a druga na drugim? [syntax=c]#include "Nextion.h" #include "NexText.h" #include "NexGauge.h" #include <OneWire.h> #include <DallasTemperature.h> OneWire ds(7); // deklaracja...
tutaj [syntax=arduino]float temperature = static_cast<float>(static_cast<... * 10.)) / 10.;[/syntax] masz odczyt temperatury od razu zaokrąglonej do jednego miejsca po przecinku do zmiennej temperature. Presentation wykonuje się raz na początku, potem...
...Zastanawiam się czy da się jakoś wyświetlić przecinek z infromacji które przesyła ten układ ... Da się , ale to kosztuje 1.5kB flasha //... #include <stdlib.h> //... dtostrf((float)((sta... ); Chyba "taniej" wychodzi "ręczne" formatowanie ;) Piotrek
Dzięki zumek -- ale tyle czasu nikt nie odpowiadał, że zagoglowałem się na śmierć prawie i w końcu znalazłem już teraz super jak dla mnie rozwiązanie.... nie dość, że działa sprawnie i szybko wyszukiwanie urządzeń na magistrali - to jeszcze zawsze ładnie sprawdzana jest crc8 - a do tego co ciekawe automatycznie rozpoznawanie czujników DS1820, DS18S20...
Jeżeli kolega może podłączyć kwarc 16MHz, to po powrocie z pracy mogę załączyć sprawdzony program termometru z atmegą 32, wspomnianym kwarcem i obsługą LCD 2x16. Układ DS18b20, jak inne układy 1-wire wymagają bardzo dokładnych czasów, żeby się poprawnie skomunikować. Ja też trochę powalczyłem zanim zobaczyłem prawidłową temperaturę. Zgodnie z obietnicą:...
Możesz odczytać temperaturę i sprawdzić czy wartość ma sens. Możesz też wcześniej sprawdzić czy czujnik odpowiada na określony adres. W przykładach powinien być sposób użycia opisany. Dodano po 31 Jest float odpowiednim typem dla regBank.set()?
TRIS w avr to o ile dobrze znalazłem DDR. Przerobiłem kod według tego co mi podałeś - niestety nadal na LCD -0.1 Czujnik mam podpięty do portu PD7 Kod wygląda teraz tak: [syntax=c] void show_new() { char cStringBuffer[8]; char cTemperatureH=0, cTemperatureL=0; float fTemperature=0; for (;;) { OWReset(PORTD7, DDRD7); OWWriteByte(0xCC, PORTD7, DDRD7);...
Zamieść najpierw cały kod i układ w jakim mikrokontroler pracuje. Dodano po 2 Zaznacz co to znaczy, że wynik jest błędny, bo takie równanie można na nieskończoność sposobów rozwiązać. Podaj jakiś przykład. Może Ty źle obliczyłeś? I jaki jest ten błędny wynik. Można się domyślać , że "Byte_0" ma rozmiar bajtu, po "0.0625" można się domyślać , że chodzi...
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...
Ad1. Znalazłem rozwiązanie mojego problemu. Ad2. Niestety nie znalazłem tego czego szukałem, samo stworzenie tablicy i wyświetlenie tego co napisze nie jest problemem najgorzej z wyświetleniem otrzymanej temperatury poniżej zaprezentuje kawałek kodu. fTemperature=(float)(cTemper... dtostrf(fTemperature,1,1,cStringBuff...
Witam. Przewertowałem juz cały internet i elektrodę. Nie jedna osoba ma ten problem co ja lecz gdy już znajdą rozwiązanie to nie piszą co było nie tak. Do atmegi8 podłączony mam czujnik ds18b20 - podłączenie prawidłowe z rezystorem 4,7k. Problem polega na tym ze dwa pierwsze odczytane bajty zawierające temperaturę to same jedynki(). Poniżej pokazuje...
Na wyświetlaczu mam górny rząd prostokątów. Co jest nie tak w kodzie? [syntax=arduino]/* * Połączenia: * * 1. Wyświetlacz LCD 2x16 po I2C: * - VCC: 5V (pin Arduino 5V) * - GND: GND (pin Arduino GND) * - SDA: A4 (pin Arduino A4) * - SCL: A5 (pin Arduino A5) * * 2. Czujnik DS18B20: * - VCC: 5V (pin Arduino 5V) * - GND: GND (pin Arduino GND) * - Data:...
Hej. zumek pomógł mi w podobnym problemie. napisał cos takiego: unsigned char wynik1=0; unsigned char wynik2=0; wynik1=read1w(); wynik2=read1w(); reset1w(); float temp=0; temp=wynik1+(wynik2*256); temp=temp/16; genialnie proste, a działa na ds18B20. Ja mialem kod od 18S20 i tez nie chciało mi mierzyć dobrze temperatury. aha i ja bym podłączył zasilanie...
Wydaje mi się że gdzieś tu siedzi pułapka: temp = (float)(temp1+(temp2*256))/16; Ale może mi się tylko wydaje. temp1 i temp2 są 8-bitowe char. Może powinny być int. Ale może mi się tylko wydaje.
Rozumiem, jest problem z kompilacją. Zakomentowałem rzeczy związane z DHT i wpisałem wartości wysyłane do chmury na stałe (tam możesz zmodyfikować aby wprowadzić wartości z DS18B20). Wilgotność 35.0% i temperatura 25.0C. Usunąłem literówkę i kod się kompiluje, ale czy działa tego nie wiem. [syntax=c]#define BLYNK_PRINT Serial // Comment this out to...
Na początek witam wszystkich. Potrzebuje pomocy w rozwiązaniu mojego problemu odnoście cyfrowych czujników temperatury oraz czujników wilgoci. Osobno fajnie chodzą, problem pojawia się w chwili kiedy chciał bym żeby działały w jednym programie. Poniżej mój program [syntax=c]#include <Timers.h> Timers timer(2); #include <OneWire.h> #define...
Witam tak dla testu chciałem kompilować kod który zamieściłeś ale niestety się nie da wywala błędy. Jak tu kolega powyżej napisał - sprawdź czy wybrałeś dobrą płytkę lub pokaż błędy. Dodano po 4 Dobra praktyka nakazuje, aby w C/C++ nie używać operatorów porównania (==) dla wartości typu float. Zagłębiłem się trochę w temat i jestem chyba bogatszy o...
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...
Wklejam funkcje których ja używam i działają w porządku. W moim wypadku jest to osiem czujników na jednej linii więc dla innej wartości też raczej nie będzie problemu. ID pobieram tylko przy jednym czujniku obecnym na magistrali. unsigned char get_onewire_id(void) { int n; RESET_PULSE(we); onewire_send_byte(0x33); for (n=0;n<8;n++)...
Witam ! temp = ((~scratchpad[1])*16... + (((~scratchpad[0]... temp_calosci = temp; poprzecinku = (temp - temp_calosci)*10; // dzięki temu można pozbyć się minusa gdy jest-0.0625 st.C bo i tak wyświetla // do częsci dziesiętnych więc byłoby -0.0 st C <-- troche bez sensu if((temp_calosci+poprzecinku)...
Odczyt temperatury 85,0 stopnie jest to informacja ze układ został zresetowany. Jest ta wartość podawana z jakiegoś wewnętrznego jego EEPRM-a Ja mam go cały czas zasilany 5V (przy innych jeszcze nie prubowałem) i powyższą wartość mi podaje tylko jak go pierwszy raz podłączę. Testuję dwa dallasy DS1820 i DS18B20. Obydwa się zachowują tak samo. Oczywiście...
Witam chciałbym zaprezentować mały układzik pomiaru temp. z dwóch czujników Ds18b20 po sieci WiFI. Od dawna chciałem zbudować termometr elektroniczny dla domu który będzie mierzył temperaturę zewnętrzną i wewnętrzną , nawet parę takich zrobiłem niestety zawsze brakowało mi determinacji aby dokończyć obudowę i projekty lądowały w..... (no wiecie na strychu...
Witam Jaki powinien być czas pomiędzy odczytami temp. z 2-uch czujników DS18B20? Chodzi o to, że złożyłem układ napisałem kod który odczytuje temp. jednak przy próbie odczytu temp. z czujników jeden po drugim wyświetla mi tylko temp. jednego z nich (coś jakby pomijało jeden czujnik)... Temperaturę wyświetlam w dwóch liniach na LCD linia pierwsza temp....
Witam wszystkich! Nie znalazłem tego na forum, poprawcie mnie jeśli się mylę. W ramach pracy magisterskiej buduję sterownik zarządzający komorą chłodniczą. Mam już obsługę czujników ds18b20, problem polega na tym że temperaturę mam w dwóch zmiennych: cel - liczba całkowita (np 25) oraz cel_frac - to co jest po przecinku Porównywanie takiej temperatury...
Witam, czy ktoś spotkał się z problemem widoczności termometrów w Domoticzu? Dodałem Arduino do Domoticza: https://obrazki.elektroda.pl/8610635200_... Domoticz widzi te termometry https://obrazki.elektroda.pl/3318051300_... lecz nie wyświetlają się w zakładce urządzenia https://obrazki.elektroda.pl/3120699600_...
Witam, Używam ESP12E i Arduino v.1.6.8 Może ktoś z kolegów umie znaleźć wytłumaczenie mojego problemu. Otóż, gdy w programie uaktywniam przejście do trybu głębokiego uśpienia, to po wybudzeniu nic nie dostaję po UDP. Gdy jednak zaremuję usypianie, to program śmiga jak ta lala. Wszystkie dane po UDP dochodzą. Dodam, że po wybudzeniu z deep.sleep dane...
Gdyby ktoś z forumowiczów był zainteresowany jeszcze kiedyś dobrym programem czujnika SHT11 to wstawiam. Pomiary mam co niecałą sekundę i w normalny dzień pokazuje wilgotność około 45-50%, do tego temperaturę mierzyłem również SHT11 i czujnikiem DS18B20, wyniki takie same. Odczyt OK ;) [syntax=c]GLCD_WriteStringXY("Pomiary:",... ShtReset(); _delay_ms(25);...
Nie mam zdefiniowanego co ile ma być odczyt temperatury Tutaj jest fragment kodu: #include <DallasTemperature.h> //biblioteka czujnika temp #include <OneWire.h> //biblioteka interfejsu #include <LiquidCrystal_I2C.h> //biblioteka wyświetlacza 2004 #define ONE_WIRE_BUS2 //definiowanie pinu ONE-WIRE OneWire oneWire(ONE_WIRE_BUS); DallasTemperature...
Witam Czy ma ktoś doświadczenie w odbieraniu danych z dwóch (lub więcej) czujników drogą radiową... Chcę zbierać dane z różnych czujników (temperatura, ciśnienie, przyspieszenie, itp) wysyłających dane przez moduły 443MHz i odbierać je przez jeden odbiornik, taki DataLogger. Umiem to robić pojedynczo z każdego czujnika i wyświetlać wartości na wyświetlaczu....
Witam, Przeczytałem wiele stron z podobną tematyką, próbowałem wielu różnych algorytmów, jednak nie udało mi się osiągnąć tego co chciałem. Założenie: Komunikacja aplikacji napisanej w visual c++ 2010 express z atmega16/32. 1. Wysyłka 5 liczb z komputera: (parametr1, parametr2, parametr3, parametr4, parametr5) na atmegę. Sprawa wydawałoby się prosta,...
Witam, konstruuje moduł do tzw. inteligentnego domu moduł znajdzie się w puszce pod włącznikiem. Zadania jakie będzie realizował to: - pomiar temperatury DS18b20, - enkoder (będzie zrealizowany na przerwaniach), - 8 wejść cyfrowych, - wyświetlacz oled do wyświetlania parametrów (OLED 0,96' 128x64 na I2C - SSD1306). Moduł będzie komunikował się z sercem...
Mam problem ze zmieszczeniem kodu na Atmega8. Chcę przesyłać temperaturę z czujnika DS18B20 poprzez moduł RF433 na arduino które wyświetlałoby ją na LCD 2x16. Jeśli nie odczytuję temperatury tylko podam wartość zmiennej "temperature" w kodzie to sketch mieści się na atmedze i przesył idzie tak jak powinien. Ale z pomiarem temperatury sketch jest za...
Witam, zmieniłem trochę program oraz czujnik w tryb parasite power . Sytuacja trochę się poprawiła ale niewiele . Czujnik cały czas pokazuje temperaturę 128.0 stopni . Na początku jak dałem mu za mały czas po komendzie konwersji (0x44) to podawał 85.1 stopnia czyli jak to było gdzieś już powiedziane na forum to nie wyrabiał się z konwersją . Po zwiększeniu...
DS3231 nie potrzebuje kwarcu i podobno się śpieszy tylko 1 minutę na rok Brzmi nieźle. Zainteresuję się tym układem na pewno. więc temperatura potrzebna. a w jaki sposób masz zamiar umieścić DS18B20 aby "czuł" temperaturę silnika? Obudowy jak narazie nie mam. Szukam czegoś odpowiedniego ale ciężko.. no właśnie - projekt fajny elektronicznie, a wychodzi...
To wydaje się być ok, chociaż100 us to sporo. Pokaż jak wygląda wysyłanie i odbiór bajtów i przede wszystkim procedura wyświetlania, bo ciekami mnie jak robisz konwersję na float/fixed point, bo podejrzewam, że tu masz błąd. W przypadku problemu z OW magistrala jest w stanie wysokim, a nie niskim, stąd też powinieneś mieć odczyty typu same 0xff, a nie...
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...
dziękuję za podpowiedź ale zostanę już przy arduino (pomału zaczynam ogarniać kuwetę). potrzebuję rozwiązać problem pomiaru z ds-ów. Dodano po 13 wymotałem taki kod [syntax=c]#include <DallasTemperature.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <OneWire.h> #define ONE_WIRE_BUS 0 OneWire oneWire(ONE_WIRE_BUS);...
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...
Przepraszam za mój błąd. Kod wygląda następująco: [syntax=c] #include <SoftwareSerial.h> #include <OneWire.h> #include <DS18B20.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> // przypisanie czujnikow na pin 2 #define ONEWIRE_PIN 2 // Ilość czujników #define SENSORS_NUM 5 // Adresy czujników const byte address[SENSORS_NUM][8]...
Dziękuję za pomoc krzbor. Wszystko działa ok. Wklejam poprawiony kod: http://obrazki.elektroda.pl/7511115700_1... Co robią poniższe linijki kodu? (na samym jego końcu) sent++; client.stop();
Witam Siedzę już drugą noc nad samymi timerami, a termin końcowy oddania projektu się zbliża. Problem wygląda tak, że gdy załączę zezwolenie na przerwanie od timera2 zawiesza się cały program (kratki na wyświetlaczu). Potrzebuje drugiego timera do obliczeń a Timer1 generuje przerwanie co 0,5s w trybie CTC. Kwarc 8MHz. [syntax=cpp] #include "board.h"...
Witam, Mam pytanie dotyczące tego kodu. Która linijka odpowiada za wyświetlanie liczb dziesiętnych ? Czy to, że na wyświetlaczu widoczna jest dziesiętna temperatura a nie ciąg znaków binarnych zawarte jest w programie czy budowie Arduino ? [syntax=csharp] #include <OneWire.h> #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3,...
[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,...
Witam ogólnie to mam już prawie ogarnięte, ale mam jeszcze pytanie w ramach testów trochę zmieniłem program i w tym momencie steruje przekaźnikiem za pomocą temperatury i histerezy. I o tą histerezę mi chodzi, czy może to tak wyglądać? Ogólnie mało jest info na temat regulacji histerezy. #include <OneWire.h> #include <DS18B20.h> #include...
https://obrazki.elektroda.pl/5304082500_... * Witam po dłuższej przerwie, tym razem dział mikro kontrolerów. Wymagania dla projektu / założenia: Pomiar w pomieszczeniu/ obudowie urządzenia /w zbiorniku temperatury powietrza /cieczy na wejściu i wyjściu. Wyświetlenie na żywo aktualnych wartości temperatur na wyświetlaczu LED x2. Wykrywanie...
Witam Od niedawna zacząłem zabawę z Arduino... więc proszę o pobłażliwość... Mam problem z DS18B20 pisze taki ciut większy ale nie bardzo skomplikowany projekt a chce się na nim nauczyć jak najwięcej... przykładowo: [syntax=c]#include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal_I2C.h> #define ONE_WIRE_BUS 4 OneWire...
Tak na szybko, arduino wyśle temperatury, jeżeli wyślesz znak O. [syntax=c]// Program odczytuje temperaturę kilku czujników #include <OneWire.h> #include <DS18B20.h> // Numer pinu do którego podłaczasz czujnik #define ONEWIRE_PIN 2 // Ilość czujników #define SENSORS_NUM 2 // Adresy czujników const byte address[SENSORS_NUM][8] PROGMEM = {...
Zmieniłem zgodnie z Twoimi sugestiami: for(;;){ sprawdz=ONE_WIRE_Init(); // if (sprawdz==1) // { ONE_WIRE_SendByte(0xCC); ONE_WIRE_SendByte(0x44); _delay_ms(800); sprawdz=ONE_WIRE_Init(); ONE_WIRE_SendByte(0xCC); ONE_WIRE_SendByte(0xBE); // temp1=ONE_WIRE_ReadByte();...
Witam Zrobiłem termometr internetowy w oparciu o Arduino Nano, moduł ENC28J60, oraz dwa DS18B20. Testowałem go przez ostatnie dwa tygodnie i do wczoraj było ok. Od wczoraj nagle zaczął wkazywać na czujnikach temperatury zero stopni. Sieć się nie zawiesiła bo do bazy mysql zapisuje wartości 0 z aktualną datą. Po restarcie wróciło do normy. Proszę o pomoc...
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...
float tempDom = 22 , tempDomGora, TempZal, TempWyl, TempDzi, TempNoc, TempDel; program jest bardzo rozwiniety dlatego nie przedstawiam całego te dwie zmiene "tempDom < TempZal" wydruk jest prawidłowy a porównanie nie tempDom = 21.67 TempZal 21.55 i załacza mi PC kaisai termostat myslałem że DS18b20 zle odczytuje temperatur na starcie ale sprawdziłem...
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...
Witam, Jestem początkujący jeśli chodzi o Arduino. Posiadam układ Leonardo który jest wyposażony w wyświetlacz 240x320 działający w oparciu o sterownik ili9341, a także czujnik temperatury DS18B20. Do obsługi wyświetlacza używam bibliotek SPI.h i TFTv2.h. Problem polega na tym że jak wgram kod to dane z pomiaru nadpisują się na siebie i powstają tzw....
Mam Atmegę8 i DS18b20 i w Eclipse i w MkavrC 8000000. Wynik na lcd -17024, a binarnie 1011110110000000. Dodam, że miało wyświetlić temperaturę w stopniach Celsjusza. Jeżleli ktoś ma ciekawe sugestie to ładnię proszę o pomoc. Pozdrawiam Poprawiłem tytuł na "język C", a nie "C++", gdyż kod jest kodem C. W przyszłości proszę rozróżniać języki.
Witam, Przeszukałem chyba wszystkie tematy na forum dotyczące atmegi + dallasa ds18b20 i nie znalazłem odpowiedzi. Mianowicie posiadam: LCD 16x1 który jest tak naprawdę 2x8 tylko w jednym rzędzie. Czujnik temperatury dallas ds18b20 i procesor atmega8a Pisząc kod najpierw zająłem się wyświetlaczem który działa już bez zarzutu potem wspierając się prezentacją...
[syntax=c] // returns temperature in degrees C or DEVICE_DISCONNECTED_C if the // device's scratch pad cannot be read successfully. // the numeric value of DEVICE_DISCONNECTED_C is defined in // DallasTemperature.h. It is a large negative number outside the // operating range of the device float DallasTemperature::getTempC(const uint8_t* deviceAddress)...
ds18b20 temperatura temperatura ds18b20 miernik temperatura ds18b20
wymiana modułu pralki candy sharp migające podświetlenie szlifierka kątowa kondensator schemat
sterownik movera sterownik movera
Oznaczenia pralki Samsung WW80T504DAEA - co oznaczają? Sterowanie przekaźnikiem jednym przyciskiem: CD4013 i NE555