Witam,
Na wstępie pragnę zaznaczyć iż nie jestem elektronikiem, ani żadną osobą zajmującą się rzeczami z tym związanymi. Jestem studentem inf. i potrzebuję rady.
Razem z kolegą robimy projekt na zajęcia z mikroprocesorów i mikrokontrolerów. Śluzę 3-drzwiową zwalnianą i zamykaną przy pomocy serwomechanizmów(SG-5010). Zaprojektowaliśmy układ mamy do tego program, wirtualnie działa bez zarzutów, jednak przy fizycznej realizacji projektu trochę nam teoria nie idzie w parze z praktyką.Serwomechanizmy dokręcają się do końca i najchętniej dalej by to robiły gdyby nie blokada. I tu moje pytanie do was wszystkich \, da sie coś na to poradzić w tym przypadku: Zamieszczam schemat, i program(jest tam opisane co i jak ma działać).
mikro zasilamy z programatora USBasp, wszystkie wyprowadzenia z programatora (RESET MISO MOSI itp) też na stałe do mikro podpięte.
Serwomechanizmy zasilamy z zasilacza (programowalnego od 3 do 12V)
zamieszczam też kod programu tu jest co i jak ma działać opisane
Dziękuję wszystkim kompetentnym i wyrozumiałym za radę lub pomoc w rozwiązaniu problemu.
Na wstępie pragnę zaznaczyć iż nie jestem elektronikiem, ani żadną osobą zajmującą się rzeczami z tym związanymi. Jestem studentem inf. i potrzebuję rady.
Razem z kolegą robimy projekt na zajęcia z mikroprocesorów i mikrokontrolerów. Śluzę 3-drzwiową zwalnianą i zamykaną przy pomocy serwomechanizmów(SG-5010). Zaprojektowaliśmy układ mamy do tego program, wirtualnie działa bez zarzutów, jednak przy fizycznej realizacji projektu trochę nam teoria nie idzie w parze z praktyką.Serwomechanizmy dokręcają się do końca i najchętniej dalej by to robiły gdyby nie blokada. I tu moje pytanie do was wszystkich \, da sie coś na to poradzić w tym przypadku: Zamieszczam schemat, i program(jest tam opisane co i jak ma działać).
mikro zasilamy z programatora USBasp, wszystkie wyprowadzenia z programatora (RESET MISO MOSI itp) też na stałe do mikro podpięte.
Serwomechanizmy zasilamy z zasilacza (programowalnego od 3 do 12V)
zamieszczam też kod programu tu jest co i jak ma działać opisane
' Program sterujacy serwomechanizmami
' Procesor: ATMEGA8
' Kwarc: 10MHz zewnetrzny
$regfile = "m8def.dat" 'procesor ATMEGA8
$crystal = 10000000 'kwarc 10MHz
'USTAWIENIE STALYCH
Const Srodek = 100 'polozenie srodkowe walka serwa (polozenie umowne 0*)
Const Wychylenie = 150 'polozenie wychylone w prawo walka serwa (kat 90* w prawo w stosunku do poczatkowego)
Const Czas = 5 'czas powrotu w sekundach
Config Pinc.0 = Output 'PC0 jako wyjscie serwa 1 (noga 23 ukladu)
Config Pinc.1 = Output 'PC1 jako wyjscie serwa 2 (noga 24)
Config Pinc.2 = Output 'PC2 jako wyjscie serwa 3 (noga 25)
Config Pind.0 = Input 'PD0 jako wejscie ster. serwem 1 (noga 2)
Config Pind.1 = Input 'PD1 jako wejscie ster. serwem 2 (noga 3)
Config Pind.2 = Input 'PD2 jako wejscie ster. serwem 3 (noga 4)
Config Servos = 3 , Servo1 = Portc.0 , Servo2 = Portc.1 , Servo3 = Portc.2 , Reload = 10 'konfiguracja serwomechanizmow
S1 Alias Pind.0 'alias na styczniki dla serwa1
S2 Alias Pind.1
S3 Alias Pind.2
Set Portd.0 'zalacza rezystor podciagajacy do stycznika S1
Set Portd.1
Set Portd.2
Enable Interrupts 'globalne zalaczenie przerywan
Servo(1) = Srodek 'wpisanie wartosci do serwa1 (ustawienie walka w srodkowej pozycji)
Servo(2) = Srodek
Servo(3) = Srodek
Do 'glowna petla programu
Debounce S1 , 0 , Wlaczs1 , Sub 'naciskajac przycisk, wchodzi do odpowiedniej procedury obslugi
Debounce S2 , 0 , Wlaczs2 , Sub
Debounce S3 , 0 , Wlaczs3 , Sub
Loop
End
Wlaczs1: 'ustawia serwo 1 w pozycji wyhylonej i powraca po zadanym czasie do polozenia poczatkowego
Servo(1) = Wychylenie 'ustawia serwo1 w pozycji wychylonej
Wait Czas 'czeka ustalony czas
Servo(1) = Srodek 'ustawia z powrotem poczatkowe polozenie (srodkowe)
Return
Wlaczs2:
Servo(2) = Wychylenie
Wait Czas
Servo(2) = Srodek
Return
Wlaczs3:
Servo(3) = Wychylenie
Wait Czas
Servo(3) = Srodek
ReturnDziękuję wszystkim kompetentnym i wyrozumiałym za radę lub pomoc w rozwiązaniu problemu.
