Skocz do zawartości

Manipulator sterowany potencjometrami


Dotli

Pomocna odpowiedź

Nie polecam bascoma do fusów.

Nie ma to jak w pełni uzasadniona odpowiedź. Ja zablokowałem przez bascoma raz przez własną głupotę. Kolega Dotli tez teraz zablokował, bo nie podłączył kwarcu podczas zmiany, właśnie się staramy to naprawić. Bascom wg mnie jest dość dobry do zmiany, bo opisowy, tylko jak z wieloma rzeczami, trzeba być uważnym.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Pewnie jako crystal/ceramic osillator. Podłącza się go identycznie jak kwarc, jest tańszy, ale mniej dokładny. Bywa też, że ceramiczny ma 3 nóżki, z czego środkową podłącza się do gnd (i nie potrzeba tych kondensatorków 18pF, bez których i tak kwarc zwykle działa 😋 ). Czyli pokazuje dobrze. Gorzej, gdyby pokazywał external RC oscillator.

Link do komentarza
Share on other sites

Ja ostatnio wielokrotnie zmieniałem fusy przez bascoma i nie miałem z tym żadnego problemu, tylko trzeba tam czytać co się robi i się skupić, tam wszystko pisze, grunt, żeby sobie nie ustawić jakiegoś zewnętrznego generatora, bo w tedy albo go podłączysz, albo koniec z układem.

Jeśli chodzi o fusy to na windowsie bardzo polecam burn-o-mat, ma tylko jedną wadę, jest napisany w jawie. Ale tak to jest wszystko super, jest bardzo intuicyjny.

Link do komentarza
Share on other sites

Skoro już wspomniałeś o burnomacie Paweł, to ja (podobnie Nawyk i kilku innych userów) polecam Sinaprog - swego czasu używałem burnomata, ale strasznie długo się włącza i trzeba doinstalować osobno Avrdude, a Sinaprog jest lekki, podobnie wyposażony i instaluje się już z Avrdude - co prawda na jednym komputerze miałem z nim problem, wywalał jakiś error przy uruchomieniu albo instalacji, ale na innych jest ok.

Link do komentarza
Share on other sites

mam rpoblem nie wiem dokladnie jak ustawic miejsce zerowe kominowałem juz z ustawieniami 60 , 90 i 120 a serwo ciagle sie wychyla w takie samo polozenie przy starcie programu. i gdy krece potencjometrem mam tylko zakres po dodatnie stronie czyli przy odczytywanej wartosci z ADC 512-1024 gdy przekrecam na odczyt wartosci ponizej 512 to serwo praktycznie nie reaguje delikatnie sie rusza tylko

[ Dodano: 24-02-2011, 13:23 ]

tutaj program :

$regfile = "m8def.dat"
$crystal = 10000000
$baud = 4800

Config Portb.1 = Output
Config Portb.2 = Output

Dim A As Integer
Dim B As Integer

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 8

Start Adc
Enable Interrupts


Servo(1) = 120   'wartość zerowa serwa, należy ustawić samemu
Servo(2) = 120


Do

A = Getadc(5)
B = Getadc(4)
A = A / 8.5
B = B / 8.5
A = A + 60
B = B + 60

Servo(1) = A
Servo(2) = B

Print "A:" ; A ; "  B" ; B

Loop
End
Link do komentarza
Share on other sites

Myślę że opis jest zbędny.

Kod:

$regfile = "m8def.dat"

$crystal = 10000000

$baud = 4800

Config Portb.1 = Output

Config Portb.2 = Output

Dim A As Integer

Dim B As Integer

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 8

Start Adc

Enable Interrupts

Servo(1) = 120 'wartość zerowa serwa, należy ustawić samemu

Servo(2) = 120

Do

A = Getadc(5)

B = Getadc(4)

A = A / 8.5

B = B / 8.5

A = A + 60

B = B + 60

Servo(1) = A

Servo(2) = B

Print "A:" ; A ; " B" ; B

Loop

End

Odczyt z ADC jest 0-1023. Dzieląc przez 8,5 uzyskałem zakresy wychyleń mojego serwa. Serwo nie wychyla się od parametru równego 0, dlatego dodałem 60 jako minimalną wartość wychylenia dla mojego serwa - maksymalna jest wtedy 180 (wychylenie + 60). Teraz kombinuj sam.

Przeczytaj to jeszcze raz i zmień w swoim programie. To są najbanalniejsze działania matematyczne, jak nie potrafisz tego zmienić samemu to niestety nie wróżę ci świetlanej przyszłości w robotyce. Przede wszystkim CZYTAJ i MYŚL. Powodzenia.

[ Dodano: 24-02-2011, 16:58 ]

Skądinąd wiem że masz przecież megę 32 z taktowaniem 8MHz wewnętrznym, więc zamieść swój prawdziwy niedziałający kod, bo to że zamieszczasz mój działający nic ci nie da.

Link do komentarza
Share on other sites

$regfile = "m32def.dat"
$crystal = 8000000


Config Portb.0 = Output


Dim A As Integer


Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Servos = 1 , Servo1 = Portb.0, Reload = 8

Start Adc
Enable Interrupts


Servo(1) = 120   'wartość zerowa serwa, należy ustawić samemu



Do

A = Getadc(0)

A = A / 8.5

A = A + 60


Servo(1) = A



Loop
End

Tak wygląda mój kod

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.