Skocz do zawartości

[Kurs] BASCOM - lekcja3 - zaczynamy programować


Pomocna odpowiedź

bb5,
Atmega8-Pins.png

sygnały pwm są generowane na pb.1 i pb.2 i są to odpowiednio PWM1a i PWM1b.

Ogólnie pwm'a konfigurujemy tak:

Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down

pwm 8 bitowy- czyli wartości od 0 od 255

następnie po wszystkich konfigach startujesz pwm'a

Start Timer1

wartości ustawiasz odpowiednio:

Pwm1a = [wartosc]

i

Pwm1b = [wartosc]

Należy pamiętać o skonfigurowaniu tych pinów jako wyjścia, zamieszczam testowy program:

$regfile = "m8def.dat" 

Config Portb.1 = Output   
Config Portb.2 = Output                                   'konfiguracja wyjść

Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       'konfiguracja timera1

Do                                                              'początek pętli
Waitms 5
Incr Pwm1a                                                  'zwiększ wypełnienie co 5ms
Incr Pwm1b
Loop                                                           'koniec pętli

Silniczki będą powoli zwiększały obroty (prędkość zależy od waita).

Pozdrawiam.

Zakładając, że PWM 1 steruje jednym a PWM 2 drugim to jak skręcać? Tak to ma wyglądać?

$regfile = "m8def.dat" 

Config Portb.1 = Output    
Config Portb.2 = Output                                   'konfiguracja wyjść 

Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       'konfiguracja timera1 

Do                                                              'początek pętli 
Waitms 5 
Incr Pwm1a                                         'zwiększ wypełnienie co 5ms 
Derc Pwm1b 
Loop                                                           'koniec pętli
End

Incr i Decr odpowiadają za zwiększanie i zmniejszanie liczby, jeśli chcesz sterować PWM'em w obie strony, to musisz mieć podłączone piny z mostka H do procka i odpowiednio nimi sterować, (nie wiem jak jest w L293, ja mam kilka sztuk MAX4427 którego zamówiłem z sampli z Maxim'a (można też z Microchip'a), jest bardzo łatwy w obsłudze, tam żeby zmienić kierunek obrotu silnika podajesz 1 lub 0 na odpowiednią nogę scalaka).

Przykładowo robisz tak:

$regfile = "m8def.dat" 

Config Portb.1 = Output   
Config Portb.2 = Output                                   'konfiguracja wyjść

Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       'konfiguracja timera1

Do                                                      
Pwm1a = 255                                             'silnik kręci się na maksymalnych obrotach
Pwm1b = 0                                                  'a drugi stoi w miejscu
Loop                                                           'koniec pętli
End 

Pwm1a i Pwm1b odpowiadają za wypełnienie, podając wartość od 0 do 255 regulujesz wypełnienie.

Poczytaj sobie o 293, jest tego naprawdę dużo.

Witam.

Mam kolejne pytanie 🙂 Chciałbym do tego zestawu dodać silnik. Czy mogę to wykonać tak:

Wzmacniacz LM386N Podłączony jako wtórnik napięcia.

No i gdzie w katalogu tego układu scalonego jest napisane jaki prąd największy możne przez niego płynąć bo nie wiem czy silniczek mogę podłączyć 🙂

Tranzystor ma 3 nószki a wzmacniacz 8 to chyba widać co jest łatwiejsze w obsłudze i w wykonaniu płytki. Poco sobie komplikować prace. A tranzystor podłączasz tak jak piszesz.

Ja przeważnie szukam takie jakie mam, dobre są BC337 (NPN) lub BC327 (PNP), tanie i wystarczające do większości silników.

Tranzystor podłączasz tak: Baza (B) przez rezystor (1k-10k) do procka, emiter (E) do minusa (tranzystor NPN) lub do plusa (tranzystor PNP) a kolektor (C lub K) do silnika, oczywiście drugi "pin" silnika idzie do plusa przy NPN i do minusa przy PNP.

  • 2 tygodnie później...

mam takie pytanko. a mianowicie, czy bedzie mi dzialalo, jezeli kod zapisze w takiej postaci:

if portb = &B00101100 then portd = &B00001100

to jest fragment kodu, ale glownie chodzi mi o to, czy musze pisac pojedynczymi pinami, czy moge sobie cale porty wpisywac.

taaa...tylko jeszcze nie mam mikroklocka i wykorzystuje wolny czas do pisania po kawalku programu i sie nad tym zastanawiam...ulatwiloby mi to bardzo prace, bo musi mi ukladzik dzialac, jak wcisne kilka przyciskow na raz nawet, a nie pojedyncze.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...