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...
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......
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...
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...
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...
Witam. Napisałem kawałek kodu do multipleksacji wyświetlaczy LED. Zrobiłem układ z wyświetlaczem LED TOF - 5462. Wspólna anoda 4 cyfry + 2 kropki pośrodku. Jestem początkującym programistą C dla AVR i sam nie mogę rozgryźć problemu. Wyświetlacz jest podłączony do atmegi następująco: PORTB to wszystkie 8 segmentów wyświetlacza (A do G i DP). PORTD 0b11110000...
Jak widzisz zależność jest liniowa, pokrywa się przy 60 stopniach. Stąd można wymyślić wzór taki: temp = 60 + (600 - wartosc)/10 np wartosc = 1000 -> temp = 60+(600-1000)/10 = 20 wartosc = 400 -> temp = 60 + (600 - 400)/10 = 80 Nie znam bascoma ale wystarczy to tam przepisać.
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
[syntax=c]íf(temp>max)dmuchawa(on); elsé íf(temp<max-híst)dmuchawa(off);[/synt...
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
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 .
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....
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...
dim TEMP as Word TEMP=Odczyt_temp(1) Shift TEMP, Left , 8 TEMP=TEMP+Odczyt_temp(2)
taka wartosc w zmiennej wysw , czyli temp 25,5 stC
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...
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ą :|
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...
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ń.
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?
Szybciej zdążyłem napisać samodzielny i działający program niż uzyskałem jakąkolwiek pomoc. Dziękuję serdecznie wszystkim forumowiczom ! :) Zamykam.
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)...
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...
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...
proszę bardzo. 3 minuty razem z sprawdzeniem. $regfile = "m162def.dat" $crystal = 7372800 Dim A$ As String * 20 Dim Temp$ As String * 4 Dim Zmianna_1 As Byte Dim Zmianna_2 as byte Dim Zmianna_3 As Byte Dim Zmianna_4 As Byte A$ = "123.234.213.132" Temp$ = Left(a$ , 3 ) Zmianna_1 = Val(temp$) Temp$ = Mid(a$ , 5...
No to nie poradzisz sobie jak masz takie małe pojęcie Gdzie mogę poczytać coś o tych rezystorach, kondensatorach itp i coś o łączeniu ich, by uzyskać pożądany efekt? Najprostszym do opanowania jest BASCOM-51 lub BASCOM-AVR na początek. O mikrokontrolerach poczytasz na stronach producentów, Atmel lub Microchip
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)...
Mam tylko jeden czujnik na magistrali Ale gdy pozbywam się 1wverify Dsid1(1) to układ nie wyświetla temp.
$regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = Input Portb.0 = 1 Config Portd = Output Portd = &B11111111 Dim Temp As Byte Temp = 1 Do Temp = Temp * 2 If Temp > 80 Then Temp = 1 Portd = Temp Toggle Portd If Pinb.0 = 0 Then Bitwait Pinb.0 , Set End If Waitms 500 Loop End Dodałem znaczniki
Tak to da się zrobić. Godziny 5 bitów, minuty 6 bitów, miesiąc 4 bity, dzień 5 bitów, rodzaj x bitów. Razem 20 bitów + x. Kodowanie: Dim temp as long '.... temp = godziny shift temp, left, 5 temp = temp OR minuty shift temp, left, 6 temp = temp OR miesiac Działa jak widać dodajemy przesuwamy o odpowiednią ilość bitów i następną zmienną dodajemy w puste...
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...
Ja zrobilem tak: licz = 789 Setki = Licz / 100 Temp = Licz Mod 100 Dziesiatki = Temp / 10 Jednosci = Temp Mod 10 Reset Wysw3 Liczba = Lookup(jednosci , Znaki) Waitms 3 Set Wysw3 Reset Wysw2 Liczba = Lookup(dziesiatki , Znaki) Waitms 3 Set Wysw2 Reset Wysw1 Liczba = Lookup(setki , Znaki) Waitms 3 Set Wysw1 i dziala bez problemu
Podaj cały kod
Po co się męczyć to tylko kilka linijek w bascomie: Kod archaiczny dla słabeuszy: $regfile = "m128def.dat" $crystal = 8000000 Config Spi = Soft , Din = Pinf.2 , Dout = Portf.0 , Ss = None , Clock = Portf.6 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2 Config Pinf.6...
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
A jak zakomentujesz program między enable a disable interrupts tam gdzie odbierasz temp. z termometru?
A przy Temp: tez wywalić return ?
Poniżej przykład. Zwróć uwagę, że w tym przykładzie komenda konwersji temperatury występuje na końcu, a nie na początku. Odczytana temperatura będzie zatem tą która została konwertowana po poprzednim odczycie. To oczywiście nie ma znaczenia dla tego jak adresować czujniki. Powodzenia ! PL Config 1wire = Portd.6 Dim Adresy(16) As Byte Dim T1 As Byte...
Jeszcze wprowadziłem pewną modyfikację,tak aby kolejny wentylator włączał się dopiero przy wyższej temp. Jest to zrobione poprawnie? To ci może pracowac; czy jest poprawnie?............ Owszem, wentylatory bedą włączac się stopniowo, ale wyłączenie ich nastąpi jednocześnie po osiągnięciu temp poniżej 'min'. Ten fragment programu powyżej może powodowac...
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...
1. Bascom jest bardzo dobrym językiem, znacznie lepszym niż Arduino. 2. "a:10.0" "a:10.0 " ":10" "10 " Ten temat jest zamknięty, dostałeś 2 przykłady. Pierwszy napisałem do składni ramki jaką podałeś w pierwszym poście, później zmieniłeś konstrukcję rami to napisałem kolejny przykład, można jak dobrze naliczyłem jeszcze 9 innych metod zastosować by...
temperatura początkowwa na jakom jest ustawiony termostst czyta swicze Widzę że kolega ma problem z pisaniem w języku polskim ale do rzeczy... 1wr ma być call 1wr . Założę się że program nie jest twój... Patrząc dalej: If Tust1 > Tust Then Portb.2 = 1 znowu nie zadziała... Co do histerezy to lepiej zrealizuj ją tak: Temp = Temperatura(1)...
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
No to jak się zastanawiałeś nad tym, to powinieneś zaskoczyć o co chodzi... Po prostu należy najpierw wyłączyć maskowanie roku i dnia tygodnia (więc zamiast 8 do rejestru 0 wpisać wartość 0), potem odczytać cały bajt, zamaskować niepotrzebne bity w danym bajcie: najpierw rok i odczytać dzień miesiąca, potem zamaskować dzień miesiąca i odczytać rok -...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
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
Nie !!!! Nie w środku pętli to byłoby bez sensu. Ale ja to bym zrobił inaczej [syntax=basic4gl].. .... ...jakieś instrukcje.. .. Dim Pk As Byte Declare Sub PrzyciskC5 Ddrc = &B00000011 Set Portc.5 .... ...jakieś instrukcje.. .. Menu3: Pk = 0 Do Locate 1 , 8 Lcd "T" Start Adc Temp = Getadc(6) Temp = Getadc(6) C = Temp / 4.166 Celsius = Fusing(c , "###.#")...
pomiar tempo bascom corolla tempo tempo defro
elektroda auris wzmacniacz emiterowy płyta indukcyjny piekarnik
fendt favorit łazienka pudełkowa
Resetowanie sterowników Bluetooth po restarcie KingSonn KS-E: Blokada elektryczna czy monocykl?