Instrukcja odczytuje 8 bajtów unikalnego numeru i zapisuje je w tablicy począwszy od wskazanego indeksu w stronę narastania indeksów. Czyli jeśli wskazuje się 1 to numer pierwszego czujnika jest w komórkach od 1 do 8. To znaczy, że powinieneś napisać: Z = 9 Adres(z) = 1wsearchnext()
Z tego swojego kodu usuwasz "Odczyt numerów ID czujników temperatury" A w to miejsce wpisujesz odczytane adresy do tablicy z adresem danego czujnika. np. tak będzie to wyglądało dla pierwszego czujnika: Dsid1(1)=&H28 Dsid1(2)=&H65 Dsid1(3)=&HC3 Dsid1(4)=&H89 Dsid1(5)=&H05 Dsid1(6)=&H00 Dsid1(7)=&H00 Dsid1(8)=&H25
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
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ą...
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....
Witam. Szukałam już tutaj na forum i na google, ale nie znalazłam odpowiedzi na moje pytanie. Otóż mam zrobić na zaliczenie projekt termometru 20xDS18b20 z zapisem numerów ID czujników do EEPROM-u. Następnie chciałabym przy pomocy tych numerów ID zapisanych w EEPROM komunikować się z wybranym przeze mnie czujnikiem w celu odczytu temperatury. Na razie...
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
Mniej wiecej tak to mozna zrobic ;) Listing do AVR-a pozmieniaj nazwy portów '################# wyswietlanie temperatury ######################### Multiplex: Dim Mux As Byte Dim 100stopni As Integer Dim 10stopni As Integer Dim 1stopni As Integer Dim Dstopni As Integer Config Porta = &B11111111 Config Portc = &B11111111 T2 = Abs(t1) Porta = &B11111111...
Witam! Mam problem z odczytem ID czujników ds18b20 podłączonych do uC. [syntax=c] while(1) { check_ds18b20 = OneWire_reset(); if(check_ds18b20 == 1) { OneWire_write_byte(0x33); // READ_ROM lcd_goto_xy(0,0); for(int i=0; i<8; i++) { ds1_ID[i] = OneWire_read_byte(); show_buff(ds1_ID[i]); } }else { write_text_from_flash(LCDtext_2); // jeżeli brak DS-a...
Witam, Jak w temacie. Mam układ w którym (niestety) pracuje wykręcona do 25MHz Atmega 32. Wszystko działa bardzo dobrze i nie przeszkadza jej taki ovrclock ale mam problem z odczytem danych z czujnika DS18B20. Komunikacja typu RS232, ISP, i2C działa idealnie. Nie mogę zejść z taktowaniem niżej. [syntax=vbnet] If DSwait < 5 then 1wreset 'reset magistrali...
Niestety jakoś mi ten sposób odczytu nie chce działać. Obecnie używam takiego sposobu odczytu: Config 1wire = Portc.6 1wreset 'reset magistrali 1-Wire 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite &H44 'start pomiaru temperatury Waitms 750 'opóźnienie na czas pomiaru 1wreset 'reset magistrali 1-Wire 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite...
Dzięki za pomoc! Okazało się że jednak procek ze sklepu był uwalony :) Nowy procek działa bez żadnych problemów :) Teraz mam inny problem: Do tego procka mam dołączone 3 układy ds18b20 i nie wiem dlaczego co jakiś czas jedna z temperatur wynosi 16 stopni. Dzieje się to nieregularnie i wystepuje raz na jednej czujce raz na drugiej :( Prosze o pomoc ten...
Wydaje mi się, że pomyliłeś fazy sygnałów wysyłanych do czujników. Najpierw powinno być[syntax=basic4gl] 1wreset 1wwrite &HCC 1wwrite &H44[/syntax] . To oznacza, ze wszystkie czujniki muszą zacząć konwersję. Następnie trzeba w jakiś sposób odczekać około 750 milisekund i dopiero dokonać odczytu z poszczególnych czujników. Odczyt też wypadało by poprawić...
Witam Dzięki pomocy elektrody i 2 mądrych książek udało mi się coś takiego naskrobać. Przez moment używałem 2 timerów ale po jakimś czasie wyszło coś takiego: $regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = 255 'wszystkie końcówki jako wyjścia Portb = &B11111111 'na początek wygaś Config Portd = &B1111111 'dwie najmłodsze jako...
Z braku sukcesów w programowaniu funkcji search_rom 1Wire rozwiązałem problem następująco: 1) użytkownik podłącza jeden czujnik pod 1Wire, program wykonuje funkcję read_rom, użytkownik ustala numer czujnika który aktualnie podłączył. 2) program zapisuje tak odczytany ROM do pamięci EEPROM procesora 3) z każdym czujnikiem użytkownik podstępuje dokładnie...
Książka to "Programowanie Mikrokontrolerów AVR w jez. BASCOM" Program termometra. Przykład z książki. 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler...
Niedawno pisałem takie oprogramowanie w C - sterowanie fazowe triaka a odczyt takze był z ds'a. Także miałem ten problem co autor tematu - jedno z dobrych rozwiązań to zastosowanie maszyny stanu, gdzie zmiana kolejnych stanów jest uzależniona od przejścia sinusoidy napięcia sieci przez zero(inaczej:maszyna taktowana jest przerwaniem zewnętrznym ). Samo...
Temat chyba przekazał wszystko kod od 10 lat nie ruszany działający ale zachciało mi się aby zwracał błąd gdy nie ma jednego czujnika na magistrali kombinuję i stoję w miejscu. [syntax=basic4gl] Sub Odcz_temp K = 1 For J = Poczatek To Koniec 'Odczyt numeru seryjnego z eeprom Readeeprom Register_number(k) , J Incr K Next J Call Zap_num 'Wywolanie procedury...
Nie znam bascoma, ale po tym co piszesz problem masz natury błędnego podejścia. Jak zabierzesz jeden czujnik to oczywiste jest, że urządzenie przy 1wire search zwróci czujniki w innej kolej kolejności. Np jak zabrałeś czujnik zwracany jako pierwszy (z "najmniejszym" numer seryjnym) to drugi czujnik stanie się pierwszym. Masz 2 wyjścia: - zapmiętać numery...
Po podłączeniu kolejnych czujników zmienia się obciążenie linii/pojemność itp. Konieczne będzie dopasowanie czasów w funkcjach obsługi 1wire. Np. opóźnienie lub przyspieszenie odczytu bitu z linii o 2us. Co do CRC to liczysz tak samo jak CRC scratchpada z temepraturą. CRC z numeru seryjnego (z 8 bajtów) powinno wynieść 0. Jeśli != 0 to błędnie odczytany...
Dzień dobry, Proszę o wyrozumiałość to mój pierwszy post. Posiadam mikrokontroler Atmega8a i od kilku dni wzmagam się z czujnikiem Dallas 18B20, nie mogę odczytać nawet numeru seryjnego za każdym razem dostaje wartość 255. Oczywiście korzystam tylko z jednego czujnika. Przeczytałem kilkanaście tematów na temat tego czujnika tutaj na forum jednak nie...
Witam Próbuje przerobić kod obsługujący kilka DS18B20 na jednej linii i drugi obsługujący kilka DS18B20 na kilku liniach. Niestety jak na razie efekt jest taki, że działa tylko pierwsza linia, czyli dwa DS18B20. Jeśli chodzi o konfiguracje, to celowo nie ma Config 1wire = Porta.1 gdyż wpisanie tego portu, jako 1WIRE powoduje wyświetlanie 0.0 dla pierwszego...
witam wszystkich - to jest moj pierwszy post i oczywiscie jest tez prosba uporania sie z problemem napisalem program ktory odczytuje temperature z 1 czujnika i wyswietla ja na 2 wyswietlaczach 8 segmentowych niestety nie potrafie go przerobic odpowiednio do odczytu z dwoch czujnikow one_wire_reset(); one_wire_byte_write(SKIP_ROM);//...
http://obrazki.elektroda.pl/1523592300_1... W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja...
'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...
Witam, moze ktos przesledzic ten kawaleczke kodu (BASCOM) i powiedziec co jest nie tak ? Problem tkwi w tym ze odczytywane temperatury sa ok (wystarcz mi dokladnosc do 1 st C) jednak jak odlacze ktoregokolwiek DS'a to Tin = Tout zamiast wpisac wartosc 99 (w taki sposob wykrywam ze uszkodznieu ulegla ktorys czujnik) Program to kawalek kodu ktory ktos...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Jak czas transmisji danych? Wysyłasz do wszystkich DS polecenie zmierzenia temperatury (kilka/kilkanaście ms albo mniej), czekasz 750 ms i odbierasz dane ze wszystkich (kilka/kilkanaście ms albo mniej). Dokładne czasy możesz wyliczyć na podstawie szybkości transmisji i ilości przesyłanych danych. No i właśnie o wyliczenie tych dokładnych czasów tutaj...
Witam Zachęcony sukcesami z płytką EVB 4.3 zaprojektowałem i zamówiłem swoją - na początek z AtMega8 w DIP. Do tego pamięć 24C32 oraz układ do RS485. Wszystkie układy mają kondensatory 100 nF ( stabilizator 7805 również + jeden elektrolit ). Całość ze złączem pod wyświetlacz 2*24 ( właściwe 4*12 ) Reset przez rezystor 10 K do +5V AtMega8L ( na 8 MHz...
Kolego coś takiego wymyśliłem :[syntax=vbnet] $regfile = "m16adef.dat" $crystal = 80000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porta = Input 'port A jako wejścia Config Portb = Output 'port B jako wyjścia ' Config Portd = Input 'Port D Jako Wejścia Config Portc = Output 'port C jako wyjścia Config Sda = Portc.1 'konfiguracja pinu magistrali...
Tu masz prosty programik, który kiedyś pisałem. Przedstawia obsługę zarówno wersji B jak i S. [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...
Trochę masz to dziwnie napisane jeśli chodzi o odczyt temperatury. Co jak czas masz odświeżanie pętli głównej ?. Używanie rozkazu Skip Rom to lipa trochę. Jeśli masz ochotę to popraw to trochę tzn. warto odczytać przy starcie numery seryjne termometrów jak masz dwa i nie chce Ci się implementować procedury automatycznego przeszukania to poprostu odczytaj...
Witam Mam układ, który mierzy dwie temperatury ( DS18B20 ), dwa napięcia ( PCF8591 ( pobiera czas ( PCF8563 ), a z powodu niedużego wyświetlacza ( 12 x 4 ) wskazania są zmieniane do 10 sekund po przepełnieniu Timer1. Układy PCF8563 i PCF8591 są podpięte z "zewnątrz" przewodami około 10 cm. Magistrala I2C ma obniżoną prędkość przez Config I2cdelay =...
No i przedobrzyłem Dokonałem optymalizacji kodu, oszczędzając kilkanaście procent pamięci FLASH, ale... sygnał z pilota NEC ( takie małe płaskie na baterie pastylkową ) przestał być odbierany - brak jakiejkolwiek reakcji na naciśnięcie przycisku w pilocie. Poniżej kod: Print Command w przerwaniu Infrared , żeby sprawdzić, czy coś odbiera - reakcji brak,...
Dzięki za odpowiedź . Po deklaracjach zmiennych przed wejściem do pętli głównej programu mam ilość znalezionych czujników i sprawdzanie id czujnika Dsid1(1) = 1wsearchfirst() 'Znajdź kolejny czujnik podpięty do portu Dsid2(1) = 1wsearchnext() 'Znajdź kolejny czujnik podpięty do portu Dsid3(1) = 1wsearchnext()...
Tylko nie wywołuj w przerwaniach tak długich bloków instrukcji - lepiej ustaw flagę, która wskaże pętli głównej programu wykonać te instrukcje. Ale co tu możemy mówić, jak widać tylko wycinek programu. Zgadza się, dlatego wklejam nieco więcej Flaga_wybor jest co 10 sekund, Blokada zatrzymuje odczytywanie czujników na czas odbioru DCF77, zwłaszcza DS18B20...
Związek odczyt1 z "Z" ma taki iż testuje bity wyczytalem to z pomocy w bascomie. Jestem początkującym więc hcętnie mile widziana porada. A jakiego typu jest Z :?: Byte,Word,itp. Skoro chcesz odczyteć 120 bit ze zmiennej T , to T jest prawdobodobnie typu super-hiper-extra-looooooong :D Żartowałem ;) Poza tym , po co komplikujesz proste zadanie :?: Dim...
Rejestrator dość spory. Większość danych zbiera płytka nadajnika na Atmega328 i tam następuje praktycznie całkowita obróbka - oprócz danych z siedmiu DS18B20, jednego DHT11 oraz MPL115A2, odbieranie czasu z DCF77 i jego aktualizacja w PCF8563 przesyłane są dane o tym czy nie ma awarii czujnika ( zmienna Err ) oraz informacja o histerezie czujników DS18B20...
hmm... przyznam, że opierałem się na przykładach, które znalazłem tutaj, i prawdę mówiąc, z braku czasu nie zagłębiałem się w protokół 1wire, dlatego pewnie wyszły mi głupoty. Oczywiście, funkcja powinna odczytywać temperaturę z termometru o zadanym DS_id. Co do przerwania - pomyślałem o tym , ponieważ w głównym programie korzystam z input na Rs232,...
Witam. W dziedzinie mikrokontrolerów jestem początkujący więc proszę o wyrozumiałość. Mam problem zaprogramowaniem Atmega8. Programator zrobilem sobie według schematu z tego posta 'Termometr 4 punktowy DS18b20 $regfile = "m8def.DAT" $crystal = 1000000 'Deklaracja portów od wys'wietlacza LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1...
A więc udało się :) Oczywiście korzystam z funkcji tak jak chciałem. Deklaracja: Declare Function Ds_odczyt(byref Stringi As Byte ) As String Wyszukiwanie: ' Wyszukiwanie Ds_count = 0 Ds_tempcount = 1wirecount() If Ds_tempcount > 0 Then Ds_i = 1 Ds_j = Ds_i + 7 Ds_id(1) = 1wsearchfirst() Do If Ds_id(ds_j) =...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
Chodzi o te zaznaczone ustawienia z obrazka. Są wstawiane jako domyślne jeśli się ich nie wpisze do kodu. Chodzi o to, że kiedy Bascom skacze do jakiegoś Sub to odkłada na stos te wcześniej omawiane dwa Bajty. W takim Sub już może tego nie widać, ale tez skacze np. do procedury odczytu czujników 1Wire. To już np. cztery bajty a w tym momencie nadchodzi...
...czy ktoś z Was ruszał te pastylki? A czy Ty , zaglądałeś do dokumentacji tej "pastylki" :?: Wątpię :| Przecież jedyne co potrafi DS1990A , to podanie swojego numeru seryjnego(ID) , natomiast Ty , nakazujesz mu zmierzyć i podać temperaturę. Poza tym , na zmienną typu INTEGER , Bascom rezerwuje 2B , a Ty na siłę chcesz wepchnąć 8B.A więc poczytaj...
Dziekuje za odpowiedz Tego kodu probowalem i wiem ze dziala.mam pytanie czy po zaniku napiecia badz restarcie programu czujka raz zapisana jako pierwsza zawsze edzie pierwsza a druga zawsze druga? co sie stanie jak jedna prestanie dzialac z sieci np 8 czujek? ale ja mam jeszcze inne zmartiwienie. powiedzmy tych czujek mam 8 i z kazdej spisalem adres...
Musisz odczytać numery seryjne tych czujników, a potem je odpowiednio adresować. Ja Ci nikt nie pomorze to wieczorem Ci wkleje przykład. PL
w sumie płytka z układem jest już gotowa... zrobiłem wszystko tak jak na schemacie u Ducha tylko że podpiąłem nie 4 a 2 czujniki DS i tutaj moje pytanie... czy dobrze przerobiłem program z 4 czujników na 2: $regfile = "m8def.DAT" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4...
Witam buduje taką mini stacje pogodową i zatrzymałem się z obsługą ds-a co w tym może być nie tak ? W książce którą posiadam jest tylko obsluga 1820. Docelowo mają być 2 czujniki na 2 liniach. Zrobie to dublując kod . Jednak przy jednym nic nie działa wyświetlacz zostaje cały czarny bez czujnika , i z nim też . Oto kod: '###STACJA POGODOWA BY GEGE97##################################...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Witam. Czy da sie z procesora (at90s8515) odczytać program do pliku .BAS ? Zrobiłem termometr na czterech czujnikach DS18B20 , zamontowałem go w samochodzie ale teraz chciałem dorobić do niego woltomierz żeby pokazywał aktualne napięcie akumulatora... ale niestety nie mam juz na komputerze programu do tego termometru. Nie będe pisał nowego programu...
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
woszu -> proponuję - zastanów się nad tym dokładnie - bo na razie - przypadkiem ci działa - ale sam się zdziwisz gdy zaczną ci wskakiwać jakieś temperatury z kosmosu.... twój pierwszy przykład był całkowicie zły bo- generalnie robiłeś to tak: 1. wysyłasz adresz czujnika nr.1 2. weryfikujesz czujnik nr.1 3. odczytujesz temperaturę z czujnika nr.1 4....
Udało mi się trochę odchudzić program. Wykorzystałem tablice + inkrementacja numeru komórki w tablicy. Chciałem wykorzystać FOR - NEXT, ale coś nie działa jak trzeba Do Locate 1 , 1 Lcd A Locate 1 , 7 Lcd B Locate 2 , 1 Lcd C Locate 2 , 7 Lcd D Locate 1 , 13 Lcd E Locate 1 , 19 Lcd F 'If Szukaj = 0 Then Call Przeszukaj_i2c 'End If Loop End '***********************...
$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 LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Lcd = 16...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
Tzn. wiem, że zmienna typu bajt nie może być większa niż 255, ale zapomniałem, że nie robi się operacji na różnych typach zmiennych razem [syntax=vbnet] Solar_mid_mod_temp = Solar_mid_mod_temp \ 2 ' srednia z dwoch czujnikow = 283 [/syntax] co prawda przekracza 255, ale wynik z dzielenia przez 10 i Modulo 10 już nie, czyli 28 i 3 [syntax=vbnet] Solar_mid_dec...
Rezystory są już dane na płytce, zresztą zegar na PCF działa bez zarzutu ( no może trochę śpieszy, ale to kwestia kondensatora przy kwarcu ) sprawdziłem połączenia - nóżki 5 czyli SDA ( 24C02 i PCF8583 ) są podłączone do 23 nogi uC, czyli PC1-SDA. Podobnie z SCL. Teraz zrobiłem tak, że odczyt jest po włączeniu/resecie ( przed pętlą główna ), a zapis...
Witam! W zeszłym roku był na ten temat topic. Termometr 4 punktowy DS18b20 by Duch na podstawie materiałów znalezionych w sieci 'Kontakt duszkowski(małpa)o2.pl $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja...
Witam Chciałem dorobić termometr do samochodu z temp. zew. i wewn. i wyświetlaczem LCD 2x8 . Przerobiłem trochę kod z forum tylko że był on do atmegi8 i niestety nie chce się "zmieścić" do Attiny2313. Jak zoptymalizować kod programu co pozmieniać ? Co zajmuje najwięcej pamięci ? Flash used 129 % Attiny2313 $regfile = "attiny2313.dat" $crystal...
Config 1wire = Portb.0 'deklaracja portu na którym będą podpięte DS18b20 Dim I1 As Integer , Ss As String * 6 Dim I2 As Integer , Tt As String * 2 Config Pind.1 = Input Portd.1 = 1 Config Pind.4 = Input Portd.4 = 1 Config Pind.3 = Input Portd.3 = 1 Config Pind.0 = Output Portd.0 = 0 Dim Dsid1(8) As Byte Dim Dsid2(8) As Byte Menu Alias...
Przełomowe odkrycie przerzucam się na 1wire ds18b20. 'SZCZEGULNE ZASŁUGI DLA Duch__ KTÓRY UDOSTĘPNIŁ KOD Z TERMOMETRU http://www.elektroda.pl/rtvforum/top... $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 4000000 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 =...
Potrzebuje emulator DS18B20 na atmega8 - mam na PC program do odczytu temp i chciałem w tym programie dodac inne parametry ( np wilgotnosc ) ale nie zmieniajac programu - w scrachpadzie bede wisyłał inne dane nie temperature. ( w bajtach temperatury lub bajtach uzytkownika wolnych 2szt) Aktualnie używam "lampomitari" , ale napisalem przeróbke programu...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam wszystkich! Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający...
plik numer 1wire.c #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include <math.h> #include <stdlib.h> #include <stddef.h> #include "my_lib.h" unsigned char wiersz=0; unsigned char kolumna=0; int main(void) { lcd_init(); char *tekst1=PSTR("Temp:"...
Jeśli chodzi o odczyt ID DS18B20, zrobiłem coś takiego: [syntax=basic4gl] Do Locate 1 , 13 Lcd T_solar1 Locate 2 , 13 Lcd T_solar2 If Flaga_wybor = 0 Then If Flaga_ds = 1 Then If Numer_ds = 1 Then Adres = 40 T_solar1 = Ss Gosub Odczyt_eeprom Elseif Numer_ds = 2 Then Adres = 48 T_solar2 = Ss Gosub Odczyt_eeprom End If Flaga_ds = 0 Flaga_wybor = 1 End...
Tak wygląda mój kod nadajnika Wyslij_rfm12 wywołanego przez flagę Flaga_wyslij
dzięki działa:) dodałem jeszcze buzzerek, ale mam takie pytanie układ ma działać jako termometr informujący o danej temperaturze i bliskości zagotowania wody w obiegu. Kod napisany teraz po przekroczeniu temperatury 70 C zacznie odgrywać melodyjkę, po przekroczeniu 80 inna, a 85 na bardzo piskliwą. Ale potrzebuje coś aby spełniało taka cechę: np. idę...
Po przeczytaniu wielu postów napisałem program który ma wyświetlać na wyświetlaczu LCD Napięcie , prąd oraz temp. Chciałem to wykorzystać do zasilacza, którego właśnie buduje. jednak po zaprogramowaniu procka wyświetlacz mi się nie inicjuje (zaświecają się kwadraty w pierwszej lini). Czy jest jakiś błąd w moim programie ? Proszę o sprawdzenie. $regfile...
Witam na wstępie chciałem powiedzieć, że nie jestem dobry w programowaniu, bo dopiero zaczynam i mnie to powoli wciąga. Mam parę pytań i postanowiłem napisać. Chce zrobić sobie taki mini komputer pokładowy do Fiata Cinquecento 700. Ten mały układ ma wskazywać temperaturę w środku samochodu i na zewnątrz a tak, że będzie pokazywać napięcie, jakim jest...
Witam[syntax=basic4gl]' ----------------------------------------... ' The support for this display has been made possible by Peter Küsters from (c) Display3000 ' You can buy the displays from Display3000 or MCS Electronics ' ----------------------------------------...
Witam Testuje termometr na dwóch Ds18b20 i żeby wynik wyświetlany był trzech wyświetlaczach 7seg. LED. Ma działać tak że najpierw pokazuje na 3 sekundy 1 temperaturę a po tym czasie na kolejne 3 sekundy pokazuje 2 temperaturę. Linie 1 wire podciągnąłem z rezystorem 3,3K do +5V. Wszystko działa temperatury się zmieniają i wyświetlają ale co jakiś czas...
If I3 > 0 Then .Nie wiem właśnie, w którym miejscu robię błąd, bo w sumie przepisuje wynik pomiaru do I3 i procedure If, then, else, end if.
Zobaczcie w linku jest komputer samochodowy na wyświetlaczu LCD 4*20. Tam przy temperaturach są znaczniki: "t1" i "t2". http://pl.youtube.com/watch?v=yJMelf8jW1... Zajmuja one jedno pole wyswietlacza. Jak wprowadzic te znaczniki do tego kodu, potrzebowalbym: t1, t2, t3, t4 $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal...
Tak, AVCC jest podłączone. Program w Bascom: http://obrazki.elektroda.pl/8556711100_1... http://obrazki.elektroda.pl/5791017800_1...
Witam mam pewien problem . Jakiś czas temu szukałem gotowego schematu i wsadu procesora aby zrobić termometr 4 kanałowy na wyświetlaczy 16x2. Zrobiłem płytkę, zaprogramowałem w bascomie mikrokontroler gdy podłączyłem wszystko, na wyświetlaczu w 1 linijce mam tylko kwadraty i tak cały czas, nie znam się na programowaniu ale staram się jakoś tego uczyć...
No właśnie, też myślałem o jednorazowej rejestracji. Odczytałem nawet numery ID moich czujników tylko nie wiem jak połączyć to z komendą 1wverify. Przykładowe ID 2500143500001187 Np. tak 1wverify Dsid4(1) jeżeli urządzenie o podanym adresie ID odpowiada to zmienna err zwraca 0 jeżeli nie to 1. A wszystko w helpie opisane...
Witam, mam taki problem. program wg mnie powinien po przekroczeniu ustalonej temperatury wyswietlac na LCD napis, wlaczac Buzzer oraz zapalic diode. A po nacisnieciu przycisku wyłaczyc to wszystko. I problem jest taki ze wylacza wszystko oprocz diody. Tzn po wlaczeniu sie alarmu dioda wogole juz nie gasnie ani po obnizeniu temperatury ani po nacisnieciu...
Witam Chcąc zbudować termometr wraz z alarmem, natknąłem się na forum Elektroda o temat "Termometr wraz z alarmem do CO - http://www.elektroda.pl/rtvforum/topic18... Termometr opiera się na projekcie użytkownika DUCH__. W kodzie widnieje błąd program ten ma wadę, że czujniki dobiera sobie losowo (czyli piec nie zawsze będzie piecem). Czy jest...
Znalazłem poniższy kod na "Elektrodzie" załadowałem do procesora, pomiar napięcia jest zrealizowany zgodnie z przykładem z książki o Bascomie, niestety coś jest nie tak, ponieważ mimo że do ADC1 nie przykładam żadnego napięcia na wyświetlaczu pokazuje napięcie 1,96-2,03 V, po przyłożeniu napięcia 5V wskazanie wyświetlacza jest prawidłowe. [syntax=basic4gl]...
Inna sprawa tych warrningów a inna to co ten kod tam oznacza bo jest poplątany. Po pierwsze musisz wiedzieć (można o tym poczytać w Helpie pod hasłem "Declare Sub"), że deklarując sub określasz też czy subowi będziesz przekazywał tylko kopie wartości danych zmiennych czy też przekażesz mu bezpośrednio te zmienne poprzez ich adresy. Dlatego są określenia...
Witam. Napisałem taki program lecz mieszkam w internacie i nie mam przy sobie fizycznie układu. Proszę kolegów o teoretyczne sprawdzenie programu, czy dobrze to zrozumiałem. Pozdrawiam [syntax=basic4gl] ' Termometr DS18B20 $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6...
Witaj Kolego. Ja zrobiłem obsługę one wire w C na mikrokontrolery i działa dobrze. Kilka kwestji jeśli używasz atmega8 to raczej nie używaj zmiennych typu float bo samo użycie tego słowa kluczowego zajmie Ci ponad połowę twojej pamięci flash, niestety tak to już jest. Kilka porad z mojej strony: 1. Czy przeczytałeś już w manualu od maxima/dallasa jak...
Na początku podłącz tylko jeden czujnik Odczytaj wartość temperatury, później numer seryjny. Jeszcze jedna uwaga, jak deklarujesz port jak wejście to nie tak Config Porta.1 = Input tylko tak Config Pina.1 = Input
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"...
Witam, postanowiłem dodać do programu pomiar temperatury mam czujnik DS18B20 , tylko że kod programu odpowiedzialny za sterowanie czujnikiem opóźnia działanie encodera ,gdzie jest tutaj błąd może czegoś nie uwzględniłem w tym kodzie ? poniżej cały kod [syntax=basic4gl] 'Filename Encoder_100.bas 'Version 1.00 'Date 2012-03-19 'Purpose Test of ALPS STEC11B13...
no widzisz u mnie nie wykrywa tego błędu. Wersja mojego 2.0.6.0 full wersion :) Zgadza się v2.0.8.0 też nie protestuje 8O A tak apropos Bascom-owego assemblera czy wiesz że można korzystać z wbudowanych w niego asm-owych procedurek :idea: Do wersji 2.0.11.0 (jeśli się nie mylę)Bascom nie miał takich przydatnych funkcji 1wire jak: 1wirecount(),1wseachfirst(),1wsearchnext...
Nie wiem jeszcze jak więc, liczę na pomoc do kodu poniżej chciałbym dodać funkcje sygnalizacji piknięciem z głośniczka na płytce, informującego o zmianie temperatury co 1 stopień w górę lub dół. płytka EvB 4.3 procesor - Atmega32 kod napisany w Bascomie ' Termometr DS18B20 $regfile = "m32def.dat" $crystal = 16000000 Config Lcdpin = Pin , Rs...
Kod jest dość spory więc wkleję najważniejsze fragmenty odpowiedzialne za RC5 ,SD i 1Wire. RC5 '***************************************... '****************************PROCEDURA ODCZYTU RC5**************************** '***************************************... Readir: Disable...
Witam,potrzebuję pomocy w dokończeniu programu (jeśli istnieje możliwość) schemat znalazłem na elektrodzie http://obrazki.elektroda.net/50_12609042... ,kod też który przerobiłem pod siebie (docelowo ma być to zamontowane w motocyklu) ma za zadanie dokonywać pomiary temp układu chłodzenia i oleju oraz pomiaru napięcia akumulatora i tu mam problem...
witam, robię termometr z dwoma ds18b20 i mam problem, ponieważ nie mogę wykalibrować tych pomiarów aby uzyskać dokładność do 0,1. Oraz wyświetlić wartość np. 21,5 st C. Termometr pokazuje mi 215, szukałem na forum, ale nic konkretnego nie znalazłem. Przedstawiam mój kod: 'Declare Sub Init Declare Sub Convallt ' Convert T on ALL sensors Declare Sub Odczyt_z_ds18b21...
Termostat, zasilanie 230V, praca w pomieszczeniach suchych, temperatura 20..30 stopni Celsjusza. Wejścia: 3 termometry ds18b20, max 100m (można stosować repeatery, konwertery protokołów czy zdalne termometry RF). Wejścia zabezpieczone przed uszkodzeniem, i zwarciem. Awaria jednego termometru nie może wpływać na pozostałe. Klawiatura lokalna foliowa...
Podpowiem Ci że fajnie jest sobie na kartce napisać szkielet i wszystko opatrzyć etykietami lub używać funkcji. Wtedy wszystko jest bardziej czytelne i nie ma żadnych zapomnianych linijek. Kod wykonuje się linijka po linijce od góry do dołu i jeżeli niczym go nie zawrócisz to się na końcu zatrzyma. W pętli głównej dajesz sprawdzanie wartości i ewentualne...
Od niedawna zajmuję się mikrokontrolerami i nauką Bascoma. Zakupiłem czujniki temperatury DS18B20. Po podłączeniu do atmegi8 szybko się zagrzały. Do zasilania układu podłączyłem 5V(nóżka3), nóżkę danych DQ(nóżka2) do atmegi i do zasilania przez rezystor3,3k a masę (nóżka1) do masy. http://obrazki.elektroda.pl/6582615100_1... Po takim podłączeniu...
Przed każdą instrukcją związaną z komunikacją 1-wire musisz wyłączyć wszystkie przerwania ponieważ 1-wire będzie się rozjeżdżał i będą wychodzić głupoty. No to próbowałem to tak zrobić. Czy wystarczy samo Disable Interrupts czy każde przerwanie trzeba z osobna? Niestety dalej krzaki, często 0 stopni, rozsunąłem nawet flagi a dalej nie jest dobrze....
Dzień dobry, Zbudowałem termometr cyfrowy oparty na układzie Atmega8 i czujniku DS18B20. Do tego podpięty jest wyświetlacz LCD. Termometr "pamięta" i wyświetla temperaturę maksymalną i minimalną z ostatnich 12 godzin. Do tego wszystkiego podłączyłem diodę RGB tak jak na schemacie: http://obrazki.elektroda.pl/6410117800_1... Zadaniem...
Witam Oto przykładowy program w BASCOM AVR obsługujący dwa czujniki o znanych numerach seryjnych: '***************************************... 'Konfiguracja AVR '***************************************... $regfile = "m162def.dat" $crystal = 16000000 $baud = 2400 Config Porta = 255 Porta = 255 Config Portb = 255 Portb = 255 Config...
Witam Po tym jak zacząłem korzystać z zmiennej DCF_Status.7 działa jak trzeba. Przedtem nie maiłem problemu z synchronizacją, ale z wyłączeniem odbiornika w przypadku jej braku ( u mnie włączenie odbiornika DCF77 powoduje blokadę wywoływania innych funkcji - wywołanie czujników DS18B20 oraz wysyłanie przez RFM12 blokuje przerwania, a tego nie lubi biblioteka...
Hej, Próbuję zrobić menu ustawień swojego sterownika i kompletnie mi to nie wychodzi :( Menu ma być sterowane pilotem NEC (pilot działa poprawnie) Jak ja to sobie wymyśliłem: 1. ekran główny (tu jest OK) - przycisk strzałka w lewo przełącza ekran na zegar "MAXI" - przycisk strzałka w prawo przełącza na ekran główny - przycisk strzałka w górę blokuje...
ds18b20 odczyt numer odczyt ds18b20 bascom ds18b20 bascom odczyt
podłączyć myszka tableta programator pralki hotpoint rezystancja ścieżki płytce
Odbiornik induktofoniczny – schematy, normy IEC 60118-4, LM386, OPA2134, AGC, DIY i profesjonalne rozwiązania Sony TA-E2000ESD - Problemy z włączaniem i wyłączaniem