Witam mam za zadanie sterować jasnością 3 diod przez pilot RC5i na wyświetlaczu ma się wyświetlać stan. Na timerze 1 steruje pwm1a i pwm1b i jest w porządku zmienia się jasność. Problem ze sterowaniem 3 diodą (TIMER2), ona nie reaguje gdy wysyłam kod 6 lub 9, mrugnie jednorazowo tylko wtedy gdy wysyłam dowolną komendę do tmfs5360. Jasność tej 3 diody...
Witam. Opanowałem ADC w wystarczającym stopniu, więc postanowiłem się zabrać za PWM. Przerobiłem poprzedni schemat: [url=]Link Wygląda teraz tak: [url=]Link Kod wygląda tak: [syntax=Bascom] Config Portb.0 = Input Set Pinb.0 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare...
Tak właściwie to testowałem PWMa na takim programie: $regfile = "m8def.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Config Portc = Input Portc = 255 Pwm1a = 0 Pwm1b = 0 Do If Pinc.0 = 0 Then Pwm1a = Pwm1a + 1 If Pinc.1 = 0 Then Pwm1b = Pwm1b + 1 Waitms 2 Pwm1a =...
Znalałem coś takiego. Dim Pom As Single : Dim W As String * 4 'zmienne pomocnicze Const X = 0.004791 'przybliżony współczynnik korekcji - mnożnik Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Down Cls Do 'pętla nieskończona Incr Pwm1a : Waitms 5 'zwiększ licznik o poczekaj aż napięcie się ustabilizuje If Acsr.5 = 0 Then...
Witam. Jeżeli nie ten dział to przepraszam i proszę o przeniesienie do odpowiedniego działu. Napisałem program do pomiaru czasu trwania stanu niskiego. $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Enable Interrupts Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5...
Chciałbym zrealizować sterowanie diodą led rgb. Atmega8535 ma w sumie 4 kanały PWM Na razie udało mi się wykorzystać tylko jeden kanał pwm z zegara t1. Ale sterowanie dioda rgb nie było dokładnie takie jak chciałem. Ogólnie chciałem zrobić tak aby móc wybrać kolor w standardzie rgb (czyli dla każdego segmentu wartość od 0 do 255). jednak uznałem, że...
hunterhouse samo zerowanie PWM przez pwm1b=0 nie wyłącza PWM i nie zwalnia portu. Jeśli sterowanie odbywa się stanem niskim portu, to silnik będzie mi się obracał non-stop z pełna prędkością. gdy wipszesz do pwm1a=0 to na wyjściu pojawi się sygnał pwm o wypełnieniu 0 czyli pojawi się stan niski. jeśli wpiszesz FF to na wyjściu pojawi się stan 1. można...
Witam, $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pind.1 = Output Config Timer2 = Timer , Prescale = 128 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 8 Cls Cursor Off Portd.0 = 1 Portd.1 = 0 Set Portd.4 On Timer2 Czas1s Dim Licz8ms As Byte Dim Wartoscpwm As...
Piszę ten post szybko przed szkołą, więc jeśli się wyrobię wstawię schemat, jeśli nie, to po szkole. Postanowiłem zrobić pierwszy eksperyment z mostkiem h. Zakupiłem więc 2 sztuki L293d. Spiąłem układ według schematu narysowanego w zeszycie, i napisałem program. Efekt - nic. Żadnej reakcji. Sprawdzam ręką, Atmega zimna, mostek wytwarza trochę ciepła....
Masz część programu którym steruję diody RGB u siebie w pokoju. Jest to mój programik testowy, dodatkowo wyjściami PWM można sterować pilotem Rc5. Korzystałem z niego przed napisaniem właściwego softu. W Bascomie jest błąd jeśli chodzi o trzeci kanał (wyjście OC2). Nie "sterujesz" nim przez pwm.., tylko ocr2=... Myśle że dojdziesz na podstawie przykładu....
Witam! Mam mały problem z adc i atmegą8. Napisałem taki program w bascom'ie : $regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Config Portc = Input Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Config Adc = Free , Prescaler = 8 , Reference = Off 'tu próbowalem także reference = internal ; avcc; on...
$regfile = "M8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 32 '---------------------------------------... Dim Adc_data As Integer Dim S As Single Dim L As Long Dim Text As String * 30 '---------------------------------------... Portb = &B00000000...
Cy LS020... czy L2F50 nie ma różnicy w obsłudze tylko bibliotekę trzeba włączyć odpowiednią. Tu jest kod: $hwstack = 128 $swstack = 128 $framesize = 128 $regfile = "m16def.Dat" $crystal = 16000000 $baud = 19200 '$lib "LCD-EPSONmy.LIB" '$lib "lcd-pcf8833my.lib" 'Nokia 6100 color display '$lib "LCD-SIEMENS_S65_LS020_C.LIB"....
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...
Witam, Mam problem z programem na Atmege8a, mianowicie: Piszę program sterujący pracą silnika (za pomocą L293D) który dodatkowo będzie zliczał w czasie impuls od przerwań zewnętrznych i tu pojawia się problem: kiedy napisałem program obsługujący tylko pracę silnika, wszystko działa sprawnie, kiedy napisałem program zliczający impulsy w czasie, również...
Ja też dotarłem do tego helpa :D . Nie chodzi mi o konfigurację poszczególnych timerów, tylko o korzystanie z nich w programie. Tak się składa, że po skonfigurowaniu timera 1 jako generatora PWM, aby z niego korzystać wystarczy w programie wpisać na przykład pwm1a=10. Ta komenda daje (w przypadku na przykład działania 8 - bitowego) współczynnik wypełnienia...
Witam, proszę o pomoc w następującym problemie. Uproszczony przeklejony program w bascom działa w ten sposób że po przesłaniu określonych liter przez rs zapala RGB ledy w odopowiedni sposób. Przerwanie działa dobrze. Natomiast chodzi o procedure "zmieniaj" która to wywołana w przerwaniu działa, ale przerwanie nie powoduje wyjścia z niej. Musi wykonać...
Witam Od dłuższego czasu pracuję nad własnym sterownikiem bramy przesuwnej. Może ktoś pamięta jak stawiałem pierwsze kroki w tym kierunku ;) W zeszłym roku opracowałem teraźniejszą wersję sterownika - dodałem SOFT-START, SOFT-STOP (wykorzystując PWM). I wszystkie aktualne problemy kręcą się w zasadzie w okół tego. Po pierwsze, nie mogę ustawić częstotliwości...
Witam, chcialem sie dowiedziec czy taki programik jak ponizej napisany w Bascom-ie bedzie dzialal tak jak tego chce. Ogolnie zadaniem dla mikrokontolera jest to aby pobieral wartosc jakiegos napięcia, ktora bedzie porownywana z wartosciami "tablicy" (w moim przypadku bede robil to na IF-ach, chyba, ze da sie deklarowac tablice w Bascom-ie) i za pomoca...
witam po pierwsze pd4 (oc1b) i pd5 (oc1a) to 2 osobne PWM'y. strujesz nimi z bascoma poprzez PWM1A i PWM1B. teraz OC2 to też wyjście PWM a dlaczego bascom go nie rozumie to nie wiem. być może w nowszych wersjach został oto poprawione. można też skonfigurować go ręcznie wpisując wartości do rejestrów. polecam notę katalogową tam jest wszystko pisane....
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...
a gdzie masz Prescale?? i napisz sobie w programie że PWM1a=A i przy ustawianiu portów jako wyjściowych usuń " ' " bo masz napisany i to Ci knoci wszystko Do For A = 0 To 255 PWM1a = A PWM1b = A waitms 4 Next A For I = 255 To 0 Step -1 Pwm1a =A Pwm1b =A Waitms 4 Next I Loop cześć kodu z książki Marcina Wiązania A z tego co zrozumiałem z twojej wypowiedzi...
Sprawdz ten kod: $regfile = "m8def.dat" $crystal = 4000000 Pwm1a = 0 Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1 Do Pwm1a = 956 Start Timer1 Waitms 500 Pwm1a = 851 Waitms 500 Pwm1a = 758 Waitms 500 Pwm1a = 716 Waitms 500 Pwm1a = 638 Waitms 500 Pwm1a = 568 Waitms 500 Pwm1a = 506 Waitms 500 Wait 4 Loop End Jest...
Witam. Właśnie jestem w trakcie konstruowania zegara opartego na w/w uC i mam z nim same problemy zastanawiam się czy ten procesor jest jakiś lewy czy ja mam z nim problemy? (wątpię aby atmel wypuścił bubla) Pierwsza rzecz przerwania zewnętrzne działają niestabilnie - raz wyskakuje kilka razy nie :/ Po drugie nie udało mi się odebrać poprawnie danych...
Dzięki za pozdrowienia i za odpowiedź . A co do układu to jest automat do pokoju i ma sterować światłem rgb , halogenami , klawiatura umieszczona we włączniku+ dioda rgb ma sygnalizować jaka funkcja światła zostanie zmieniona , odczytać i zapisać i2c to zadanie dla attiny2313 . A atmega8 ma wyświetlać na wyświetlaczu co jest obecnie za funkcja , pobierać...
powinno to wyglądać jakoś tak: home: do if pin..... =1 then goto przod elseif pin ...=1 goto tyl end if loop przod: Do Waitms 1 Incr Pwm1a End If end if loop tyl: set port.... 'przekaźnik zmiany biegunów silnika Do if pin..... = then reset port.... pwm1a=0 goto home: end if . . Waitms 1 Incr Pwm1a End If end if loop tyl: Do if pin........
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
Część kodu odpowiedzialna za podświetlanie: Podswietlanie: Do If S3 = 0 Then Incr Pwm1a End If If S1 = 0 Then Decr Pwm1a End If P = Pwm1a / 2 If Pwm1a >= 200 Then Pwm1a = 200 P = 100 End If If Pwm1a <= 1 Then Pwm1a = 1 P = 1 End If Locate 1 , 2 Lcd "PODSWIETL.LCD" Locate 2 , 7 If P < 10 Then Lcd " " ; P Else 'podświetlanie...
Zacznę od zamieszczenia kodu źródłowego i schematu: ' ########################################... ' # Control Programm for Trolling Motor Driver # ' # (C)2008 by Tomasz Orczyk # ' ########################################... $regfile = "m8def.dat" $crystal = 8000000 'CKSEL3..0=0100 - 8MHz Internal (PWM ~30kHz) 'SUT1..0=01...
Witam, mam pewnie dla większości osób banalny problem. Postanowiłem wykonać lampkę RGB. Wykorzystałem mikrokontroler ATMEGA8 a program piszę w BASCOM'ie. Jasnością diody "zajmuje się" sprzętowe PWM (PWM1A). Poszczególne kolory (RGB) są sterowane multipleksowo. Program wygląda mniej więcej tak: Do Set Czerwony PWM1A = Red Waitms 1 Reset Czerwony Set...
OK, problem rozwiązałem, problem polegał na tym, że pilot ma przyciski "CD", "FM", "MW" i "AUX". Naciskając przypadkowo przycisk "FM" zmieniłem nadawane adresy i komendy, żeby wszystko wróciło do normy musiałem nacisnąć przycisk "CD". Jak widać więcej osób zgodziło się, że nie zrozumiało postu, więc przepraszam za nieścisły język. Program do testowania:...
Witam Właśnie robie sobie wyświetlacz do samochodu, na razie mam dwie temperatury i napięcie... Zamieszczam listing: $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.1 , Db5 = Portd.2 , Db6 = Portd.3 , Db7 = Portd.4 , E = Portd.0 , Rs = Portd.5 Config Lcd = 20 * 4 Config 1wire = Portd.7 Config Pinc.0 = Output Config...
Witam Tak Panowie ja się z Wami zgadzam (z racji tego iż w programowaniu jestem jak but) chociaż z tymi diodami i analogowym wskaźnikiem zupelnie nie. Jeżeli chodzi o program to od początku miałem takie wrażenie, że cos jest nie tak. Uważałem, że trzeba to napisać co najmniej w C, ale najlepiej w asemblerze - niestety programista mi nie powiedział w...
Witam Mam taki oto problem do rozwiązania. Do Atmegi8 do wyjść OC1A, OC1B oraz PB3 podpięta jest trzywejściowa bramka "OR" (4075). Wyjścia OC1A oraz OC1B pracują jako PWM, natomiast wyjście PB3 przyjmuje stan wysoki lub niski w zależności od potrzeby jako kluczowanie bramki "OR". Sygnały z wyjść OC1A oraz OC1B są doprowadzone w układzie do oddzielnych...
Napisałem fragment programu sterowania mostkiem H na razie nie pokazuje błędów ale jeszcze chciałbym miec miekki start silnika DC, może delay wewnątrz pętli ? [syntax=arduino] //poczatek do produ //podział sygnału +/- 50 if(nThrottleIn>1550){ if (pwM1a>=255) pwM1a=255; pwM1a = map(nThrottleIn ,1550, 1995, 0,255); digitalWrite(in1a , HIGH); digitalWrite(in1b...
Cześć Uczę się dopiero BASCOMa i mam problem z PWM. Napisałem program: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Portb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Dim Obroty As Byte Plus Alias Pinb.4 Minus Alias Pinb.2 Set...
Witam! Mam problem z programem do atmegi8. Program ma za zadanie sterowac obrotami silnika DC 12V. Problem w tym, że sie nie chce skompilować.. Jestem początkujący i sie jeszcze słabo orientuje... Poniżej jego kod: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1 = Output Config Timer1 = Pwm...
Może ma ktos z was gotowy program do wyswietlania cyfr na dwóch wyswietlaczach? Może w przerwaniu. Mam cos takiego ale wyswietlacz mruga. Używaj znaczników "code" jak wklejasz kod. Poprawiłem $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 =...
chcialem zrobic sterowanie dioda rgb za pomoca 3 wyjsc pwm i tu jest problem bo chyba w bascomie nie mozna ustawic timer2 jako pwm za pomoca: config timer2 = pwm, pwm=8, compare a pwm= clear up" dlatego sam starem sie ustawic reczenie rejestry wedlug: , ale cos mi nie idzie i prosze o pomoc (moga byc jakies wskazowki) $regfile = "m8def.dat"...
Ja też podam przykład w BASCOMie: $regfile = "m8def.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 64 Dim I As Byte Pwm1a = 0 'wpisanie wartości początkowej 0 Do For I = 0 To 255 Pwm1a = I Waitms 10 Next I For I = 255 To 0 Step -1 Pwm1a = I Waitms 10 Next I Loop End Jak zmieniać wartość PWM? Pwm1a...
Witam mam problem z programem sterownika pwm na atmega8 to jest ten program: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare A Pwm = Disconnect , Prescale = 64 Dim I As Byte S1 Alias Pinb.4 S2 Alias Pinb.2 Set Portb.4...
np Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Config Timer0 = Pwm , Prescale = 1 , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja Timera Config Timer2 = Pwm...
To jest program który ma obsługiwać mi dwa termometry, wgrywam i pojawia się ,, 298 " te wszystkie zmiany wprowadzałem aby sprawdzić czy ruszy. $regfile = "m8def.DAT" $crystal = 8000000 Config Portb = Output Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Pind.1 , Rs = Pind.0 Initlcd Wait...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.5 = Input Config Pinb.4 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 64 Dim I As Byte Centr1 Alias Pinb.5 Centr Alias Pinb.4 Set Portb.4 Set Portb.5 Pwm1a = 0 Do If pwm1a = 0 then 'dodatkowy warunek...
Kolego zapodaj cały kod. Rozumiem że używasz symulatora do sprawdzania kodu. jak za wolno zwiększa to wstaw zamiast [syntax=basic4gl] incr pwm1a [/syntax] np tak [syntax=basic4gl] Pwm1a = Pwm1a + 10 [/syntax] Ale to nie tędy droga. Zrób tak że pomiar napięcia i zmiana wartości PWM przebiegała bardzo często a wyświetlacz odświeżał się np co 500ms.
gdzie jest błąd Nie znam BASCOM'a więc mogę się mylić... ale wydaje wydaje mi się, że tu: Zadziałało dzięki za pomoc Witam Czy ktoś może mi powiedzieć gdzie jest błąd w kodzie zamieszczonym poniżej? W tym projekcie atmega ma sterować obrotami wentylatora (wolniej/szybciej) po naciśnięciu przycisku. Tu konfigurujesz Timer1 do pracy w trybie (1) 'Phase...
a dlaczego programowy PWM ?? '51 ma chyba sprzetowy?? dla avr to będzie tak Config Timer1 = Pwm , Prescale = 8 , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up For Pwm1a = 0 To 256 Waitms 10 Next Pwm1a For Pwm1b = 0 To 256 Waitms 10 Next Pwm1b Do Loop
chce zrobić na ATMEGA8 efekt przejścia między 3 kolorami diody led RGB. Mam jednak problem, gdyż szukałem na forum, ale nie znalazłem informacji jak zrobić przesunięcie 3 kanału pwm o 120stopni. na 1 i 2 kanale dwa kolory na przemian zapalaja się i gasną, ale nie udało mi sie zrobić, żeby między nimi zapalała się także 3 dioda podpięta pod 3 kanał pwm....
witam W przykładzie podanym przez Ciebie ustawiasz tylko liczniki do pracy jako PWM. Aby zmieniać współczynnik wypełnienia należy wpisać do odpowiedniego rejestru ,który będzie odzwierciedlał współczynnik wypełnienia. $regfile = "m8def.dat" $crystal = 10000000 Config pinb.1=output config pinb.2=output Config Timer1 = Pwm , Pwm = 8 , Compare...
Witam. Po przeczytaniu kilku postów na forum napisałem program żeby sterować jasnością dwóch diód led. Jednak program nie działa , gdy podaję stan niski na wejścia nic się nie dzieje. Czy dobrze skonfigurowałem PWM? Oto kod w bascom: $regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Input Config Pind.1 = Input Config Pind.2 = Input...
Chyba to już było. $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Cursor Off Cls Rem konfiguracja portów Dim R As Byte Dim G As Byte Dim B As Byte...
Mały przykład: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Cursor Off Cls Rem konfiguracja portów Dim R As Byte Dim G As Byte Dim B As Byte Dim...
Regulacja częstotliwości? Sprzętowo? Owszem. Ale kosztem rozdzielczości PWM. Trzeba włączyć tryb z wartością TOP ładowaną do Capture1. Potem w programie: zmiana Capture1 daje zmianę częstotliwości, ale wymaga też przeliczenia wartości Pwm1a/1b. Samo wypełnienie zmienia się w Pwm1a/1b, ale trzeba zawsze brać pod uwagę wartość z Capture1 by nie wpisać...
Jeśli jeszcze mogę prosić o pomoc to nie mogę ugryźć tego problemu. Mam program: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Dim I As Byte Do For I = 1 To 200 Pwm1a = I Waitms 1 Next I For I = 200 To 1 Step -1 Pwm1a = I Waitms 1 Next I Loop End Wyjście...
Wzorcowy układ : i program ze znanej książki : [syntax=vb]'Program sterowania jasnością dwóch diod LED za pomocą sygnału PWM 'Rozdzielczość sygnałów PWM 8 bitów 'Częstotliwość sygnału PWM ok. 15,6 kHz $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator o 'częstotliwości oscylatora 'taktującego...
Do tego najlepiej użyć PWMa. Na medze ósmej musisz uruchomić timer1. [syntax=basic4gl] config timer1 = PWM , pwm = 10 , compare a pwm = clear up , compare b pwm = disconnect , prescale = 1 Dim opu as word do for opu = 0 to 1023 pwm1a = opu waitms 3 next opu for opu = 1023 to 0 step -1 pwm1a = opu waitms 3 next opu loop end [/syntax] To tak na szybko....
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
Witam, Mam pewien problem z Rc5 w bascomie, chodzi mi o to, że instrukcje odpowiedzialne za rc5 są wykonywane tylko kilka razy a później, kaplica coś się zapycha:) i pilot nie działa. Cała sytuacja ma charakter nieliniowy tzn. że raz wykryje 3 naciśnięcia przycisku na pilocie a raz np. 5. Po zresetowaniu procka znowu RC5 działa przez parę cykli uP....
Witam wszystkich fachowców, Z programowaniem uC w języku Bascom dopiero zaczynam wiec bardzo proszę o wyrozumiałość. Chodzi mi o wstawienie obsługi przycisku. Całość ma działać w następujący sposób -jeśli wciskam i cały czas trzymam przycisk, podając stan niski "0" na pind.1, to zaczyna działać pierwsza część programu. Natomiast w momencie kiedy puszczam...
Mam pytanie czy jest możliwość sterowania PWM1a i PWM1b osobno tzn nadać dla PWM1a Prescale 64 a dla PWM1b Prescale 8 ? Mam taki kod [syntax=basic4gl]Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 64 Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1[/syntax][/code]
Co jest powodem że po 73ms bezczynności na symulatorze portb.1 = 0 przechodzi w stan = 1??? [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 $baud = 9600 Config Serialin = Buffered , Size = 254 , Bytematch = All Config Timer1 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Enable Serial Enable Interrupts Config Portd...
Witam Mam płytkę z Atmega8 połączoną z czujnikiem PIR ( wejście INT1 przez transoptor ), do tego pomiar ADC ( od wartości adc zależy czas po jakim PWM będzie zmniejszone, opcjonalnie chcę też pod INT0 podpiąć przycisk, coby włączyć światło, gdybym nie znalazł się w zasięgu czujnika. Dodatkowym "bajerem" jest to, że światło ( listwa LED ) powoli się...
Coś w tym jest. Lecz PWM zrób sobie sprzętowo na timerku. Poczytaj w helpie Bascoma o Config Timer. A to na początek -Demonstracyjny programik dla PWR Odznaczono instrukcje dla timera1. W obecnej postaci będzie chodził PWM na timerze2 $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 =...
Witam Mam banalny program, po włączaniu zasilania startuje licznik czasu, program prawie działa nie do końca dobrze. Atmega8 steruje wyświetlaczem LED (segmenty) z portu D, poszczególne cyfry od najbardziej znaczącej W4,W3,W2,W1 sterowane z portu B, z portu B jest też sterowanie jasnością wyświetlaczy (PWM) i buzerem. Ogólnie licznik liczy ale buzer...
Witam!! Układ sterownika tampoprintu zbudowany na bazie mikrokontrolera AVR, schemat poniżej, zasilanie dostarczane przez dwie osobne przetwornice +5V dla logiki oraz +24V dla elektrozaworów i oświetlenia, na przewodach zasilających koraliki ferrytowe, pole masy na płytce, tranzystory sterujące cewkami zabezpieczone diodami, przy samych cewkach we wtyczkach...
Witam Mam problem z odczytem danych z 24C02. Program piszę w bascom, procesor to atmega8 taktowany wewnętrznie 1MHz. Zapisuję do eeproma zewnętrznego 3 zmienne Byte, są to liczby w zakresie 1-31; 1-12; 1-40. Wszystko ładnie się zapisuje do eeproma w menu. Po przejściu z pętli głównej do procedury nazwijmy ją "czytanie" za poierwszym razem pojawia się...
Witam. Przedstawione rozwiązanie powstało z myślą o zdalnym (radiowym) sterowaniu modelem samochodu. Umożliwia płynne regulacje: kierunku (lewo/prawo) oraz prędkości ruchu (przód/tył). Rozkaz typu "włącz/wyłącz" pozwala np. uruchamiać sygnał dźwiękowy (klakson) lub włączać światła. Spośród innych opisanych na Forum prezentowany projekt wyróżnia się...
witam Na technikę skonstruowałem pojazd przewodowy, konstrukcja jest prosta: l293, atmega8, 2 przełączniki i potencjometr. Problem w tym, że niezależnie od pozycji przełączników na wyjściach atmegi połączonych z l293 jest stan niski. Rolę silników pełnią przerobione serwa, jednak na czas testów ich nie podłączałem. Modyfikowałem program jednak bezskutecznie,...
witam. chcialbym skorzystac z pwma i zrobic przebieg sinusoidalny. napisalem nastepujacy program. sinusik jest bardzo ladny ale maxymalna jego czestotliwosc to ok 50Hz. Do For Kat = 0 To 360 Step 2 Rad = Deg2rad(kat) Wartosc = Sin(rad) ' -1 - 1 Wartosc = Wartosc + 1 ' 0 - 2 Wartosc = Wartosc * 128 '0 - 256 Pwm1a = wartosc ' Waitus 2 Next Loop wyglada...
Witam, robię prosta ładowarkę Ni-Mh opartą na sygnale PWM generowanym przez atmegę i BUZ 11. BUZ jest podłączony bezp. do OC1A. koncepcja jest taka aby wzrost wypełnienia regulował napięcie na ładowanym ogniwie (pakiet 10x1,55V) tak aby utrzymywać prąd rzędu 1.5A (szybkie ładowanie). Aby pomiary wychodziły ok dorobiłem filtr do ADC0 (pomiar napięcia)...
Ja zrobiłem tak że wypełnienie PWM to było poprostu 52 * napięcie wystarczyło by 51 (5*51=255) ale nie zawsze było pełne 5v jakoś tak to było: PWM(jakaś zmienna) = 52*napiecie if pwm>255 then pwm = 255 end if pwm1a=pwm Samo przeliczanie napięcia na pwm działało mi dobrze, niestety miałem problem że sam potencjometr dawał skokowe napięcie...
Witam - mam nie lada problem Atmega8, kwarc 4 MHz i przekaźniczki podłączone do pinów Atmega zlicza sobie czasy poszczególnych trybów pracy - wylicza wskaźnik OEE oraz Wykorzystania (maszyny) i wyswietla za pomocą pwm na woltomierzach. Wszystko "gra i buczy" ale chciałbym aby pokazywała mi wskaźniki tylko z ostatniej godziny a nie jak teraz "na żywo"...
i tak wyglada tylko nie z tego programu skopiowalem:) ale i tak nie dziala czy jest dzielone przez 4 czy tego nie ma wkleje cały kod bedzie prościej $crystal = 8000000 $regfile = "m8def.dat" Dim Wartosc As Word Dim Wartosca As Word Dim Zadany As Word Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm...
... Jedyny minus, przy pwm1a=0 są "szpilki"... Zamiast wpisywania do rejestru ocr1a(Pwm1a) zera , przełącz funkcję PINB.1 na standardową(I/O) , poprzez wyzerowanie bitu COM1A1 w TCCR1A.Przed uruchomieniem Timera wyzeruj PORTB.1 . Np. Set DDRB.1 Reset PORTB.1 TCCR1A=&B10000001 TCCR1B=&B00001001 '... If Wypełnienie = 0 Then Reset TCCR1A.COM1A1 'PINB.1...
Wystarczy atmega8 która posiada 4 kanały PWM. Do każdego kanału podłączasz mosfeta i wentylator. Wpisujesz do odpowiedniego rejestru pożądaną wartość i tyle... Po co bawić się w bramki... A moglbys mi powiedziec jakie piny sa wtedy uzywane? Z tego co widze, to wydaje mi sie ze : OC1A, OC1B, OC2, i jaki jeszcze? I jak wyglada konfiguracja w programie?...
Ok dzięki panowie już teraz rozumiem. Pobrałem sobie ze strony BTC z zaproponowanej książki przykładowe programy BASCOm i pewnie chodzi o ten właśnie kod ?? 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk S1 zwiększa prędkość obrotową silnika...
Uruchomiło :D Szkoda tylko, że nic z tego nie rozumiem. Co prawda jest na odwrót niż w ATmega8 (tam 0-dioda nie świeci, tutaj 0 - dioda świeci), pozmieniałem trochę kod i jest tak samo jak wcześniej na ATmega. Kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect...
Jeśli chcesz generować konkretną częstotliwość to wykorzystaj do tego tryb COMPARE timera: Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1 Częstotliwość wtedy zmieniasz wpisując odpowiednią wartość do rejestru Compare1a lub Pwm1a (ten sam rejestr - nie ma znaczenia który). W ten sposób nie obciążasz uK przerwaniami a przebieg...
Koledzy nie mogę sobie porzdzić z kodem. Chcę aby po naciśnięciu przycisku wartość zwiększyła się o 1 Dim I As Byte Do If Pinb.2 = 0 Then I + 1 If Pinb.3 = 0 Then I - 1 Pwm1a = I
Witam Próbuje ogarnąć temat generowania częstotliwości Postanowiłem wykonać generator 22kHz Mam straszny problem z wyliczaniem ile należy wpisać do licznika aby uzyskać odpowiednią częstotliwość pozłużyłem się kalkulatorem ze strony 'Generator 22khz $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3...
Witam Dla swoich potrzeb skonstruowałem sterownik za pomocą którego kontroluje stan wody która na wiosnę odwiedza moją piwnicę. Sterownik za pomocą czujnika poziomu mierzy mi ilość wody i jeżeli jej poziom przekroczy wartość 2,10 to informuje mnie LEDem oraz 10 sekundowym popiskiwaniem (1Hz) buzera. Ja natomiast ręcznie mogę ustawić czas od 1 do 40...
No dobrze, w takim razie pokażę Ci coś żebyś na przyszłość nie musiał już "przyjmować" ;) <wzór> Wyciągnij sobie z tego Vin;) Znaczy, sobie możesz przyjmować, ale nie promuj tego rozwiązania;) Ładniej wygląda po wyciągnięciu V IN /V REF . Tylko nie wiem co to miało dawać. Że przez wzór to lepiej dotrze? A może w drugą stronę: If Wyp = 101 Then...
Witam. Może i głupio, ale z ciekawości napisałem programik, którego jedynym zadaniem jest przepuszczanie podanego na wejście ADC dzwięku przez mikroprocesor atmega8 tak, że wychodzi na PWM1a. W sumie to nawet poniekąd mi się to udało, dzwięk przechodził, ale wyjściowa jakość nie była zadowalająca. Większość paramerów w programie dobrałem doświadczalnie......
Na pętli For to chyba nie będzie elegancko, ale się da. Jeśli dobrze zrozumiałem twój zamiar to proponuje coś takiego: Dim S1_pressed As Byte Dim S2_pressed As Byte Dim Pwm_memory Do Waitms 25 If S1 = 0 Then S1_pressed = 1 Incr Pwm1a If Pwm1a = 0 Then Pwm1a = 255 Else If S1_pressed = 1 Then Pwm_memory = Pwm1a S1_pressed = 0 End If End If If S2 = 0 Then...
Proszę was o szybkie sprawdzenie czy ta konfiguracja pwm będzie działała poprawnie. $regfile = "m8def.dat" $crystal = 12000000 Baud = 19200 Config Portb = Output Portb = &B00000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Pwm1a = 100 Pwm1b = 200 Ps.Z jaka częstotliwością działa pwm w atmega8?
Ja właśnie napisałem coś takiego o co mniej więcej mi chodziło,ważne że działa $regfile = "m32def.dat" $crystal = 16000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Enable Interrupts Dim...
Korzystam z Fast PWM, tryb 14, bez preskalera. Czyli na dwóch kanałach OC1A i OC1B otrzymuje regulowane wypełnienie o rozdzielczości 16bit przy ~122Hz (zegar uC to 8MHz). Działa to bardzo ładnie, jednak przy zerowym wypełnieniu (pwm1a = 0) na wyjściu są jakieś śmieci. Czas trwania to tylko 230ns, ale to wystarczy żeby na wyjściu filtra RC dostać 8mV...
Zamieszczam aktualny schemat na prośbę użytkownika (at)zaprzal Program mam jeszcze nie gotowy. Udało mi się zrobić automatyczną regulacje prądu. Przy uruchomieniu ładowarki ustawiamy przyciskami jaki ma być prąd ładowania a następnie procesor zwiększa wartość Pwm aż (prąd mierzony = prąd ustawiony) Następnie gdy akumulator się ładuje i prąd maleje procesor...
Witam, chcę zrobić coś w rodzaju stabilizatora prądu na tym uK i mam pewien problem. Otóż procek ma generować sygnał PWM który będzie sterował jasnością diody o stałym wypełnieniu impulsu do czasu zmiany parametru zasilania tzn. jeśli napięcie zasilania spadnie to i na wyjściu PWMu będzie niższe wtedy Atmega ma zwiększyć wypełnienie PWMu aby dioda nie...
Witam! Potrzebuję wykonać na Atmedze generator przebiegu prostokątnego w zakresie częstotliwości 0-10kHz do współpracy ze sterownikiem silnika krokowego. Nie jestem najlepszy w obsłudze timerów więc stąd prośba o pomoc. Chciałbym aby wybrana częstotliwość mogła być zadawana przy pomocy przycisków "góra", "dół" oraz potencjometra. Udało mi się stworzyć...
Zobacz to: $regfile = "m8def.dat" $crystal = 16000000 Config Portb = Output Portb = &B00000000 Config Portd = Input Portd = &B11111111 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Przycisk Alias Pind.1 Dim D As Byte , Czekaj As Integer D = 0 Pwm1a = D Czekaj = 0 Do If Przycisk...
witam,ja też mam problem z ustaleniem czasu pracy wentylatora sterowanego termometrem i Pwm. chcę aby wentylator pracował jeszcze ok 30 sek po spełnieniu warunku Pw=0 bez opóźniania całego procesu, po użyciu polecenia Wait 30. teraz wentylator załącza się i wyłącza natychmiast po spełnieniu warunku K=28,lub K=30 Dodano po 1 a to listing'$sim ' Program...
Pin może być ustawiony jako wyjście w stanie niskim na etapie inicjalizacji. Później wystarczy "odłączać" ten pin od generatora PWM bitami COM. Fragment programu przetwornicy: [syntax=c]void more(void) { TCCR1A = BIT(COM1A1)|BIT(COM1A0)|BIT(COM1B1)|BIT(... // dolacz PWM do OC1A/B if( PWMDOWN > 32 ) // mozna podbic napiecie obnizajacej?...
Witam. Mam problem ze startem TIMER'a Program: [syntax=basic4gl]$regfile = "m8def.dat" 'najpierw określamy typ proca $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portd.0 , E = Portc.1 , Rs = Portc.0 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down...
Witam. Napisałem prosty programik. Działa on tak że po włączeniu układ generuje impulsy o częstotliwości regulowanej przez ADC2. Teraz nie mam pojęcia jak zrobić aby przycisk podpięty na PD.0 włączał i wyłączał mi ten generator na wyjściu atmegi. [syntax=Basic4GL]$regfile = "m8def.dat" $crystal = 8000000 Config Portd = &B00000000 Config Portb = &B11111111...
Niestety wychodzi teraz trochę moje lenistwo, uznałem że jeśli zbyt wysoka dokładność nie jest potrzebna to nie ma co się bawić. :arrow: tmf 1. Powinienem go podłączyć tak jak w mojej płytce testowej . 2. Rzeczywiście z rozpędu podłączyłem AREF do VCC, na szczęście nie stwarza to w tym przypadku problemów ale na przyszłość już tak nie zrobię. 3. Oczywiście...
Witam Chciałbym sterować 2 silnikami DC z dwóch potencjometrów. Na początku mam program który przyspiesza silnik za pomocą PWM [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Portb = &B11111111 Config Portd = Input Portd = &B1111111 Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Pwm1a = 30...
Napisałem sobie program lecz jak rozjaśniam to bardzo duzo razy trzeba klikać przycisk aby na maxa rozjaśnic lub ściemnić. Chciał bym aby tak rozjaśniało do maxa przy np 10 kliknięciach , takie 10 stopni rozjaśnie. Prosze o pomoc jak mam zmienić moj kod. Wsad: [syntax=basic4gl] Config Pinb.1 = Output '................ If........ Incr R '.................
Nawet po zmianie tych zmiennych zasięg spada do 1cm. Dodano po 15 Ze względu na brak wielu pasywnych części generator muszę wykonać na atmedze.
Nie wiem co źle robię, ale nie zapisuje się ustawienie do pamięci. Przed główną pętlą zrobiłem w następujący sposób odczyt: [syntax=basic4gl] I2cstart I2cwbyte 169 I2cwbyte 2 I2cstart I2cwbyte 168 I2crbyte Pwm1a , Ack I2crbyte Pwm1a , Nack I2cstop[/syntax] A zapisywanie ustawień w menu zrobiłem tak: [syntax=basic4gl]If K1 = 0 Then : Waitms 5 : If K1...