w czym napisales soft?? wlczyles zewnetrzny oscylator w ATMega??
Masz poniżej zawartość dwóch plików, które trzeba podmienić: [syntax=c] #include <util\atomic.h> #include <util\delay.h> #include <avr\io.h> #include "1wire_basic.h" uint8_t Error; uint8_t PinMask; void OW_SendBit(bool bit) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { DDRB |= PinMask; _delay_us(3); if(bit) DDRB &= ~PinMask; _delay_us(60);...
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,...
Atmegę kupiłem na allegro, posiada ona wbudowany Kwarc i Bootloader. ATMega nie posiada wbudowanego rezonatora kwarcowego, lecz wewnętrzny oscylator. Nie ma też wbudowanego bootloadera. Czy pin 11 jest odpowiednim pinem do podłączenia 1Wire? W jakiej obudowie jest ATMega DIP28, czy TQFP?
Witam, Czasówki 1wire do zmiany. Sprawdzaj CRC numerów seryjnych.
Czy na pewno nie ma przerwy na magistrali 1Wire ? Ten program jest sprawdzony i należy szukać błędu w połączeniu i konfiguracji. Czy Atmega jest nowa tzn. bezpośrednio ze sklepu ?
$crystal = 14745600 Czy oprócz podłączenia takiego kwarcu ustawiłeś odpowiednie fuse bity? Następna rzecz to nie musisz robić resetu 1wire. Największy błąd polega na tym że nie czytałeś helpa bo gdybyś to zrobił to dowiedziałbyś się że zmienna do której zapisujesz ilość urządzeń koniecznie musi być typu WORD lub INTEGER. Na koniec radzę ci skorzystać...
Kiedyś przerobiłem na szybko jedną z dostępnych bibliotek na obsługę kilku ds18b20 na różnych liniach: [syntax=c] //#ifndef 1wire //#define 1wire #include "hardware.h" ////////////////////////////////////////... // ROM commands #define DS18B20_ROM_SEARCH 0xF0 #define DS18B20_ROM_READ 0x33 #define DS18B20_ROM_MATCH...
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...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
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...
Niestety coś jednak nie tak podczas kompilacji kodu. Na zestawie uruchomieniowym również wyświetla się 0.0 C zamiast "error", jeżeli do linii 1Wire nie został podłączony żaden układ. Czy ktoś mógłby podesłać gotowy wsad dl atmegi8 dla chociażby sprawdzenia czy atmega wykrywa jakiś układ na linii 1Wire? U mnie widocznie sypie się eclipse, bo czysty układ...
Witam, Mam podpięty ds18b20 pod atmęgę, korzystam z CodevisionAVR i mam parę pytań może te pytania pozwolą mi na znalezienie błędu w kodzie. 1. Czy taka definicja portu dla 1wire jest poprawna(w CodeVisionAVR): // 1 Wire Bus functions #asm .equ __w1_port=0x07 ;PORTE .equ __w1_bit=1 #endasm Głównie mi chodzi czy później jak się odwołam do samej funkcji...
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. http://obrazki.elektroda.pl/9838684200_1... Każda próba kończy się odpowiedzią " No Presence Pulse" Jestem początkujący...
Wolałbym się pobawić tymi bibliotekami, które już jako tako znam. Przeglądałem te po których wspominałeś, ale przyznam że była to dla mnie czarna magia. Mam nadzieję, że na mojego posta trafi osoba, która również korzysta z rkavrlib. Aby bardziej rozjaśnić sprawę wrzucę jeszcze kilka kodów z których powyższy program korzysta. obsluga onewire [syntax=c]#ifndef...
Witaj! Co masz na myśli mówiąc "jednocześnie"? Masz na myśli immobiliser z termometrem w jednym? :) Ten przykład tutaj działa :) To niewątpliwie, bo kiedyś go uruchomiłem ... z pełnym sukcesem, tak więc musisz próbować :) Albo pisz co jest niejasne, co Ci nie działa, albo jakie masz błędy ... Ja teraz zmagam się z zegarem :) Chcę zrobić zegar ATMEGA8+PCF+właśnie...
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...
(at)snnaap: Ta funkcja ("ms") to jakaś pozostałość - coś zmieniałem, ale skoro spełniło moje wymagania to już zostawiłem odłogiem. Pierwszego pytania nie rozumiem. Tu znalazłem jakieś informacje o tym, że można sobie efektywnie poradzić bez UART: http://mirekk36.blogspot.com/2011/09/fak... Nie ma (albo nie "doszukałem...
Obsługa 1Wire w BASCOMie nie jest obsługiwana w przerwaniach. Możesz spróbować czegoś takiego: cli 1wreset 1wwrite &H55 sei cli 1wwrite B2 sei cli 1wwrite &H44 sei Chodzi oczywiście o porozdzielanie wszystkich instrukcji 1Wire sekwencjami sei,cli.
Mam dziwny problem z ATmega8515 i obsługą szyny 1wire w Bascomie AVR 11.7.4. Prosty program zbudowany w oparciu o nieznacznie zmodyfikowany przyklad z helpa do odczytu temp. z ds18b20 działa na AT90S2313, a nie działa na ATmega 8515. Sposób podłaczenia jest ten sam, próboałem też konfigurować szynę 1wire na różne porty. Problem jest zawsze ten sam -...
http://obrazki.elektroda.pl/4776361100_1... Witam wszystkich, jest to mój pierwszy projekt opisywany na tym forum. Przedstawiam projekt mojego autorstwa, zegar z termometrem wyświetlający aktualną datę, godzinę oraz temperaturę z 3 czujników. Założeniem projektu było zbudowanie zegara wyświetlającego godzinę oraz temperaturę wewnątrz...
Witam, Jakiś czas temu zacząłem budowę termometru wielopunktowego opartego na ATMEGA162 i DS18B20. Układ działa super, do wejścia 1wire podłączyłem 17 czujek temperatury i wszystko śmigało jak należy ale niestety po podłączeniu czujek przez skrętkę już tak cudownie nie jest. Między układem ATMEGA a DSami jest dość duża odległość nawet do 50m. W momencie...
Przerwanie żeczywiście wtedy nie zakłuci pracy 1wire ale sam odczyt 1wire zakłuci czestość występowania przerwania - it o jest powazym ograniczeniem w stosowaniu tego. Na ten problem równiez ja ostatnio wpadłem i nie udało się tego rozwiazać przyzwoicie. Moze atmega z najszybszym zegarem (20MHz) da radę ale jest to porywanie sie z motyka na księżyc....
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...
Chyba mam coś nie tak z podłączeniem. Atmega nie może ściągnąć linii do 0. Wygląda to tak, że gdy linia 1wire jest podłączona do mikrokontrolera i do rezystora 4.7k wówczas gdy ustawię pin jako wyjście i na port dam 0 to tak jest w rzeczywistości (sprawdzałem miernikiem - ustawiłem sobie czas na kilka sekund). Natomiast gdy do tej linii podłączę jeszcze...
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ę :)
Hey czyli problem jest w instrukcji Ss = Format(ss , " 0.0") wrzuć ten program i powiedz czy wszystko gra jeżeli tak będę pisał co zrobiłem. [syntax=basic4gl]$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza...
wcześniej miałem #define CLEAR_1WIRE DDRD|=_BV(WE) #define SET_1WIRE DDRD&=~_BV(WE) No to dobrze miałeś. Ale wtedy miałem temperaturę 0.0 przy podłączonym czujniku, a jak go odłączyłem było -0.1. Jak odłączę rezystor to pokazuję się "Brak pomiaru". Kolego nolab . Częstą przyczyną kłopotów z 1wire, są np. niewłaściwe opóźnienia, bo umieszczenie...
Witam Który z procesorów z serii Attiny ( bo atmega 8/16/32 to bez problemu ) nadawałby się do pomiaru/odczytu DS18B20 oraz przesyłania przez UART ( w ramach testów przez RS232, a docelowo przez RS485 ) ? Programowy UART można chyba uruchomić na większości, gorzej z obsługą 1Wire
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
pisałem juz wcześniej cobyś sprawdził czy opoźnienia są poprawne. 1Wire to interfejs który bazuje na pomiarze czasu. Fabrycznie nowa Atmega ma ustawione fusebity na 1MHz wewnętrzny - w programie masz wpisane 4Mhz - jak jest naprawdę to należałoby sprawdzić fuse (jeśli używasz PonyProga to mogę Ci podpowiedzeć jak zmienić) Możesz zrobić prosty test:...
Z mojego doświadczenia z DS18B20 wynika: Procedury 1wire w Bascomie działają bez zarzutu. Oscylator wewnętrzny 8MHz jest jak najbardziej dobry i w niczym nie przeszkadza. Podciąganie 4k7 dla jednego DS na krótkim przewodzie jest zupełnie wystarczający. Dla np. 4 DS na kilkunastometrowych przewodach przydaje się 1k. Po co w instrukcji 1wwrite portc.1...
1. Z tego co widzę w datasheet od DS18B20 to linia 1wire powinna miec rezystor 4k7, więc włączanie dodatkowo rezystora wewnętrznego pewnie niewiele da. 2. Jeżeli odpowiedni bit w rejestrze PORTx (u Ciebie PORTD) będzie już miał wartość 0 to tak.
Witam, chcialbym sie podlaczyc po ten topic gdyz mam pewien problem z obsluga DS1820 i DS18B20 z ATMega128 Mianowicie, po podlaczeniu w trybie 2wire (1 - GND, 2 - PinB.7/PinE.7 itp., 3 - Vcc 5V) do ATMega128 z kwarcem zewnetrznym 10MHz (innego uzyc nie moge) po wykonaniu komend w Bascom AVR: config 1wire= portb.7 dim rgn(8) as byte 1wreset wait...
http://obrazki.elektroda.pl/8836607800_1... Witam Chcę przedstawić konstrukcję termostatu 4 Kanałowego z wyborem trybu pracy. Układ wykonany na Atmega 32 a program napisany w poczciwym Bascomie. Wyświetlacz ma 4 wiersze po 20 znaków Zastosowane czujniki temperatury firmy Dallas DS18B20 Sterowanie jest za pomocą 4 przycisków (menu, up,...
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.
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"...
A od kiedy "Config 1wire" można ponawiać? Zastosuj raczej: 1wreset Pinb , 0 1wwrite &HCC , 1 , Pinb , 0 … 1wreset Pinb , 1 1wwrite &HCC , 1 , Pinb , 1 … 1wreset Pinb , 2 1wwrite &HCC , 1 , Pinb , 2 …
Na upartego mogę się pobawić dziś wieczorem, wykorzystam TIMER1 do określenia czasu wykonywania tych instrukcji w rzeczywistym układzie. Mateusz dobrze wykombinował, chociaż w/g mnie symulator pewnie nie bierze pod uwagę wielu rzeczy, w tym odpowiedzi ze strony 1WIRE (teoretycznie powinny się one trzymać sztywnych ram czasowych i nie wpływać na prędkość...
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ą...
Poczytałem trochę w internecie i zmieniłem na coś takiego (wywaliłem w ogóle funkcje pojedynczych bitów). [syntax=c] unsigned char uc1Wire_ResetPulse(void){ WIRE_DIR |=1<<WIRE_CON; // pin 1wire jako wyjscie WIRE_PORT&=~(1<<WIRE_CON); // pin 1wire -> 0 _delay_us(650); // tx reset pulse WIRE_PORT|=1<<WIRE_CON; // pin 1wire ->...
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Łap. Cały tydzień programuję poważniejsze sprawy i taki programik to dla mnie dosłownie rozrywka :D Bierzesz Tiny85 i programujesz Hexem lub Binem do wyboru. Podłączasz do niego DS18B20 i linijkę na MAX7219 i gotowe... żonka zadowolona. Program ma nawet wyjście diagnostyczne i wypluwa temperaturę na UART 9600bps (to żeby sprawdzić poprawnośc Dallasa)....
Oki oki. Moja wina. Wiec procek to Atmega 168 do wprowadzania mam kursory lewa/prawa gora/dol no i Enter. Posiadam magistrale 1wire i na niej siedza DS18B20 i switche DS2405. Wszystko chodzi, ale.... . Ja tego po prostu jeszcze nie robilem w taki sposob. Cyfry od 1..9 wprowadzam i jest oki, ale teraz potrzebuje moc wpisac z tej klawiatury adres DS-ow...
Panowie, Od dłuższego czasu zastanawiam się nad fenomenem popularnosci DS18B20 w układach z mikrokontrolerami wszelkiej maści. Przecież na rynku jest dostępny przetwornik o takiej samej dokładności, znacznie prostszy w implementacji. Mam tu na myśli przetwornik LM35, który jest w większości sklepów tańszy od DS18B20. Do jego obsługi wystarczy jeden...
Przykładowo coś takiego. O ile dobrze myślę to na nóżce DQ dallasa powinno być 0 a tak nie jest . Dodam, że w trybie parasite power wszystko jest ok. #define F_CPU 16000000UL #include <avr\io.h> #include <util/delay.h> #include <stdlib.h> #include "lcd.h" #define WIRE_PORT PORTF #define WIRE_DIR DDRF #define WIRE_PIN PINF...
Właśnie... Jest jeszcze motyw taki, że PIN, którym podłączam się do 1Wire to INT0, przerwania na oba zbocza. Zbocze opadające zeruje timerek a zbocze narastające sprawdza ile upłynęło czasu (ile trwał impuls). Jeśli czas trwania impulsu oznacza RESET PULSE od mastera, zaczyna się cała obsługa w moim SLAVE. W nocie katalogowej jest napisane, że jeśli...
No nie.. tzn wiedziałem, ale nie stosowałem do tego takiego rozwiązania. Sprawdzę opiszę. Właściwie to masz rację z zasileniem termometrów równiez. Ja jednak jeszcze trochę będę trwał przy skrętce. Ale koledzy proszę o jedno... my nie rozmawiamy o zasilaniu termometrów i o ich działaniu lub nie, lub o błędnych odczytach. Sprawa się toczy o przełączniki...
http://obrazki.elektroda.pl/5636705900_1... https://filmy.elektroda.pl/37_1378532310... Termometr mikromocowy LCD ATMEGA16 Tym razem głównym celem projektu było sprawdzenie możliwości wykonania mikromocowego systemu pomiaru temperatury w oparciu o możliwie standardowe elementy, mówiąc w skrócie byłem ciekawy czy zwykły avr może być...
Witam! Na podstawie kilku wcześniejszych projektów: http://www.elektroda.pl/rtvforum/topic25... http://mikrokontrolery.blogspot.com/2011... i kilku innych, postanowiłem zaprojektować własną płytkę testową pod Atmega16 Co ma być na płytce: -mikrokontroler Atmega16 -złącze 6PIN (wyjscie do programatora)...
(...) odczytu temperatury. Jaki zaproponowałbyś kod (AVR GCC), aby nie trzeba było używać delay'a (może pooling lub maszynę stanu) ? Przy okazji przedstaw optymalną (bez zmiennoprzecinkowych liczb) konwersję danych ze scratpad'a na stopnie (może być złożeniem liczb całkowitych jako stopnie i części ułamkowe). Do obsługi termometrów DS18B20 bez blokowania...
Ktoś polecał mi eram zamiast readeeprom ale musiałbym dokładać kolejne zmienne a program tak czy tak byłby długi. Chyba że się mylę. Masz rację mocno się mylisz, tym bardziej że to co robisz za pomocą readeeprom czy writeeeprom to to samo co dim as eram tyle że w sposób na piechotę i pod górkę i to mocną górkę. Koledzy miałem ochotę zrobić te DS na...
Witam. Chciałbym odczytać temperaturę z czujnika DS18B20 przez długie i krótkie migania diodą. Np gdy mamy temperaturę 25 stopni to dioda sygnalizowała by dziesiątki za pomocą dwóch długich piknięć a jedności poprzez 5 krótkich. Dopiero zaczynam zabawę z Bascomem i kompletnie nie wiem jak się za to zabrać. Poniżej wklejam fragment kodu z odczytem temperatury....
Odczytuje z 1wire kolejno 9 bajtów danych do tablicy. Temperatura to liczba 16bitowa, pierwsze 8 bitów zapisanych jest w 1 elemencie tablicy 8 kolejnych w 2gim. Jakim poleceniem mogę połączyć te te dwie liczby aby otrzymać jedną 16bitową? Czy może ktoś ma jakiś inny sposób aby odczytać temperaturę i sumę kontrolną (1,2 bajt - temperatura, 9ty -CRC)...
informującego o zmianie temperatury co 1 stopień w górę lub dół To są założenia więc co każdy stopień ma być krótki sygnał. Warunek If T >= 200 then spowoduje że przekroczenie 20 stopni spowoduje sygnał. Muszę chwilę pomyśleć. Trzeba badać także różnicę pomiędzy odczytem poprzednim a następnym. Sprawdź to: (zmień procesor, konfigurację LCD, portów,...
W uC należy odpowiednio ustawić FUSE BITY!!! Poczytaj przyklejony temat.
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ę...
http://obrazki.elektroda.pl/8783995300_1... Przedstawiam projekt termostatu do mojej wytrawiarki, opartej na Atmedze 8, termometrze cyfrowym DS18B20 oraz przekaźniku JQC-3FF. Motwywacja Wytrawiarkę udało mi się kupić na allegro, niestety przepłaciłem (zakupiłem ją od cwaniaczka, który wykonał ją niechlujnie oraz dorzucił jakąś grzałkę...
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...
udało mi się z tego kodu wyciąć komunikacje 1wire i całą resztę potrzebną do o debrania temperatury z ds18b20 i wklejiłem to do kodu z którym działa mi lcd troche się męczyłem aż na wyświetlaczu w miejscu gdzie powinna być temperatura pokazało sie -00.2 ds18b20 nie reagował na zmiany temperatury wszystkie delay_ms zwiekszyłem 8 razy bo mój atmega chodzi...
Ręce to opadają i masz rację ;) Masz błąd w definicji zmiennej do której wpisujesz ID czujników to nie jest jeden bajt tylko tablica 8x8bitów czyli 8 bajtów. Adresujesz nie istniejące czujniki bo ich adresy sa niepoprawne, wysyła procek ciagle ten sam bajt. Dim Adres1 As Byte 'adres pierwszego Dim Adres2 As Byte 'adres drugiego Dim Adres3 As Byte 'adres...
$regfile = "m8def.dat". $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.6 , Db5 = Portb.7 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.2 , Rs = Portd.0 Config 1wire = Portc.0 Declare Sub Odcz_temp Dim Temperatura(2) As Byte Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32, Do Call Odcz_temp Cls If Temperatura(2)...
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...
A mógłbyś pomóc, bo mam właśnie problem z tym czujnikiem i to w obudowie TO92. Podłączony do Atmega8 z zewnętrznym kwarcem 8MHz do PortB.0 Podłączenie nóżek mam takie:1-masa,2 - uC, 3-do 5V i rezystorem 3,8k do nóżki - 2 Pokazuje średnio -112 C, temperatura po trzymaniu czujnika wzrasta. Zachowuje się tak niezależnie od rezystora jaki podepnę. KOD:...
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....
Witam wszystkich, robię prosty układzik na uC atmega. Zadaniem go będzie odczyt temp z czujnika ds18b20 i ustawianie zewnętrznego przetwornika dac po spi. Wszystko praktycznie napisałem, bo części programu były wykorzystywane w innych układach, które pracują, z spi problemu nie ma, z odczytem ds też. Ale chodzi o to, żeby cały układ pobierał jak najmniej...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
[syntax=basic4gl] $regfile = "m8def.dat" 'deklaracja procesora $crystal = 8000000 'deklaracja czestotliwosci taktowania Config Lcd = 16 * 2 'typ wyswietlacza i konfiguracja pinow Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'definicja...
Proszę o wyjaśnienie przyczyny przekłamań odczytu temperatury z czujnika DS18B20, program poniżej. Najczęściej układ "kłamie" że jest 55 lub 127,5 °C Dodam że wykorzystuję odbiornik RC5 i PWM do sterowania podświetleniem LCD. Czy przekłamania mogą się brać z tego że kilka komend korzysta z tych samych timerów lub przerwań timerów? jak to obejść z góry...
DS18B20 nada się, z tym że jeśli chcesz go używać na zewnątrz to musisz go odpowiednio zabezpieczyć przed warunkami atmosferycznymi. Piszesz że jesteś początkujący, a do DSa musisz sobie poradzić z 1Wire - jeśli to nie problem dla Ciebie to OK. Jeśli tak, to możesz go zastąpić np. LM35 który od strony programowej będzie łatwiejszy w obsłudze. Możesz...
Z takim kwarcem da się zrobić programowe 20kHz. Ze sprzętowym nie ma problemu z jakimikolwiek przerwaniami. Zapewne chodziło o przerwania występujące podczas multipleksu wyświetlaczy, ale wtedy przy odpowiednim zarządzaniu przerwań także nie ma problemu z odczytem z 1Wire.Także piszę w bascomie i mam program z 4xDS18B20 na przewodzie 20m i z 15 multipleksowanymi...
Tym razem read jest zle napisane - zauwaz, ze petla + wczesniejsze opoznienia trwa co najmniej 63us, czyli czasami moze czytac 0 jako 1. Poza tym po co w petli to czytasz? Juz bym zrozumial gdybys zrobil jakies odszumianie, ale tak zwracasz ostatnia przeczytana wartosc. Odstepy pomiedzy bitami sa ciagle za krotkie - czemu nie probkujesz kiedy linia...
No ale pisałem, że chodzi o to, że główny program korzysta z komendy input, która odbiera polecenia via RS232. I w tym czasie nie ma możliwości "równoległego" odczytu z termometrów. A chodzi mi o to, żeby po odebraniu zapytania o temperatury pomiary były już "gotowe", co można zrobić tylko odczytując je w przerwaniu. Jest tylko kwestia prawidłowej obsługi...
nie, nie, nie, nikomu nie chciało się zajrzeć do dokumentacji BASCOMA? wszystkie polecenia obsługi 1wire można przeprowadzać na DOWOLNEJ LINII: 1WREAD Top Previous Next Action This statement reads data from the 1wire bus into a variable. Syntax var2 = 1WREAD( [ bytes] ) var2 = 1WREAD( bytes , port , pin) Remarks var2 Reads a...
Witam Ostatnio zacząłem robić termostat na ds18b20 i ATmega 32 w bascomie. Program z odczytem temperatury z dwóch czujników działał, ale pojawił się problem, ponieważ jeden czujnik umieściłem na polu a drugi w pokoju. I w pewnym momencie pojawiło mi się „pok 3,6oC” „zew 21,3oC”. programowo zamieniłem czujniki, ale po resecie...
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...
Za bardzo nie wiem już co może być powodem takiego zachowania mikrokontrolera, więc jestem zmuszony prosić Was o pomoc :) Zacznę może od tego, że pracuję na zestawie ZL3AVR i Atmedze16. Chciałem podpiąć do uC termometr DS18B20, ale uC go nie widzi. Napisałem sobie program, do zliczania urządzeń na 1W ale pokazuje mi ciągle 0, oto jego kod: '---------------------------------------...
Witam. Mam problem z poprawnym odczytem temperatury z czujnika DS18B20. Otóż na ATmedze328 wszystko działa poprawnie. Używając tej samej biblioteki na ATmega32 wartość raz wynosi 0.0 C a raz różne dziwne wyniki np. 6548 itd. Dodam, że DHT11 działa, więc odmierzanie czasu przy użyciu 1wire jest poprawne. Nie wiem, gdzie może tkwić problem. (at)edit -...
Dziękuję Wam za pomoc. Menu działa. Dorobiłem sobie dwa pliki do odczytu i wyświetlania temperatury na DS18B20. Mam plik_glowny.bas I pliki do DS18B20 - Config_DS18B20.bas oraz DS18B20.bas W celach testów zrobiłem osobny program aby tylko sprawdzić czy popranie działa odczyt temperatury. I działa bezbłędnie. Zasada działania tych plików jest następująca:...
Witam, Wiem, że podobne tematy były na forum wałkowane dziesiątki razy, ale przejrzałem tamte posty i nie znalazłem w nich odpowiedzi na moje problemy. Próbowałem wykorzystać zawarte w nich, proste programy, testowałem sposoby w nich podane i nic. Ale do rzeczy. Mam układ taki jak na schemacie: http://obrazki.elektroda.pl/7365537400_1...
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 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 http://hobby.abxyz.bplaced.net/index.php... (oczywiście ze zmienionym pinem 1wire):...
Witam Muszę stworzyć układ w którym bedę używał 8 czujników DS18B20 , i każdy musi pracować na osobnym pinie. Nie mogę podpiąć wszystkich na jednej linii i odpytywać ich po ich ID. Kiedyś robiłem sterownik w którym odczyty robiłem w ten sposób: Sub Odcz_temp1 Config 1wire = Portb.0 1wreset 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite &H44 'start...
Skoro kto pyta nie błądzi to pozwolę sobie podpiąć się do tematu :) W życiu napisałem już kilka razy obsługę 1-wire na różne procki i wszystko działało od ręki. Tym razem trafiło na AVR+WinAVR i nie jest tak kolorowo...gapię się w monitor 2 dni i funkcje jak nie działały tak nie działają. #define WIRE_PORT PORTD #define WIRE_DIR DDRD #define WIRE_PIN...
A coś tańszego jest, w kosztach ds18XX ? A nie ma jakiegoś czujnika wilgotności i ciśnienia opartego na magistrali 1Wire ?
Wsad testowałem na płytce testowej i działa. Schemat wydedukowałem z kabelków i manuali dotyczących podłączania uc. Załączam poniżej [syntax=basic4gl]$regfile = "m8def.DAT" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Lcd = 16 * 2 Config 1wire = Portd.5 Config...
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);//...
Mam problem z pomiarem temp na ds18b20. Ten sam problem występuje na attiny2313. Na podłączeniu "zwykłym" działa a jak podłącze wyświetlacz LCD przez I2C to na wyświetlaczu wyświetla się Temp: -MMM... i tak w nieskończoność czasami jest to -2M..., -B... , -(at)... Jestem początkującym więc proszę o wyrozumiałość :D Kod który działa prawidłowo: [syntax=vbnet]...
http://idom.svn.sourceforge.net/viewvc/i... Przejrzyj pliki 1wire.h i DS1820.h oraz odpowiednie c. Co prawda w c++ ale na AVR i chyba dosyc przejrzyste.
Czy jest możliwy błąd podłączenia? Tutaj oczywiście zmieniłem na PB.1 Tak, wszystko jest możliwe... Spróbuj ten code: [syntax=basic4gl] 'DS18B20 - ROM reading test from single sensor DS18B20 $regfile = "m8adef.dat" $crystal = 4000000 $hwstack = 80 $swstack = 80 $framesize = 40 Config 1wire = Portb.1 'Config 1wire = Portd.5 Dim N As Byte Dim Dsid1(8)...
Stosuję odczyt DS18B20 w przerwaniu, dlatego, że przerwanie rozkładało mi transmisję 1wire. Przerwanie jest wyzwalane z częstotliwością 100 Hz, przez częstotliwość sieci 220 V i służy do obsługi ściemniacza. Transmisję 1wire umieściłem w tym przerwaniu, żeby uniknąć jej zakłócania właśnie przez to przerwanie. Co przerwanie wykonywana jest kolejna instrukcja...
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...
Witam. Otóż mam taki problem ;) Dwa czujniki DS18b20 podłączone są do osobnych pinów Atmegi168, PINB0, PINB1. Chciałem to zrobić w ten sposób aby w przerwaniu ustawiana była flaga (co sekundę) która realizowana była w pętli głównej while(1), w ten sposób, aby co sekundę na zmianę wykonywany został convert oraz odczyt. Wydaje mi się, że wszystko zrobiłem...
Witam. Oto KOD: 'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z książki "Mikrokontrolery dla Początkujących" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja częstotliwości pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 ,...
Warto pomyśleć nad obudową i zabezpieczeniem wtyczek przed rozłączeniem. Obudowa to tylko chyba drukarka 3D ponieważ nie znalazłem żadnej innej kupnej która by pasowała. Co do wtyczek to już myślałem nad tym, co prawda nie rozłączyły mi się jeszcze ani razu, ale jakie inne wtyki z zatrzaskiem by tu zastosować? Jakbyś miał schemat normalnych wymiarów...
Witam, Mój problem jest dziwny. Mam przetestowany układ na płytce stykowej, program też działał bez zarzutów. Wykonałem PCB złożyłem, ATmega normalnie została zaprogramowana i reaguje. Zczytałem pomiary temperatury przez UART- też działa. Obecnie sterowanie jest dwustanowe, docelowo będzie PWM i PID. A teraz moje 2 problemy: 1) Sterowanie MOSFETEM....
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)....
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...
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
również używam fastAVR i myśle że jest fajniejszy od bascoma, a dziś zacząłem zabawe z 1Wire Próbuje uruchomić przez cały dzień DS18B20, próbowałem już róźnych kombinacji i ciągle to samo... zachowuje się tak jakby nie działał. Napisałem teraz program FireFighter'a, i wskazuje mi na wyświetlaczu 00000.Nawet jak podgrzewam czujnik. Pytanie: co może być...
ds18b20 1wire 1wire ds18b20 atmega 1wire
skoda wycieraczka tylna volkswagen radio navigation programy formularzy
thessla green mikrokomputer cobra1
Płyta główna do telewizora Samsung UE46F8500SL - wymiana i diagnostyka Wybór sprzęgła do Opla Vectry C 2.2 Direct (Z22YH)