ustawianie stanów logicznych na pinie odbywa się w przypadku 1-wire nieco inaczej niż pokazałeś. Ty ustawiasz kierunek i wymuszasz stan, a to troche nie tak. Ustalać powinieneś jedynie kierunek transmisji. Domyślnie w rejestrze PORTx są same zera, więc nie musisz się nim w ogóle przejmować. Dla np resetu powinno być tak: ustawiasz port jako wyjście,...
Zainstaluj sobie odpowiednie środowisko i zapomnij o makefile i problemach z nim związanych: http://mikrokontrolery.blogspot.com/2011... Poza tym pokaż schemat - może tam też są jakieś krzaczki :-)
Przyznaję, że się w Twój kod nie zagłębiałem, ale może sprawdź jak to wygląda od strony hardware'owej - sygnały na magistrali 1-wire. Pozdro.
WItam Najlepiej zrób tak: linie DQ podłącz do pinu procka i podciagnij ją rezystorkiem 4,7kohm do +5V a mase do masy. Nie podłączaj zasilania czujnika. Ja miałem takie problemy własnie gdy wykorzystałem techlogię 2wire taka jak ty. Gdy zmieniłem tak jak Ci napisałem wszytko było już ok. Pozdrawiam Shevu
The calibrated internal RC Oscillator provides a fixed 1.0, 2.0, 4.0, or 8.0MHz clock. Przyniesiona ze sklepu M8 pracuje na wewnętrznym zegarze 1 MHz! Spróbuj $crystal = 1000000
Musisz w pliku boards.txt wpisać w swoim fragmencie zamiast xxx.build.f_cpu=16000000L i wpisujesz po 8000000L zamiast 16000000L I jeśli m328p jest ustawiona we fusebitach na 8MHz to będzie działać.
Magistrala 1Wire jest bardzo zależna od czasów. Ponieważ nowa Atmega8 ze sklepu jest ustawiona na 1MHz zapytam czy zmieniałeś ustawienia FuseBitów w tych Atmegach? Pytam ponieważ w kodzie masz zadeklarowaną prędkość 4MHz. Taką predkośc podałes kompilatorowi i do takiego taktowania policzył czasy do komunikacji z czujnikiem. Jeśli nie zmieniałeś nic...
A wiec pwm masz na oc1a i oc1b to jest timer1 (jak sie nie myle). Poza tym masz 3 pwm oc2 na timerze2. Wiec jak bys chcial jeszcze czas liczyc lepiej uzyj jakis zew. ukladu, bo zostal ci tylko timer0, na ktorym bedzie ciezko to osiagnac. Na timerze1 i 2 mozesz zrobic sterowanie diodami rgb. Wlasnie widze ze ten czujnik wilgotnosci nie ma mozliwosci...
Stara mega32 da radę, ale dla pewności taktowałbym ją zewnętrznym generatorem kwarcowym (taniocha) a nie kwarcem. Bascom to przeliczy. Widziałem 1wire jak działa z Bascom w Xmedze na 48MHz. Wystarczy dobrze zadeklarować prędkośc taktowania, co obstawiam jeśli reszta protokołów działa. Dalej obstawiam błąd w oprogramowaniu przez programistę :)
Ja w sumie używałem jako terminala screena (pod linuksem). Spróbuj może zakomentować obsługę wyświetlacza i czujnika. Tak żeby wiedzieć czy sam UART działa... Edit: Jeśli masz wątpliwości co do terminala to jeszcze możesz spróbować puttiego. On ma bardzo prostą konfigurację. Po prostu klikniesz że chcesz połączenie po serialu, wpiszesz prędkość, klikasz...
A jak masz połączone te rezystory? Szeregowo czy równolegle? Czemu posługujesz się czyimiś bibliotekami, nie napiszesz ich sam? A to już nie można cudzych bibliotek wykorzystać? Nie wiem czy tutaj byłeś: [url=http://www.hobby.abxyz.bplaced.net/... Na dole artykułu jest gotowa biblioteka do ds18b20 działająca na 100%. W msb i lsb...
Najprościej - przed komunikacją z termometrem daj Disable Interrupts, a po komunikacji Enable Interrupts.
A jeśli programujesz w Visual Basic to polecam: http://ggsender.ovh.org/ do GG, a kontrolkę MsComm do komunikacji z ds18b20
Nie, jest ok. Jeśli wysyłasz 0 to powinno być 0 przez 80 us, jeśli 1 to powinno być 1 przez 80 us. Jak widzisz w obu przypadkach kod opóźnienia jest taki sam, stąd też nie ma potrzeby wykonywania kodu alternatywnego (else).
np. DS18B20 + komunikacja MODBUS po RS485. Nie trzeba tworzyć linii produkcyjnej.
Czyli kolejna ważna nauczka - czytać warningi.
No wiadomo że trzeba go wyciągać :) IMO na wewnętrznym RC, prędkości rzędu 4800, 9600 powinny działać bez kwarcu.
Hm... przydałby się jeszcze system komunikacji DS18B20 (może jest coś tańszego, albo bardziej użytecznego?), który by nie wymagał żadnego połączenia poza przewodami do ładowania, podłączanymi do '+' i '-' akumulatora.
Możesz wykorzystać analogowe czujniki temperatury jak LM35 albo cyfrowe DS18B20. Komunikacja z komputerem dziś to raczej tylko USB. Może być też RS232 jednak wątpię że twój laptop ma taki port. To nie jest zadanie dla początkujących ale nie zniechęcam ;)
Witam, Chciałem obsłużyć 1-wire na atmega8 z czujnikiem ds18b20, napisałem program i zaczęło wszystko działać dobrze. Ale jak zwiększyłem taktowanie uc powyżej 1MHz to już komunikacja z termometrem nie działa i nie mam już pomysłów dlaczego? Do DS18B20 jest podpięty GND, VCC i rezystor 4,7k między VVC - DQ. Diody podpięte do PC0, PC4, PC5 sygnalizują...
Dziękuję za pomoc, na razie odłożyłem ESP i zrobiłem na mega.
Mam wspaniałe dzieła stm32f103 1-ware slave na takich delay //:::::::... // Прогрk...
Niestety nie. Ten Shimaden nie obsluguje komunikacji 1 wire ktora ma ten czujnik
Jeśli czujnik zaniża tylko niektóre pomiary, to wydaje mi się, że raczej nie może to być skutek opisanego problemu. Zmiana danych kalibracyjnych w EEPROM musiałaby przecież spowodować zaniżenie albo zawyżenie wszystkich następnych pomiarów. Miałem taki przypadek z DS18B20 zasilanym pasożytniczo: komunikacja z czujnikiem odbywała się całkowicie poprawnie,...
...Jak nie działa to jest brak komunikacji z układem. Ja obstawiłbym "timesloty", czyli program.
1. Rysuj schematy w czymś normalnym, nie ręcznie... 2. Na magistrali 1wire powinien być raczej rezystor podciągający do 5V, a nie kondensator, który skutecznie uniemożliwi komunikację :D
85*C to jest utrata polaczenia blad komunikacji albo za szybko odczytujesz temperature po inicializacji.
Jeżeli stosujesz funkcję typu delay1us(X) (rozumiem, że sam ją napisałeś) to pamiętaj, że wejście i wyjście oraz pętle odliczające też trzeba uwzględnić. Polecam zrobić na potrzeby ds'a funkcje o określonym czasie trwania (będzie ich raptem kilka), bo jak zmienisz taktowanie to może się okazać, że wyżej wymienione dodatkowe opóźnienia mogą mieć znaczenie...
Ok dobra teraz uwaga bo ciekawa rzecz: Podłączając odwrotnie (a co tam jak już zjarałem to trudno) tj. środkową nóżkę do masy a GND do sygnału otrzymuję kwadrat jakiś, wydaje się komunikacją cyfrową, atmega reaguje oczywiście wprowadzając stan wysoki na pin "temperatura za niska". Przy zwarciu takich połączeń na nóżce niecyfrowej żadnego kwadratu nie...
Atmega128 jest polaczona po UARTcie z ds2480B i dalej jest czujnik temperatury ds18b20, Nie moge zainicjowac DS2480B zeby on wysylal po 1wire, Mam note aplikacyjna ale nie moge wyczytac co mam zrobic zeby zaczal pracowac - moge polaczyc bezposrednio czujnik temperatur z prockiem ale chcialem to zrobic po RSie, moze ktos wie bo pewnie musze zrobic cos...
Kolego golas17 udało ci się uruchomić tą komunikację 1wire? Pytam ba posiadam stm32f103 i chętnie podłączył bym właśnie termometr DS18b20.
Cały dom oblecieć? Nie za długi przewód z kontrolera do czujników? Chyba musisz wymyśleć inną komunikację.
Kod jak dla mnie zupełnie nieczytelny, nieoptymalny - dokładasz jakąś funkcję krytyczną w czasie i jesteś w kropce. Konstrukcje typu : dec loop_odb_bajt cpi loop_odb_bajt,0 brne odb_dale swobodnie moga występować bez cpi . Masz najprawdopodobniej źle dobrane opóźnienia, może predkośc zegara się różni od przyjętej ? Nie lepiej zrobic obsługe na timerze,...
Mam takie pytania: 1. Czy jest jakaś możliwość realizacji komunikacji z DS18B20, która nie będzie uzależniona od delay-ów? 2. Czy własne napisanie delay-ów może mi w czymś pomóc? 3. Jeżeli chciałbym zrealizować coś bardziej skomplikowanego to powinienem "dołożyć" jeszcze jeden µC, żeby uniknąć niespodzianek? Miałoby się to wiązać z przerwaniami...
Czytales dokumentacje do DS?
Mam pytanie na które sam nie nie umiem sobie odpowiedzieć. Napisałem duży program, który korzysta z timera1,ma komunikacje z ds18b20 i komputerem poprzez uart. Na czas komunikacji z ds... wyłączam przerwania. Jak to wpłynie na komunikacje z kompem ?
Witam Mam pytanie dlaczego poniższy kod nie pozwala mi dogadać się z DS18B20. Napisałem/przepisałem go na bazie opracowania Pana Cezarego Klimasz "Obsługa interfejsu 1-wire na przykładzie obsługi DS18B20". Proszę o pomoc. Dziękuję #include <string.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include...
Przygotuję na jutro
Witam nie czekasz na obliczenie temperatury powinno być waitms 750 . Wstaw waitms 750 w miejsce gdzie masz 'przeczekaj czas konwersji
Proste: Bylejaki kod obsługi DS18B20 bez użycia przerwania timera lub sprytnego użycia UART nie może działać poprawnie, jeżeli reszta oprogramowania korzysta z jakichkolwiek przerwań aktywnych podczas komunikacji z DS18B20.
Przyczyna może być tylko jedna brak komunikacji ds18b20 z atmegą, proponuje sprawdzić ciągłość pomiędzy nóżkami mikrokontrolera a samym ds-em i jeżeli nie ma przerwy to należy przeanalizować podłączenie ds-a do nóżek atmegi a dokładnie czy jest to podłączenie zgodne ze schematem.
Witaj. Jeśli chcesz wykorzystać jakiś procesor i czujniki temperatury to często wykorzystywany jest czujnik DS18B20. Komunikacja z nim przez 1wire więc do jednego procesora bez problemu podłączysz ich 20 albo więcej. Procesor to już Twój wybór, zależy czy już jakiś poznałeś. Sporo na temat podłączenia tego czujnika można znaleźć na elektrodzie. A co...
I tu: http://www.elektroda.pl/rtvforum/topic21...
Witam, Projektuje układ sterujący pracą wentylatora DC 12V, zasilany w całości z ogniw fotowoltaicznych. Mam do dyspozycji panel, który daje ok 45W przy napięciu 16,8V. (optymalne warunki nasłonecznienia). Wymyśliłem sobie, że wentylator będzie sterowany przez mikrokontroler Atmega8 za pomocą PWM. Wentylator ma się załączać przy pewnych temperaturach....
Skoro znasz już składnię assemblera, to jedyne czego potrzebujesz, to: - datasheet Atmega8 - datasheet Ds18b20 - opis standardu komunikacji 1wire Nie wiem jak jest z gotowcami, ale na assembler to bym za bardzo nie liczył. Skoro kiepsko u ciebie z angielskim, to zacznij chociażby od tego: http://www.1-wire.rms.biz.pl/
Jest jeszcze sprawa wydajności prądowej portów, na 51' nie uzyskasz dalekiego zasięgu ( długość kabla dla DS18B20 ). w AVR dajesz rezystor podciągający około 1....1.5k i śmigają, aż miło. jeżeli masz wyświetlacz to zrób to komunikacją opartą na numerach seryjnych. To proste i wygodne rozwiązanie. pozdrawiam.
Zgadzam się z przedmówcą. Kiedyś nie mogłem wyjść z podziwu, że program przestawał działać po załączeniu optymalizacji. Dopiero po pewnym czasie zauważyłem, że optymalizacja pod względem prędkości działania dosięgnęła również... pętli opóźniających :) Dlatego odmierzanie czasu na timerze jest najbardziej precyzyjnym i uniwersalnym wyjściem. I optymalizacja...
unsigned char recive1bit_1wire(void) { CATCH1WIRE; //pin as output CLEAR1WIRE; //drive bus low delay_us(6); //delay 6us RELEACE1WIRE; //release bus - pin as input HiZ delay_us(9); //delay 9us if(PIN1WIRE==1) //sample bus to read bit from SLAVE { delay_us(9); //delay 9us return(1); //return read...
Konstrukcja wykonana bardzo przyzwoicie i starannie mam pytanie dotyczące tego czy można użyć czujnika DS18B20 zamiast tego DS1631 Różnica polega w komunikacji. DS18B20 łączy się przez 1-wire, a DS1631 przez I2C (zresztą co widać na schemacie) i nie można z tego względu stosować tych czujników zamiennie. Pytanie do autora. Czemu nie zastosowałeś jeden...
Witam. Napotkałem problem z komunikacją po I2C. Na płytce stykowej podłączyłem moduł zegara DS3231 zakupiony na znanym portalu i działa bez problemów. Przygotowałem i polutowałem płytkę z takim procesorem w wersji smd. Zaprogramowałem tym samym programem, fuse bity te same, wyświetlacz działa prawidłowo, odczyt z DS18B20 działa prawidłowo, komunikacja...
OK. Poradziłem sobie z czasami. Narazie robię dla 1MHz. Jeżeli chodzi o kwarc 16MHz to myślałem żeby zrobić coś podobnego jak delay_loop_2(). Dzięki za wskazanie bo bym sam się męczył a tu obok nie zauważyłem gotowa funkcja:D Teraz brnę z moim termometrem dalej i znowu nie wiem co nie gra:cry: Oto kod: unsigned char ow_reset(void) // reset lini...
https://obrazki.elektroda.pl/3403235600_... Witam wszystkich Chciałem się podzielić projektem, który wykonałem dla swojego znajomego w ramach wspólnej zabawy w elektronikę i informatykę ;) Założenia: -Zasilanie DC 12-48V -Komunikacja przez Ethernet -Możliwość obsługi kilku przycisków -Możliwość sterowania kilku przekaźników -Możliwość...
Zrobiłem kiedyś termometr z 1wire i multipleksowanym wyświetlaczem (4 znaki), ale nie mogłem pogodzić multipleksowania i transmisji. Albo sypały się dane i miałem błędne CRC, albo można było zauważyć mrugnięcie wyświetlacza kiedy zatrzymywałem przerwania dla wysłania/odebrania danych. 1wire jest dość wolne... Po prostu samo odebranie ramki z danymi...
Zajrzyj do mikokontrolerow - tam bylo wiele razy...
Jeżeli ma być DIY to na rynku jest sporo gotowych scalaków przetworników R/I R/U oraz R/f Czyli rezystancja na prąd (zazwyczaj 4-20mA), rezystancja-napięcie (np. 0-10V) oraz rezystancja-częstotliwość. Poszukaj sobie not katalogowych firm Texas Instruments, Burr-Brown Seria układów scalonych XTR..... Znajdziesz tam precyzyjne przetworniki. Albo przetworniki...
O ile ten uC, który to obsługuje, ma przerwania. Nie są konieczne, ale wtedy potrzebna jest zupełnie inna filozofia pisania programu - na przykład taka, że w głównej pętli wołasz na zmianę dwie procedury, jedna z nich sprawdza, czy już czas na przełączenie się na następną cyfrę (i jeśli tak, to to robi), druga wykonuje elementarną operację przy komunikacji...
Najlepiej jest uzyc gotowych bibliotek ktore dolanczam Deklarujesz obiekt tej klasy w pliku Unit1.h ****************************************... #include <Forms.hpp> #include "comm.h" .... class TForm1 : public TForm { __published:// IDE-managed Components ...... private:// User declarations public: // User declarations TCommPort COM_PORT;...
Jak dla mnie to sprawdz czasy przy komunikacji (rozumiem że to 1-Wire).
DS1820 czy DS18B20 ? Sposób zasilania ?
Witam, Magistrala 1-wire doskonale nadaje się na komunikację pomiędzy mikroprocesorami. Procesorki slave mogą być na wewnętrznym generatorze. U mnie attiny45 i atmega88 są razem na linii z ds18b20, plus oczywiście dodatkowe zasilanie. Pozdrawiam
Trzeba zrobić emulator DS18B20 podłączony do urządzenia które chcesz "oszukać". Ten emulator musi sobie "rozmawiać" radiowo z modułem, który będzie np co sekundę odczytywał DS18B20. Do Arduino są biblioteki emulujące między innymi DS18B20 (gdzieś na Elektrodzie był link do nich). Nie wiem czy dział to na przerwaniach, jak nie to będzie problem z komunikacją...
cześć Super konstrukcja ale mam pytanie które mnie nurtuje. Pisałeś o możliwości podłączenia trzech czujników DS18b20...w jakiej max odległości od urządzenia się znajdowały tak żeby pomiar był poprawny. Pytam ponieważ sam mam pomysł zrobienia sterownika CO na mieszkaniu (70m2) i zastanawiam się czy okablować całe mieszkanie pod czujniki ds18b20 czy...
A co to są za czujniki-jakieś termometry po 1-wire może(DS18b20)??
Witam Atmel opisał ten sposób komunikacji. Poszukaj na stronach AVR.
Są układy scalone takie jak DS18B20 - termometr cyfrowy z protokołem komunikacji po linii 2-drutowej (a nazywa się to 1-wire). Robi się to w różnych wersjach obudów - takiej, jak typowy tranzystor małej mocy (3 nóżki), ale i w 2-nóżkowej, i w "tabletkowej"...
moim zdaniem, to że masz "OK" na lcd to błędna interpretacja. A IN/OUT ==> WEJŚCIE/WYJŚCIE. Właśnie za zmianę tych funkcji odpowiada DDRX, a nie PORTX. Jeśli użyjesz PORT, to nie pozwalasz układowi ściągnąć napięcia do masy (czyli nie zachodzi komunikacja, po prostu).
Ja obszedłem ten problem robiąc na odzielnym małym atmelku czytnik temperatury, który USART-em przesyłał daną temperaturę do procesora głównego. Dzięki temu obojętnie jaki czujnik podepnę, DS1820, DS18B20 czy DS1620 a komunikacja jest taka sama dla procesora głównego. Co do twojego problemu, jak zrobisz przerwania dla zegara co 1 sekundę to nie powinno...
Jak kolega pisał wyżej LM35 nie komunikuje się z Atmega8. LM35 wystawia napięcie proporcjonalne do temperatury. Napięcie to możesz następnie zmierzyć przetwornikiem ADC wbudowanym w Atmegę. Jeśli coś ma się komunikować to polecam cyfrowe układy DS18B20 lub podobne , które mają komunikację po 1-wire.
W nocie katalogowej tego układu jest podany czas jaki maksymalnie może upłynąć od wysłania rozkazu konwersji temperatury do podania strong pullup. Stosowałem tę metodę na avr bez żadnych problemów. Sprawdź czy naprawdę procesor wystawia duży prąd na port. Nie napisał kolega nic o tym co oznacza stwierdzenie "nic takie rozwiązanie nie daje". Nie wiadomo...
Zapoznaj się dokładniej z transmisją 1-Wire. Po właczeniu zasilania nic nie musisz sprawdzac na lini, aż do momentu kiedy będziesz chciał z danym urzadzeniem nawiązać komunikacje. Wtedy wystawiasz sygnał RESET i czekasz na odpowiedz, jesli jest to znaczy że na lini znajduje się jakieś urzadzenie. Sygnał RESET zawsze poprzedza poczatek transmisji z 1-Wire.
Ok, czyli bazując na linku wyżej też powinno działać? Define ID 3 // adres urządzenia a gdzie zmieniamy na komunikację rs232/rs485?
Na ilu przewodach robiona jest komunikacja? 2 czy 3?
Prostokąty w jednym wierszu dwuwierszowego LCD oznaczają, że nie zainicjowałeś wyświetlacza (czyli raczej brak komunikacji) oraz że masz źle ustawiony kontrast.
....Program mam napisany na atmegę8. Tylko teraz ten schemat co jest zamieszczony w linku chcę przerobić na atmegę8.... W programie poszczególne piny I/O danego portu są przypisane do ściśle określonego zadania np. komunikacja z układem DS18B20 czy też sterowanie wyświetlaczem. Bez znajomości programu przeróbka schematu jest niewykonalna.
Problemem była komunikacja między arduino a domoticzem a konkretnie rozpoczęcie "nadawania" usunięcie liniki: Serial.begin(9600); rozwiązało problem
U mnie DS18B20 na 1Wire działało nawet jak przez przypadek ustawiłem FuseBity na 4MHz a w programie było zadeklarowane 8MHz. Więc problemów z komunikacją z DS18B20 raczej bym się nie bał. 1Wire narzuca ramy czasowe ale nie aż takie żeby zmiana częstotliwości o 10% mogła coś spierniczyć. Dodano po 6 Zakłócenia elektromagnetyczne to już inna sprawa. Ale...
Zacząłbym od tego: Otrzymujesz wartość zmiennej temperatura równą np. 1871819,25. Jak przemnożysz to przez 16 to okaże się, że wyrażenie (temp1 + (temp2*256)) zwraca wartość 29 949 108. Teoretycznie zmienne temp1 i temp2 nie powinny przyjmować wartości większych od 255, więc wartość maksymalna wyrażenia (temp1 + (temp2*256)) = (255 + (255*256)) = 65535....
Ciekawe zadanie ;) Może lepiej dać układ nadzorujący na każdy silos? Wtedy mamy 30 urządzeń komunikujących sie po RS485 i jeden centralny master zarządzający ruchem i komunikujący się z PC. Sprawdzałeś czy przy takiej odległości nie będzie problemów z komunikacją po 1wire?
Tak przerwania mogą zakłócać komunikację 1wire. Na czas komunikacji z DSem blokuj przerwania.
Jeśli tam, gdzie ma być mierzona wilgotność, będzie również mierzona temperatura, to użyć DS18B20 do pomiaru temperatury i rozpoznawania adresu - wtedy cała komunikacja byłaby przez 1-Wire.
Witam, planuję wykonać rejestrator m.in. temperatury, napięcia. Chciałbym poprosić o sprawdzenie schematu i płytki. Układ ma zawierać: -LCD -Kartę MicroSD ( zapis , rejestracja ) -2 wejścia ADC ( jakies napiecia ; moze NTC ) -wejście 1Wire ( DS18B20 ) -Port RS ( komunikacja z PC ) -ISP Urządzenie ma służyć jako baza do nauki. Będę wdzięczny za wszelkie...
Witam Bardzo bym prosił o sprawdzenie czy schemat jest poprawny. Docelowo ma to być urządzenie do którego ma być podłączone 16 termometrów ds18b20 i ma miejsce na wpięcie modułu komunikacji RS485. Czy prawidłowo zastosowałem diody które mają zabezpieczyć przed odwrotnym podłączeniem termometru? https://obrazki.elektroda.pl/9958996700_...
Powiedzcie mi tylko, jakim cudem cały program się tam zmieścił?! Ten PIC ma przecież tylko 1 kilobajt pamięci, wiec niewiele... Ja pisząc ostatnio program do 256-bitowego klucza na attiny13V (który ma podobne parametry pojemnościowe jak ten PIC), ledwo zmieściłem się ze swoim programikiem napisanym w BASICU... Witam, Cuda się zdarzają :D Ja pisząc...
Można też stosować flagę ustawianą bądź kasowaną w przerwaniu aby stwierdzić czy wystąpiło przerwanie. Na ogół jednak wyłącza się przerwania na czas komunikacji tak jak ty to zrobiłeś.
Co do programowania tego procesora to można użyć układ jak na załączonym pliku. Dodatkowo ze strony Atmela trzeba ściągnąć program Flip do zaprogramowania at89c51rc2. Program do komunikacji można pisać np. w C używając kompilatowa Keila lub innego. Czujnik DS18b20 jest tak popularny że bez problemu znajdzie się nawet gotowe źródła do komunikacji z procesorem,...
Dzięki za podpowiedzi. Używałem delay.h i dla 1MHz wszystko było OK ale po zastosowaniu kwarcu 16MHz otrzymuje błędne informacje z czujnika (właśnie takie jakie były w momencie, źle ustawionych czasów). Korzystam z czujnika DS18B20 (czujnik temperatury) i komunikacja następuje poprzez 1-Wire, ale zasilam czujnik z zewnętrznego źródła, a nie poprzez...
MAX485 to tylko transceiver, a nie mikrokontroler. RS485 jest banalny w realizacji jeśli masz połączyć ze sobą dwa urządzenia, trochę gorzej jeśli jest ich więcej. Jeśli planujesz wszystko na wspólnej magistrali to prawdopodobnie łatwiej to zrobić na CAN. Ma sens jeśli będzie wiele urządzeń, szczególnie w konfiguracji multimaster. CAN załątwia m.in....
Witam Nie widzę deklaracji funkcji: delayus() oraz delayms(). W bibliotece delay.h funkcje te wyglądają tak: delay_us() i delay_ms(). Tak naprawdę właśnie dobór opóźnień jest najistotniejszy przy komunikacji po 1-Wire. Wiem bo sam męczyłem się trochę z tym czujnikiem. Niestety funkcję dostępne standardowo w bibliotece delay.h ( delay_us() i delay_ms()...
Jak najbardziej. Filozofią jest jednak użyć wyszukiwarki na forum by znaleźć wszystko co napisano kiedyś na temat tej pary. Napięcie zasilania układów 1Wire lepiej nie podpinać bezpośrednio do napięcia Vcc mikrokontrolera. Może to skutkować błędnym odczytem, albo brakiem komunikacji.
W opcjach projektu musisz ustawić częstotliwość pracy procesora. Inaczej nie zadziała komunikacja 1wire PS. link nie działa
Witam. Chciałem zrobić termometr bezprzewodowy. Na razie mam problem z komunikacją UART. Nadajnik działa na 100 % odczytywałem temperaturę na komputerze prze ft232. Ale odbiornik nie odczytuje temperatury. W tej chwili obydwa mikrokontrolery są spięte przewodem TX ->RX Kod Nadajnik [syntax=c]#include <stdio.h> #include <avr/io.h> #include...
Mam propozycję, umieść schemat rozwiązania, fragmenty kodu odpowiedzialne za komunikację, może problem jest na etapie projektu.
narobilem juz pare algorytmow do komunikacji po rs232 z ds18b20 ale wszystko jest do kitu.robie wszystko metoda prob i bledow,wysylam komendy na port tj: 0x44,0xBE, 0xCC itp i nic. Źle działa bo wysyłasz dane w standardzie rs232 a układ się spodziewam danych w standardzie 1wire. W dokumentacji o tym jak podłączać 1wire do rs232 jest napisane jak to...
Wyświetlacze multipleksuje w przerwaniu multipleksujesz? Jeśli tak to w czasie komunikacji z DS'em proponuję wstrzymać wszelkie zbędne przerwania.
Komunikacja odbywa się przez Bluetooth Low Energy zawarty w standardzie BT4.0. Do kompletu mamy też inne urządzenia komunikujące się w ten sposób typu przekaźnik, pilot, aktywne tag RFID itp. http://obrazki.elektroda.pl/2385592300_1... http://obrazki.elektroda.pl/1109780000_1... Tak się teraz zastanawiam czy nie przyda...
Witajcie, zaprezentowany układ to nieco odmienne podejście do tematyki cyrkulacji ciepłej wody użytkowej. Chodzi o to, że w godzinach obecności domowników woda ma być dostępna natychmiast (a co ;-)), a na dodatek przy minimalnej pracy pompy. Działanie jej wygląda następująco: - Są wykorzystane dwa termometry - na rurze wychodzącej z kotła (możliwie...
no to na pewno miałeś namieszane z komunikacją 1w. sprawdz sobnie odstepy czasowe, i czy był wysyłany reset w miejscach jak pisze w aplikacji
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...
Niby nie trzeba pchać na usart ale jak wtedy debugować? Bardzo prosto : USART przeznaczyć na komunikację z układami ( np. ESP8266 ) a ewentualne debugowanie puścić na programowy "port szeregowy". Konwertery TTL/USB są tanie jak barszcz a w takich sytuacjach są jak znalazł.
Nie załapałem. Sądziłem ze piszesz o kolektorze brata. Tym z grubych rur. Jeżeli masz "normalny" płaski absorber z blachy to zamocuj czujnik w jego górnej części od spodu. Do blachy a nie do rurki! Pisał o tym Bachus. Poczytaj. Czujnik cyfrowy (czy aby na 100% ???) to penie DS18B20 i on nie lubi długich kabli. Producent sterownika MR-04 daje 10 m kabla...
komunikacją atmega8 epson komunikacją satel komunikacją
astra tunel środkowy katalog transformator indel unitra r8040
elektrotechnika zaocznie hewalex sterownik
Normalizacja kąta w Arduino: x = proper_ang(x); Wycieraczki Renault Clio 2 działają na jednym biegu - przyczyny i rozwiązania