Witam. Zaczynam naukę programowania w bascomie przy okazji buduję linefollowera na tiny2313. Program udało mi się napisać bez większych problemów, jednak chciałbym go niedługo wzbogacić, m.in. o PWM. Tu się zaczyna problem-mimo że trochę poczytałem nie wiem jak to zrobić. Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Jednak nie wiem co dalej-jak ustawić port na którym ma być przebieg i jak ustawić jego wypełnienie? Pozdrawiam
|
|||
Re: PWM
Portu nie da się ustawić, jest ściśle określony. PWM jest dwukanałowy dla timera 1 a wyjściami są piny OC1A (PB3) i OC1B(PB4). Z twojego configa wynika że chcesz 8 bitowy PWM więc do rejestrów CompareA i compareB trzeba teraz wpisać jakieś tam wartości wypełnienia 0-255
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Chyba znalazłem. Pwm1a = 255
Chyba znalazłem.
Jeśli umieszczę to przed główną pętlą, to powinno działać tak, jak napisałem?
Możesz to skonfigurować
Możesz to skonfigurować bezpośrednio w rejestrach, a wsp. wypęlnienia możesz ustawiać wpisując wartość w rejestry ocr1a/ocr1b.
Pozdrawiam, Rafał.
Dalej PWM
mam kilka pytań związanych z PWM i Atmegą
atmega48,moc3041,bt139 - chciałem z użyciem bliźniaczego układu jak Twój element wykonawczy sterować żarówką 230v - płynna regulacja jasności, jednak strasznie miga. zmiany prescalera w configu pwm nie wiele pomagają . czy winą jest przełączanie w zerze przez moc3041 ? - nie mam innego by to sprawdzić.
Przy okazji - w ogóle jak to jest że na PWM preskalerze poniżej 256 np silniczek 5VDC sterowany przez L293DNE ma strasznie mały moment pomimo pełnej regulacji wypełnienia ?
Do sterowania żarówką jest
Do sterowania żarówką jest potrzebny układ wykrywania przejścia przez zero. Optotriak musi być zwykły, a sterowanie jasności żarówki to tak zwane sterowanie fazowe. Mam nadzieję, że rysunek wszystko wyjaśnia, ta sinusoida to prąd sieciowy.
http://www.toolsfactory.pl/i/sklep/ssr/ssr04.gif
Re: PWM
PWM do żarówki 230V AC się nie nadaje.... zawsze będzie migać. bo trafiasz w rózne punkty na sinusoidzie. Możesz jeszcze spróbować optotriaka bez włączenia w zerze. Wdaje mi się że TYLKO regulator fazowy zda egzamin w tym miejscu.
Z tym silnikiem to prawdopodobnie za duża częstotliwość sygnału i sterownik sobie nie radzi. Z tego co czytam to 5KHz jest max a PWM napewno może przynajmniej 2 razy tyle działać. Zmierz albo policz co na wyjściu masz dokładnie i co się dzieje z przebiegiem na silniku
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM
Witam
Chciałbym uzyska efekt wygaszania led po naciśnięciu przycisku, ale nie wiem co dopisać w pętli
Pomoże mi ktoś?
Re: PWM
Najprościej to chyba tak:
Program będzie czekał tyko na przyciśnięcie przycisku a potem zacznie ściemniać lub rozjaśniać. Wartość początkową przypisz przed do loop. Rozwiązanie ne jest eleganckie bo ma waity ale powinno zadziałac
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM
Nie działa mi ten kod
Re: PWM
A jak nie masz nic w do loop i przypiszesz na początku Pwm0a = 0 a innym razem Pwm0a = 100 to sam PWM w ogóle działa?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM
Nie działało bo diodę podłączyłem pod PB4, ale zmieniłem już na PB0
Naciskam klawisz zapala się dioda świeci 10 sekund i powoli wygasa, a teraz chciałbym dodać ADC żeby swiecenie tej diody mozna było ustawiac potencjometrem
Re: PWM
No tootwierasz helpa do bascoma, szukasz config ADC i tam jest wszystko napisane, tylko wkleić linijkę z konfiguracją, ustawić referencję na AVCC żeby było 5V i podłączyć potencjometr między zasilanie a masę, suwakiem do adc. Wejście przetwornika powinno być zadeklarowane jako X czyli floating (wiszące)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM
Może z ADC jeszcze się wstrzymam. Pomyślałem że lepiej będzie jak nacisnę przycisk i będę go trzymał to dioda będzie świeciła, a jak puszcze to zgaśnie razem z opcją PWM. Tylko co wstawić zamiast?
Re: PWM
Wstaw Else do tego ifa w którym ustawisz wartość PWM dla trzymania i daj sprawdzanie stanu 1 a nie 0. Jak trzymasz to będzie 0 i będzie cały czas stałą wartość a jak puścisz to będzie się zmieniac
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM
Re: PWM
Raczej tak, to co napisałeś wyżej raczej wygeneruje bład:
Spróbuj tak i na przyszłość stosuj wcięcia w programie bo nie idzie go potem zanalizować
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PWM na Attiny 25
Witam, podłącze się pod temat.
Czy próbował może ktoś skonfigurować ten procesor żeby poprawnie działał PWM. Bo ja kiedyś próbowałem i skończyło się na zastosowaniu 2313.
Jeśli komuś się udało to prosił bym o wskazówkę.
Dzięki.
ADC
Znalazłem coś takiego na temat config ADC
Bo chciałbym sterować czasem świecenia diody za pomocą potencjometra, ale nie bardzo rozmuniem tago configa ADC
Re: ADC
Jak to nie rozumiesz. Konfigurujesz ADC na początku i uruchamiasz:
W momencie kiedy wydasz polecenie:
do zmiennej W zostanie wpisany wynik konwersji z kanału channel (0-7)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
W = Getadc(0)a dalej jak
a dalej jak odczytać wartość z ADC i zamienić ją tak żeby odliczała czas?
Re: W = Getadc(0)a dalej jak
Pobierając wartość z wejścia ADC dostaniesz liczbę z zakresu 0-1023. Resztę musisz sam sobie obliczyć w zależności od tego co chcesz uzyskać?
Dalej powinieneś uruchomić timer i liczbę ADC zamienić na odpowiednią wartość dla timera a ten odliczy Ci zadany czas.
Tudzież zmienna pobrana z ADC może się zmniejszać co przerwanie timera. Konfiguracji jest masa. Liczy się pomysłowość i to co chcesz uzyskać.
Myśl, myślenie ma przyszłość.
Moja strona w powijakach
Re: timer
Najprościej będzie skonfigurowac timer aby przerwanie wystepowało co najmniejszy odcinek czasu jak potrzebujesz, chyba że to długie czasy to wtedy będzie trzeba jeszcze na zmiennej podzielić. Potem tylko wywstarczy policzyć W impulsów i ustawic jakąś zmienną flagę na 1, która w pętli głównej będzie wykryta i wykona jakis fragment kodu.
Napisz jakis fragment to będzie można popatrzeć i zmodyfikowac
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Kod
Re: kod
W tym fragmencie
na ten przykład czegoś brak. Brak jest dyrektywy która każe liczyć o 7 do 0 czyli brak
i powinno wyglądać to tak:
Na końcu przestaw loop za oba end if
Moja strona w powijakach
Poprawiony kod
Re: For
jak jest pęla for i zmiana nastepuje co 1 to nie trzeba step.
Moze to być:
lub
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ok, a co z odczytem ADC?
ok, a co z odczytem ADC?
Re: ADC
Adc odczytywane jest raczej ok. W które miejsce teraz chcesz włozyć ustawianie parametru. Ustawianie czasu, tego 300ms czy może coś innego.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
tu gdzie jest zmienna Y
tu gdzie jest zmienna Y tym chce sterować przez potencjiometr
Re: Sterownie
No to użyj tego :
teraz będziesz miał czekanie od 200ms do 1023*200ms w zależności od wyniku ADC
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Wcześniej kolega Mirek pisał
Wcześniej kolega Mirek pisał żeby ustawić referencję na AVCC żeby było 5V i podłączyć potencjometr między zasilanie a masę, suwakiem do adc. O co chodzi z tym ustawieniem?
Re: O co chodzi z tym ustawieniem?
Ta część kodu zamiast tak:
ma wyglądać tak:
Moja strona w powijakach
Mostkujemy AVCC z VCC?
Mostkujemy AVCC z VCC?
Re: Mostkujemy AVCC z VCC?
Nie do końca łączymy, ale w prostych konstrukcjach można przyjąć takie rozwiązanie.
To co poniżej już jest bardzo dobrym rozwiązaniem:
Moja strona w powijakach
Witam serdecznie Chciałbym
Witam serdecznie
Chciałbym sie dowiedzieć jak skonfigurować PWM sprzetowe tak zeby działała na całym porcie B od 0 do 7?
Re: PWM
Nie da się zrobić tyle PWM sprzętowych. Masz określone piny procka na których jest wyjście i tyle. Programowo możesz sobie zrobić na dowolnych pinach
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Chodziło mi właśnie o PWM
Chodziło mi właśnie o PWM programowe nie sprzętowe pomyliłem się w poście wyżej. PWM sprzętowe wiem jak wygląda.
Re; PWM
Przeczytaj w dziale kody źródłowe informacje na temat programowego PWM i po prostu wstaw to do programu
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Coś takiego? $regfile =
Coś takiego?
Re: PWM
cos takiego:
Tablica zmiennych Pwm(1), Pwm(2) itd przechowuje wypełnienia poszczególnych kanałów. Jak Pwm(1) = 40 to masz 40% wypełnienia na portb.0 itd. Częstotliwość przebiegów dostrajasz timerem tak aby przerwanie było 100x szybsze niż częstotliwość przebiegu jaką chcesz uzyskać
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Nie można w jakiś sposób
Nie można w jakiś sposób zrobić tak żeby zamiast
pisać poszczególne piny wstawić od razy zmienną X?
RE: PWM
Może nie rozumiem w dalszym ciągu co chcesz zrobić? Wszystkie piny na porcie b mają reagować tak samo?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wszystkie piny na porcie b
wszystkie piny na porcie b mają reagować tak samo czyli rozjasniać się.
Re: PWM
no to:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam
Witam serdecznie
Poszukuje kodu do obsługi ADC i widziałem wyżej że kolega demsy próbował i ja też próbowałem ale bez skutku, potencjomet nie reaguje, Zapala się 8 diód kolejno i kolejno gasną od razu, a chciałbym sterować czasem pomiędzy świeceniem a gaśnięciem tych diód czyli zmienną Y
Re: ADC
Jak chcesz używać adc jak wszystkie piny portu C masz wyjściami i jeszcze zwarte do 0.
może być np tak:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Poprawiłem kod i działa
Poprawiłem kod i działa
PWM
Witam serdecznie
Chciałbym do kodu niżej dodać Pwm0b żeby działał tak samo jak Pwm0a, ale nie wiem jak do końca to napisać?
Re: Pwm
ma działać tak samo czy ma być drugi kanał na drugim klawiszu?
Pod spodem przed loop dodaj drugi taki sam fragment kodu:
Zamiast klawisz możesz dac np klawisz2 od drugiego przycisku. Jeśli po kliknięciujdnego przycisku program będzie czekał na tym wait 10 to wiadomo że drugi przycisk nie zadziała. Program jest napisany na waitach zamiast na timerze i będzie źle działał w takiej sytuacji
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Chciałem żeby Pwm0a i Pwm0b
Chciałem żeby Pwm0a i Pwm0b działały tak samo, ale moze rozwiąże to inaczej stosując jeden tranzystor NPN i do tego 2 mosfety tylko nie wiem jak wysterować mosfeta P.
Jak można ten Pwm0b jeszcze inaczej napisać?
tak może być?