kreska=3 kropki (czasowo) ale dobrze jest dać margines np. ±0.2 na niedokładności operatora nadającego. Odstęp kropka-kreska w znaku = 1 kropka (czasowo) między znakami wyrazu = 3 kropki między wyrazami = 7 kropek tempo nadawania w słowach na minutę: 1 słowo na minutę=czas 50 kropek (tzw. standard Paryski -> słowo PARIS ma 50 kropek. czas kropki=60/(50*WPM)=1.2/WPM...
Witam serdecznie! To jest mój pierwszy post na elektrodzie. Jestem początkującym Bascomowcem. Szukałem długo w necie rozwiązań typu "Tap tempo" dla AVR pod Bascom. Niestety nie było. Napisałem własny programik i działa. 'mój pierwszy program typu "metronom" 'z "nabijaniem tempa 1 przyciskiem 'Działa, ale czy da się prościej? $regfile...
xd No bo kabel zachowuje się jak kondensator: 2 przewodniki oddzielone izolatorem ;-) Więc pomiar z użyciem układu RC nic nie da, bo masz jakby z termistorem połączony równolegle kondensator, co zmienia parametry układu. Proponuję więc pomiar z użyciem ADC, powinien dać jakiś wynik, ale dokładność też pozostawiać będzie wiele do życzenia i poza tym...
nie wiem czy o to chodziło bo nie mam na czym uruchomić tego programu (tzn. mam Bascom ale nie mam zestawu '51), ale wg mnie dopiero ten program zadziała: $crystal = 16000000 '$default Xram $large Dim Cyfra(12) As Byte Dim Jedn_sekund As Byte Dim Tempo As Byte Config Timer0 = Timer , Gate = Internal , Mode = 1 Th0 = &Hd8 ' Tl0 = &Hd7 ' =10025 cykli...
0.0049 to wynik z dzielenia 5V(napięcie odniesienia ADC) / 1024 (rozdzielczość pomiaru przetwornika ADC w AtMega) Skoro rozjazdy u Ciebie są takie dziwne to przypuszczam, że zastosowałeś kolbę z inną termoparą niż autor projektu na którym się wzorowałeś. A tak na marginesie o po co te waitms 100 za pomiarem ADC?
Witam Masz pamięć nie ulotną na pokładzie. Poczytaj o WRITEEEPROM. Pozdrawiam
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Witam Chociaż nie programuję w bascomie, to według mnie będzie lepiej wyznaczyć równań prostych w pewnych przedziałach zamiast tworzyć dużą tablicę z danymi, w przypadku równań będziesz miał bardziej elestyczny program zmieninijac jedynie współczynniki prostych dostosowując zależność pwm od temperatury je do swoich potrzeb zamiast za każdym razem zmieniać...
1. (pomiar > temp+histereza) -> wyłącz 2. (pomiar < temp-histereza) -> włącz Albert
Normalne sterowanie on/off nie ma problemu. Tylko dla przykładu mam lutownice podłączam do niej czujnik pt100 ustawiam temp na 200 stopni i różnica jest 195-209 stopni tak skacze temp. ale gdy zrobię to na PIDzie 199-201 stopni mam regulator elektroniczny dwa wzmacniacze troche oporników i kondensatorów i chodzi pięknie:) ale chcę to samo zrobić programowo....
ja to rozumiem tak: zbyt szybko zapalasz i gasisz diode. Sprawdz czy efekt bedzie taki sam jak w programie zmienisz tempo zapalania sie kolejnych diodek - zwolnisz :) Radzio
Czyli jak to dokładnie działa ? Dodaje w configu coś takiego ? [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts[/syntax] I właściwie to wszystko czy jak ? Niestety nie potrafię znaleźć niczego konkretnego, jak coś jest to czysta teoria bez przykładów. Jak gotowy program to zazwyczaj zbyt rozbudowany...
Nie rozumiem tej odpowiedzi. Nie działa, potem rzeczywiście działa. Jeśli jednak zadziałało to doczytaj dlaczego. "Prędkość" SCK nie powinna / nie może, być szybsza niż 1/4 (jedna czwarta) "prędkości" procesora. Nowy procesor śmiga na 1MHz. Jeden milion Herców. Jedna czwarta z tego to 250 tysięcy czyli 250kHz. Dlatego 187kHz się sprawdza. Jeśli jednak...
taka wartosc w zmiennej wysw , czyli temp 25,5 stC
[syntax=c]íf(temp>max)dmuchawa(on); elsé íf(temp<max-híst)dmuchawa(off);[/synt...
Błędy się mogą zdarzyć zawsze, ale lepiej jak jest ich jak najmniej więc możesz spróbować dodać kondensator 100nF - 1uF przy samym czujniku jeśli pracuje w trybie na trzech przewodach. Potem zmieniłbym procedure odczytu danych z czujnika na taka która sprawdza CRC i ósmy bajt na obecność wartości &H10. Kiedy sprawdzanie przebiegnie pomyślnie to bierzesz...
Witam Temat troszke starawy ale sie podpinam:) Tez kombinuję z roździelczością 0.1'C i troche mi nie wychodzi:) Dziwnie mi dziesiate czesci stopni wskazuje podaje ciąg: np. 23.1;23.2;23.3;23.4;23.5;23.6;23.8;23.12... itd dziwne bo nie ma liczby 0,7,9 tylko jakies 12 i 25 a do 6 idzie ok-dziwne to co po przecinku obliczam wzorem: dziesiatki=temp(7)-temp(6)...
Załaczam kod, który działa. odbiera dane z portu szeregowego i wyswietla je w MsgBox(). Zwróć jedynie uwagę na zdarzenieSerialPort1_DataReceived. Zmień w nim ilośc bajtów po której mają zostać odczytane dane z BUFORA portu szeregowego. Początkowo bowiem dane trafiają do bufora (każdy bajt oddzielnie wywołuje przerwanie i trafia do bufora) a stamtąd...
Witam jak wykonać, szczałki sygnalizujące spadek tem i wzrost temp w bascom?? Jak napisać program, aby dobrze on działał i szczałki dobrze wskazywały?
Schemat jest bardzo prosty i chyba nie warto go tu wstawiać. Są to katody diod połączone do portów uP, a co do programu to radzę się nauczyć pisać samemu bo tego typu wyświetlacz jest doskonałym ćwiczeniem i dosyć prostym. No bo co z tego że ja wrzucę program jak będzie można wyświetlać tylko napis "ŁUKASZ" ,a nie to co chcecie no i jeszcze trzeba dobrać...
W skrócie: TYMCZAS=TEMPERATURA TYMCZAS=TYMCZAS + 30 TYMCZAS=TYMCZAS * 1.85 PWM=TYMCZAS Najpierw pozbywasz się wartości ujemnej, a następnie mnożysz przez współczynnik będący wynikiem działania MAX PWM / MAX TEMP , czyli około 1,8 .
Myślę, że najodpowiedniejszym wyborem na początek będzie jakiś mikrokontroler z rodziny AVR z tego względu, że nie są to bardzo skomplikowane układy i pozwolą ci poznać podstawy .Do tego polecam dobrą książkę i tutaj mogę zaproponować: "AVR i ARM7. Programowanie mikrokontrolerów dla każdego" autorstwa Pana Pawła Borkowskiego .Według mnie dla zupełnie...
Szybciej zdążyłem napisać samodzielny i działający program niż uzyskałem jakąkolwiek pomoc. Dziękuję serdecznie wszystkim forumowiczom ! :) Zamykam.
Po ciężkich zmaganiach z metodą losową dla kolorów postanowiłem porzucić ten pomysł i zastosować przewidywalny sposób który będzie się powtarzał co jakiś czas. Może i nie jest to rozwiązanie pierwsza klasa, ale działa. Nie stosowałem jednak korekcji gamma, bo przy rozdzielczości PWM 8 bitów i zastosowaniu płynnego rozjaśniania było widać przeskoki (mruganie)...
http://obrazki.elektroda.pl/8230612800_1... Przedstawiam dzisiaj prosty gadżet jaki zmajstrowałem jakiś czas temu. Jest to w zasadzie zwykły elektroniczny metronom i nie różniłby się od wielu podobnych tu prezentowanych gdyby nie sposób ustawiania czasu pikania. Założenia: 1.Wykorzystać stare diody led, które leżały w szafce około 15lat......
Mam tylko jeden czujnik na magistrali Ale gdy pozbywam się 1wverify Dsid1(1) to układ nie wyświetla temp.
Dzięki za pochwałę do wejscia RXD mam podłączoną diode i opornik jak w pierwszym poście tylko ze dioda to 1n4148 a opornik ten sam czyli 10k wpiołes sie dobrze w szyne ibus ale widze ze masz dużo błędów w programie np brak pętli itp osobiście robię projekt na atmega16 który będzie pracował w roli tempomatu i obecny kod mam bardzo rozkopany postaram...
Najprościej byłoby zrobić na dwóch Timerach: jeden wyznacza tempo odtwarzania melodii, odczytuje kolejne wartości częstotliwości i ustawia wg. nich cz. timera 2, a ten tylko odwraca stan portu wyjściowego. Oczywiście tak jak wcześniej napisano częstotliwości w pamięci muszą być 2x większe od wymaganych.
Podaj cały kod
A przy Temp: tez wywalić return ?
ok tak wyglada obsluga przerwania do testow (w wersji finalnej chodzi o transmisje w dwie strony) to jest procedura dekodowania RC5 zaczerpnieta z noty katalogowej Atmela. uproscilem to troche zeby sprawdzic czy w ogole bedzie dzialac jako wstawka w bascomie no i niestety. Powiem tak program glowny czyli wszystko poza obsluga tego przerwania dziala...
A jak zakomentujesz program między enable a disable interrupts tam gdzie odbierasz temp. z termometru?
https://obrazki.elektroda.pl/3956937900_... Przedstawiam mój kolejny metronom ze "stukaniowym" nabijaniem tempa. Dawno temu opisywałem na elektrodzie pierwszą wersję z programem pisanym jeszcze w Bascomie. Różnica jest taka, że ten jest dużo mniejszy i poręczniejszy (waży 28g), ale z kolei nie wydaje żadnego dźwięku. https://obrazki.elektroda.pl/9785729100_...
mam pytanie. Siedze juz od 2 tyg. nad tym beznadziejnym kodem z Hope RF i tak sie zastanawiam. Skoro komunikacja odbywa sie po SPI to teoretycznie powinna sie pojawic inicjalizacja na MASTER lub SLAVE. Zeby nie bylo, SPI odpalalem miedzy dwoma prockami i smiga az milo. Tutaj natomiast nie wiem wogole co sie wyprawia ??? np. RFM01 tutaj niby jakas inicjalizacja:...
Dziękuję za sposób z long'ami. przynajmniej liczba ujemna mnożona przez siebie daje dodatnią:) w tym przypadku nie zależy mi ani na prędkości ani na objętości kodu, po prostu mam moduł MODBUS na atmega32 i tkneło mnie aby zrobić także barometr. Zajmuje to razem 24% FLASH'a a tempo działania programu niezbyt mnie interesuje ( a niech nawet sobie to minute...
Witam. Po wgraniu kodu do obsługi czujnika DS18S20 (Bascom), temperatura wyświetla się kilka jako jedności i kilka miejsc po przecinku (dziele przez 16). Jak zmniejszyć wyświetlaną temp do 1 miejsca po przecinku?
Dlaczego tam jest "Expected signature for ATMEGA8" skoro programujesz ATTiny? Dlatego, że wykorzystywany jest pewien trick przy wykrywaniu procka. Przecież AVRDUDE nie ma opcji która pozwoliłaby sprawdzić jaki procesor jest podłączony ;) Ma taką opcję ? .... Więc jak to sprawdzić? zastanowił się ktoś ? Ja się zastanowiłem i właśnie sprawdzam a jak...
Niestety na twoim programie też nie działa B Wyświetla "DS18B20" "temp: -0,1*C"
Niestety tamto nie zadziałało pojęcia nie mam czemu, ale udało mi się zrobić takie coś jak niżej. Da sie prostym sposobem skrócić zmienną single do postaci xxx.x ?? [syntax=basic4gl]Odczyt = Getadc(0) Temp = Odczyt * 0.0025 Temp_dz = Temp * 100[/syntax]
C:\Program Files\MCS Electronics\BASCOM-AVR\SAMPLES\
Chce zrobić sobie termometr taki :) temp. na zewnatrz i wewnątrz :)
Temperatura jest podawana przez DS18xx w kodzie U2. Zacznij od określenia, jaki masz dokładnie typ układu - różne wersje mają nieco różne formaty temperatury. Potem przeczytaj temperaturę do zmiennej 16-bitowej ze znakiem. Jeśli jest ujemna, zaneguj ją, wyświetl minus, a potem wyświetl jej zanegowaną (czyli już dodatnią) wartość. Prawdopodobnie będzie...
Witam napisałem taki kawałek programu wzorując się na innym przykładzie i program działa Ale podczas ustawiamia Procesor wysyła mi Dec 47 na port P0 A powinien wysyłać Dec 63 prubowałem nawet wpisać w tablicę cyfr 0 wówczas zaczyna wysyłać 48 a przy ustawianiu 32 Siedzę już jakiś czas nad tym i całkiem zgłupiałem Pomocy A bym zapomniał P0.0 seg A P0.1...
dim TEMP as Word TEMP=Odczyt_temp(1) Shift TEMP, Left , 8 TEMP=TEMP+Odczyt_temp(2)
Pisząc ten program posiłkowałem się książką "BASCOM AVR" i fragment: Osobiście nie rozumiem procedury: Sub Wart_temp(temp As Byte) Temp = Temp And &B00001111 Portd = Portd And &B11110000 Portd = Portd Or Temp End Sub
Czujnik jest halotronowy tyle ze juz z nim grzebalem bo za nim zrobilem uklad to zdazylem go spalić. Halotron, o ile to jest jakis halotron, wstawilem z wentylatorka z procesora i czujnik orzył, napiecie na jego wyjsciu mierzyłem tylko miernikiem, niestety nie mam oscyloskopu, gdybym miał nie miał bym pewnie problemu :) Wstawiłem ten 7414 i chyba jest...
Poprawiłem - nie sprawdzałem. Dim Odczyt(2) As Byte dim T As Integer dim T1 As Single dim T2 As Single Dim Temp As Long Do Ds18b20 Print Temp Wait 1 Loop End Sub Ds18b20 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Odczyt(2) Shift T , Left , 8 T = T + Odczyt(1)...
Witam, Próbuję odpalić taki wyświetlacz po SPI: https://obrazki.elektroda.pl/7122846800_... Posiada on sterownik ILI9341, znalazłem bibliotekę glcd-ILI9341_2R8_240x320.lib i taki przykład: [syntax=vbnet] ' ' *********************************** ' * 2.8inch 65K full color LCD * ' * 240 x 320 dot [ILI9341] SPI * ' * Touch screen (XPT2046)...
Czyli z kantońskiego na nasze :): [syntax=basic4gl]Mojazmienna = Pina Licz_jedynki = 0 For Index = 0 To 7 Rotate Mojazmienna , Right Temp = Mojazmienna : Temp = Temp And 1 : Licz_jedynki = Licz_jedynki + Temp Next Index[/syntax]
Właśnie znalazłem błąd brakowało mi: Config Pinc.5 = Output Bez tego coś przebijało ale nie tak jak powinno teraz jest okej :) Ale jeśli już temat jest założony w jaki sposób sterować obrotami wentylatora? Im większa temp. wieksze obroty wentylatora?
Przerwania wewnetrzne wykorzystuje, aby skakac do podprogramow gosub. W petli kolejno co 4ms(odczyt, obliczenie obr. i wyswietlenie na lcd), 1s(odczyt temp i wyswietlenie na lcd).
Witam, Piszę program na ATmega128 pod Bascom AVR. Od kilku godzin szukam rozwiązania, jak zrrealizować odczyt czujnika temp. DS18b20 korzystając z przerwań. Czy takie rozwiązanie jest możliwe??
Mam tutaj na Atmedze162 taki problem. Zrobiłem odczyt z DS18B20, wykorzystując taką funkcję : Function Ds_read(byref Sensor As Byte) As Integer 1wreset 1wwrite &H55 1wwrite Sensor , 8 1wwrite &HBE Ds_val = 1wread(2) Ds_val = Ds_val * 10 Ds_val = Ds_val / 16 Ds_read = Ds_val End Function i wszystko jest ok, o ile wykonuję pomiar wywołując...
Zbyt szybko spodziewasz się odpowiedzi R1, odczytujesz ją tylko 1 raz ;). Mały przykład (BASCOM): [syntax=basic4gl]Sd_r1: ' pobiera odpowiedź typu R1 Odpowiedz(1) = 0 Temp = 0 Do Spiin Odpowiedz(1) , 1 ' odczytaj 1 bajt Incr Temp ' zwiększ temp o 1 Loop Until Odpowiedz(1) <> &HFF Or Temp = 250 ' opuść pętle jeżeli wykonasz ją 250 razy lub...
napisz tak Deflcdchar 1 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 ' znak stopni Cls Lcd "Temp =" ; T1 ; Chr(1) ; "C"
Temperatura jest wyświetlana prawidłowo. Nie wiem czemu ale załącza się wyjście PB.0, gdy temp. jest ponizej 2 C.
Hmm.. nie wiem o jakim PDFie mówisz, ale ok :) Rozumie, że to co podesłałeś to fragment kodu, który powinien u siebie podmienić, czyli ten fragment: [syntax=basic4gl]Tempa = Msb * 256 Tempa = Tempa + Lsb If Msb.7 = 0 Then Temp = Tempa / 16 Else Set Minus Tempa = Not Tempa Tempa = Tempa + 1 Temp = Tempa / 16 End If[/syntax] na ten? [syntax=basic4gl]...
Witam. Buduję układ sterownika tempomatu do samochodu. Wykonałem już wszystko menu z wieloma funkcjami dodatkowymi poza tempomatem (mini komputer pokładowy), zbudowałem układ wykonawczy wraz z zaprogramowaniem sterowania przepustnicą elektroniczną lecz chyba zacząłem od złej strony i utknąłem na pomiarze prędkości z czujnika prędkości samochodu. W aucie...
Zmień: Dim Temp As Byte na Dim Temp As long
Tu jest zarys, jak wysłać dane, niestety z prescalerem zewnętrznym ' ****************************************... ' ** Program name: Testboard - Version : 1.3 21.03.2004 ** ' ** Compiler : BASCOM AVR, ( V1.11.7.4) ** ' ** ATMEGA16 LCD-Board 2x16 ** ' ** PMB2306 & 2312 Prescaler ** ' ** Referenz HF = 12.8...
Witam Nie za bardzo kumam tej linijki Jednosci = Temp And &B00001111 na jakiej zasadzie to działa? Pozdrawiam
Skompilowało się ale nigdzie nie zapisało . Odpowiedzi brak . Mnie niby też ale niewidem czy kod będzie dzaiałac ,mój sposób to pousuwałem TEMP ZA Ale to chyba nie zbyt dobrze zrobiłem.
Jednak problem był w sofcie... temp, temp2, suma1 zadeklarowane jako single ta sekwensja była przyczyną błędów: ... temp=suma1/255 temp=temp-241.09 ... Zmianiłem ją następująco ... temp=suma1/255 temp2=temp-241.09 temp=temp2 ... i pomogło ... ale czemu?
Tak, oczywiście że temp ma związek z włączaniem wentylatorów w pierwszym "trybie". Drugi (ten który chce dołożyć), ma za zadanie włączać went na określony czas i później przerwa na również określony czas, bez względu na temp (przy temp 10st jak i przy 40st).
W jaki sposób chcesz kolego je zmieniać? Małe na duże litery i odwrotnie czy coś ambitniejszego? [syntax=vbnet]$regfile = "m48def.dat" $crystal = 8000000 ' 8 MHz crystal Dim X As String * 8 Dim Temp(8) As Byte At X Overlay X = "bla" Print X Temp(2) = 70 Print X End[/syntax]
Witam .. Poradzilem sobie zmiana adresu pomogła : [syntax=basic4gl] Dim S As Byte At &H70 Overlay Dim M As Byte At &H71 Overlay Dim H As Byte At &H72 Overlay Dim D As Byte At &H73 Overlay Dim Tm(5) As Byte At &H70 Overlay Dim Temp As String * 5 [/syntax]
temperatura alarmu musi być "nastawiana" ? zaoszczędził byś trochę miejsca jak byś np. tak jak ja dał sobie stałą temp. alarmu . twoje demko ma ograniczenie do 4kb ?
Tak, ale klawiatura jest częściej skanowana i trzeba odczekać jakiś czas aby DS przekonwertował temp. a to przerwanie które używam jest od PCF8583
Witam, mam taki temat pracy dyplomowej: Mikroprocesorowa stacja pogodowa. Zalozenia: pomiary temperatury, predkosci i kier. wiatru, wilgotnosci lub cisnienia. Wyswietlanie parzametow na wyswietlaczu 20*4, opcjonalnie moga tam tez byc wyswietlane skrajne wartosci mierzonych parametrow. Zamierzam to zrobic na 51 lub jakims AVR w Bascomie. Zastanawiam...
Witam. Faktycznie obsługa LCD jest bardzo prosta. 1. zainicjować LCD ( wybór trybu 4 lub 8 bit ) 2. ustawic dane na pinach D4 do D7 lub D0 do D7 3.ustawic zbocze opadajace na E Zanki wysylamy przy RS=1 Komendy wysylamy przy RS=0 W trybie 4 bitowym. Bajt wysylamy na dwa razy 1. starsza czesc bajtu i zbocze opadajace na E 2. mlodsza czesc bajtu i zbocze...
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
A w jaki sposób sprawdzić przyczyny resetowania sie układu? Popatrz na skrót fragmentu Twojego kodu: [syntax=basic4gl] Mainn: '... Gosub Temp '... Temp: '... Gosub Mainn '... [/syntax] Jeśli rozumiesz w czym tkwi błąd, to OK, ale jeśli nie, to ... jeszcze sporo nauki przed Tobą :|
dawid512: Config Aci=on oznacza włączenie zasilania komparatora. morswin89- sprawdź czy komparator działa. Odczytaj bit ACO. Dodano po 1 Może zamieniłeś wejścia komparatora-ja kiedyś coś takiego zrobiłem. Dodano po 5 Sprawdź działanie komparatora: temp=Acsr.aco if temp=0 itd.
Witam Mam podobny problem atmega8 i DS18B20 bascom u mnie dzieje się coś takiego że do 40°C pokazuje dobrą temperature przy rezystorze podciągającym 2,2kΩ ale przy wyższej temperaturze to ją podwaja i tak sobie miga na przemian dobra temp i podwojona, czasem wskoczy jakaś ujemna albo jeszcze coś innego, a przy jeszcze wyższej zrywa komunikację...
Witam Na wyświetlanie cyfr napisałem kiedyś taką procedurkę: wyswietl: ;wyświetla wartość z rejestru temp ldi ZH, high(cyfry<<1);ładuj rejestr Z adresem, pod którym umieszczono ldi ZL, low(cyfry<<1) ;początek tablicy cyfr clr R17 add ZL, temp ;dodaj zawartość rejestru temp (cyfra do wyswietlenia) do wskaźnika...
Sprawdź PCB. Jeżeli masz możliwość sprawdź na innym czujniku. Masz odpowiednio odfiltrowane napięcie zasilające układ? Musi być jakaś przyczyna, zmieniałeś soft w uc? Urządzenie cały czas działało i nagle temp. 0.0? 100nF na zasilaniu uc jest?
O tak: If temp < -1 then zaswiec else zgas end if A jeszcze lepiej: If temp < -1 then zaswiec else if temp > -1 then zgas end if end if Tylko najpierw musisz mieć dobrze odczytaną temperaturę w zmiennej temp - znajdziesz tu masę przykładów, bo temat wraca co tydzień.
To ile pętli zrobić żeby odświeżanie było co ok. 10 sek??? A ile żeby było 750ms??? Dodano po 8 1pętla trwa ok. 100ms jeśli temp. jest ujemna, a jeśli nie to 80ms
Zmieniłem czujnik na ds18b20 ale teraz pokazuje mi głupoty około 400 stopni. Dodano po 3 Wlutowałem też kondensatory ceramiczne 100nF na zasilaniu uC, lcd, i czujnika oraz na samym zasilaniu układu kond. 100uF ale w tym momencie mi bardzo zawyża temperature o jakieś 8 stopni użyłem tego lm35 bo na tamtym wskazuje około 400 stopni. Ale nadal skacze temp.
Z tym "else" to nie tak do końca - próg wyłączania powinien być niżej, niż próg załączania, inaczej, gdy temperatura będzie się wahała w okolicach tych 20 stopni, wskazania będą np. 19,9-20.1, zmieniające się co kilka sekund - i wiatrak oszaleje... czyli coś a'la: if (temp > 20) wlacz(); else if (temp < 19) wylacz();...
Zapraszam do zapoznania się z "AVR305: Half Duplex Compact Software UART" Poniżej przykład dla AT90S1200 [syntax=asm] ;**** A P P L I C A T I O N N O T E A V R 3 0 5 ************************ ;* ;* Title : Half Duplex Interrupt Driven Software UART ;* Version : rev. 1.2 (24-04-2002), reset vector added ;* : rev. 1.1 (27.08.1997) ;* Last updated : 24-04-2002...
If Nastawa < Temp Then PORTd.5 = 1 End If If Nastawa > Temp Then PORTd.5 = 0 End If
Spróbuj użyć tego sposobu obsługi parametrów zapisywanych w EEPROM (traktujesz je jak zwykłe zmienne): Dim Reserved As Eram String * 8 'Przyzwyczajenie ze starych AVRów - zapobiega(ło) utracie danych z początku obszaru EEPROM :) Dim Zmienna1 As Eram Byte Dim Zmienna2 As Eram String * 8 Dim Zmienna3 As Eram Long Dim Temp as Byte [...]...
Dokładnie taki sam problem miałem ja w moim temacie. Przed wysłaniem zmiennej V w masterze wyślij jakąś zerową zmienną (np zmienną Temp As Byte, T=0). Przeanalizuj pod tym kątem mój temat.
Przerwanie masz co 0.256ms a nie co 4ms. A w przerwaniu dzieje się sporo- spróbuj dać prescale 64. Będziesz miał co 2ms. Z round jest coś niezgodnego z helpem podobno. Pisał o tym Atom tu: http://www.elektroda.pl/rtvforum/topic16... Może- ale to są tylko niesprawdzone przypuszczena- daj na początku Dim t_1 as long A w pętli rzutowanie: t_1= T1...
Co do dokładności pomiaru to w zupełności wystarcza rozdzielczość 1 stopień C a czujniki mają byc umieszczone w pokoju na zewnątrz i w piecu (pomiar temp. wody)
Na elektrodzie w dziale download jest pomoc do bascom w pdf po polsku. Sa tam gotowe programy przykladowe z ktorych moglbys skorzysac na zasadzie kopiuj wklej. Jest tam wiele komenatrzy. "Klocki" to wspaniala sprawa jesli jestes pewien z kazdy oddzielnie dzila dobrze wrzucasz nastepny do programu i testujesz . Ja pracuje na BASCOM AVR ale staram sie...
Trzeba by zmienić program, aby nie wyświetlał temp. 85°C w pokoju, podanej przez "niezainicjowany" czujnik.
DS mam zasilonego razem z procesorem 5V nie stosuje tej opcji tylko z jednym przewodem + GND. Chodzi ci o to czy pin do którego mam dołączonego DS jest podciagnięty zewnętrzenie do Vcc? Czy to jest konieczne w Atmegach? Bo mam drugi zestaw złożony do testów na 89S52 i tam mam bezpośrednio podłączony i działają wszystkie czujniki. Jaki to ma byc + /...
Jesli chodzi o hardware to wszystko połączone dobrze. tak linia I/O podciągnieta przez rezystor 4,7k. dodam tylko ze jak wgrałem prosty program który tylko pokazywal jedna temp z jednego czujnika to wszystko był w porządku.
Przecież można to zrobić prościej: If Temp <= 320 Then 'TEMP WLACZENIA Portx.0 = 1 End If If Temp >= 340 Then 'WYLACZENIA Portx.0 = 0
dzieki za tak szybka odp ;] slyszalam wlasnie, ze dla poczatkujacych najlepszy jest bascom, ale z 2 strony mam jeszcze do napisania obsluge zegarka, przyciskow, czujniki temp i balam sie, ze z kodem sie nie zmieszcze do pamieci ;P
Masz rację - ustawiałem 22. W kodzie nic nie zmienia tej wartości tylko jest wyświetlanajeśli naciśniemy przycisk w sposób: if p1.3=0 then do until p1.3<>0 if temp<26 then temp=temp+1 print str(temp) ' lub podobna instrukcja end if
Zamień temp. odczytaną z DS-a na string a potem skorzystaj z MID i VAL.
Witam Do odczytu minusowych temperatur stosuję taki kod: 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 1wreset 1wwrite &HCC 1wwrite &HBE Temp(1) = 1wread() Temp(2) = 1wread() 1wreset If Temp(2) >= 248 Then Temp(1) = Temp(1) - 255 Temp(2) = Temp(2) - 255 Msb_zk = "-" Else Msb_zk = "+" End If Tempp1 = Temp(1) / 16 Tempp2 = Temp(2) * 16 Lsb_tempp1 = Tempp1...
Do odczytu nie uzywa sie PORTB.0 tylko PINB.0 temp=PINB.0 waitms 100 PORTB.1= temp Wczesniej deklarujesz temp jako zmienna typu boolean
W pętli głównej wpisz obsługę jakiegoś przycisku . Przy wciśnięciu ma nastąpić wyskok do podprogramu a tam np. zdefiniować sposób nastawiania, zapisać ustawioną temp. do epromu. W programie głównym odczytać temperaturę z DS , odczytać temp. z epromu , porównać temp. oraz wykonać odpowiednią procedurę załączenia lub wyłączenia.
Odpaliłem i idziała :) Problem w tym, że pokazuje coś nie tak. Temperatura dodatnia błąd na plus około 2 stopień. Zamiast 22 pokazuje 24.3 a przy ujemnej (zwykły termometr) pokazuje -13 zamiast - 18 Do 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 250 Waitms 250 1wreset 1wwrite &HCC 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Tempa...
Zamierzam podłączyć 3szt. DS18B22 na jednym 1wire układu AT89C4051. Tyle, że utknąłem już na 2szt. Korzystam z Bascom'u. Wprawdzie nr ID odczytywane są prawidłowo, natomiast temp odczytywana jest tylko z jednego i to niepoprawnie. DS-y na pewno sprawne, pojedynczo działają bez zastrzeżeń.Program na jeden czujnik DS, który wklepałem wielokrotnie przedstawiany...
Jeśli testujesz wyżej przytoczony przykład w symulatorze BASCOM'a to dodaj na jego końcu pętlę DO-LOOP lub komendę END i będzie OK. Dim Temp As Integer Dim Disp As String * 5 Temp = 366 'odczytana wartość temperatury Disp = Str(Temp) Disp = Format(Disp , " 0.0") ' dwie spacje (kasowanie zer nieznaczących) + 0.0 Locate...
pomiar tempo bascom corolla tempo folder tempo
pilot żarówki pralka grzałka samsung amazon assistant
sterownik movera sterownik movera
Ekspres Zelmer 8121 - kawa spływa po ściankach Dioda licznika NORAX1 po odłączeniu odbiorników: świeci czy gaśnie?