|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 01 05, 00:41. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » stepper motor
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 3 Pereiti prie 1, 2, 3 Toliau |
|
|
|
|
stepper motor |
Parašytas: 2010 03 15, 22:35 |
|
|
|
Sveiki, bandau pasidaryti nesudetinga bipolar stepper motor valdikliuka.
Naudoju atmega8. Esu pasirases tokia programa, su jam man pavyksta paleisti suktis ji desinen arba kairen, bet nepavyksta sustabdyti.
Ijungus valdikli ir nuspaudus pvz mygtuka desinen jis pradeda suktis desinen bet nuspaudus stop neko nereguoja. Gal galit patart kokias klaidas darau programos kode?
Kodas: |
#include <avr/io.h>
int main() {
PORTB=7;
unsigned char a=0;
while(1){
if (!(PINB&1)) // migtukas desinen
{
if (a==0) a=1;
while (!(PINB&1)){}
}
if (a==1) desine ();
if (!(PINB&2)) // mygtukas kairen
{
if (a==0) a=2;
while (!(PINB&2)){}
}
if (a==2) kaire ();
}
}
void stop()
{
}
void delay_ms() //
{
int i,j;
for(i=0;i<150;i++)
for(j=0;j<100;j++)
{
asm("nop");
asm("nop");
}
{
PORTB=7;
unsigned char a=0;
if (!(PINB&4)) // Stop mygtukas
{
if (a==0) a=3;
while (!(PINB&4)){}
}
if (a==3) main() ;
}
}
void desine() {
DDRC=15;
while (1) {
PORTC=0b00000001; // desine
delay_ms();
PORTC=0b00001001;
delay_ms();
PORTC=0b00001000;
delay_ms();
PORTC=0b00001100;
delay_ms();
PORTC=0b00000100;
delay_ms();
PORTC=0b00000110;
delay_ms();
PORTC=0b00000010;
delay_ms();
PORTC=0b00000011;
delay_ms();
}
}
void kaire() {
DDRC=15;
while (1) {
PORTC=0b00000011; // i kaire
delay_ms();
PORTC=0b00000010;
delay_ms();
PORTC=0b00000110;
delay_ms();
PORTC=0b00000100;
delay_ms();
PORTC=0b00001100;
delay_ms();
PORTC=0b00001000;
delay_ms();
PORTC=0b00001001;
delay_ms();
PORTC=0b00000001;
delay_ms();
}
}
|
|
|
Paskutinį kartą redagavo zingo, 2010 03 19, 00:18. Redaguota 2 kartus(ų) |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 15, 23:16 |
|
|
|
gana keistai programa padarei, suprantama kad neveiks, net ja suprasti sunku
pirma kas cia per valdymas 3 kintamaisiais?
variklis negali vienu metu suktis i abi puses ir dar stoveti vietoje.
taigi reikia vieno kintamojo jo busenai
visas tokias va eilutes
if (a==0) a=1; else a=0;
padaryk be else,
va taip
if (a==0) a=1;
visus abc kintamuosius padaryk vienodu pavadinimu.
nu ir nesuprantu kam tu stop funkcija tokia sudetinga padarei kai ten tiesiog nieko daryti nereikia, arba gali koki 1ms delay ideti |
|
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 15, 23:31 |
|
|
|
Na va redagavau taip kaip patariai, ant simuliatoriaus lyg ir veikia reik megint isikelt i atmega. O klausimas dar kaip butu galima padaryt pvz kiek laiko suktusi nzn kaip paaiskint, bet daleiskim yra 2 mygtukai vienas didinantis kazkoki kintamaji "i" kitas start ir pvz tris kartus suspaudus mygtuka ir nuspaudus start variklis apsisuktu pvz 3 kartus ar suktusi 3 sekundes. Kaip apsirasyt ivedima i valdikli. Tikiuos minti suprasit sunku paaiskint.
Tiesa coda ir temoj redagavau |
|
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 15, 23:58 |
|
|
|
aha, kodas dabar nesamone
taigi akivaizdu kad jei nori kad suktusi i viena puse tui buti a=1 o kita pouse a=2 ir jei stio tai sakykim a=0
negali buti visada a=1
o siap tai tavo programa labai diletantiska.
nu kai bandymas tinka, bet rimtessniam naudojimui ne.
tau reikai ne kurti funkcijas kairen desinen ir t,t, o vien afunkcija kuri priklausomai nuo duoto argumento suktu i viena zingsni i viena ar i kita puse
jei nori kad sukimas vyktu nurodyta apsisukimu skaisčiu tai padaryk cikla kuris prasuktu atitinkama kryptimi reikiama žingsniu kieki
tiesa tokiu taveju tosl kol varikli sukasi i klaviatura nebus reaguojama.
mygtuku tikrinimui irgi sukurk funkcija kuri duotu atsakyma kuris mygtukas buvo paspaustas.
paprastumo labui klaviaturos apklausimnejima tada patogiausia ikisti i taimerio pertraukimajei nori kad variklis sukimosi metu reaguotu i mygtukus
nu arba galima po kievieno zingsuio deti mygtuku tikrinimo funkcija |
|
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 16, 00:15 |
|
|
|
tai keisti pvz
Kodas: |
int main() {
PORTB=7;
unsigned char a=0;
while(1){
if (!(PINB&1)) // migtukas desinen
{
if (a==0) a=1;
while (!(PINB&1)){}
}
if (a==1) desine ();
if (!(PINB&2)) // mygtukas kairen
{
if (a==0) a=2;
while (!(PINB&2)){}
}
if (a==2) kaire ();
}
}
|
Na nieko nesakau kad programa zemo lygio niekada neteko susidurti su mikrokontroleriu programavimu :/
O db esu priverstas |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 16, 12:52 |
|
|
|
gali papaisyt kaip cia darei? Is kur minusa gauna stepperis? As, tai dariau su tranzistoriniais switchais... |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 16, 13:55 |
|
|
|
As dariau su L293 driveriu nuo mikrokontrolerio jungiau per l293 veliau galesiu papaisyt. A gal tu dariai kazka panasaus kaip as minejau su "ivedimu" ? kad spaudziant kazkoki migtuka didintu kazkoki kintamaji "i" ? |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 16, 17:59 |
|
|
|
O, galvojau ir as sita cipa pikti, bet poto sugalvojau kaip tranzistorius galima panaudoti. Siai gal atsiranda taip nuostuoliai didesni, bet smagu pazaist. As dar judinu be kintamuju. Siap naudoju tranzistoriu, kuris kaip perjungiklis paduoda minusa, o is megos duodu plius. 4 tranza stovi, poto galvoju dar 2 dadet ir burushless cd-rom motorus sukt, cia jau idomiau bus |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 00:19 |
|
|
|
Kaip pasiūlitumėt reguliuoti sukimosi greiti ? Nelabai pavyksta kažkaip? |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 00:41 |
|
|
|
tai po kiekvieno zingsnio idek kazkoki uzdelsima |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 00:57 |
|
|
|
bet pvz kaip reguliuot galma butu mechaniskai kad ir pvz su potensiometru, gal imanoma jo padeti kazkaip relizuot kaip kazkoki int ?
reiktu kazkaip programuot kad nuo potensiometro sukimo keistusi uzdelsimas? ar kazkaip paprastai imanoma ?
Va kazka panasaus i sita video.
http://www.ecs.umass.edu/ece/m5/media/stepper_motor.mov |
|
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 01:58 |
|
|
|
Potenciometras yra analoginis daiktas, tai cia reikes naudoti ADC keitkli.
pajungi potenciometra ant ADC iejimo su adc ismatuoji potenciometro itampa ir pagal ta itampa nustatai usdelsima po kiekvieno zingnsio.
arba galima ant procesoriaus koju pajunti reguliuojama RC grandine su kuria tu darysi ta uždelsima vietoje delay funkcijos
nu sakykim per varza paduodi is vienos kojos signala i kondensatoriu o su kita koja lauki kol signalas pasidarys koks reikia
arba galima panaudoti QPSK enkoderi, pvz nuo kompiuterines peles su rutuliuku bet cia jau atskira tema aiskinti kaip jis veikia. su potenciometru arba RC ko gero paprasciau. |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 02:08 |
|
|
|
Gal zinai kokia nuoroda kad butu pavaizduota schemute su ta rc grandinele prie koju nelabai isivaizduoju kaip nuo vienos leidi su kita lauki, cia pries varikli ir ant kiekvieno isejimo ? (think) |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 19, 04:16 |
|
|
|
nu o kas per problema?
as tai shemos neturiu ir sunkoka butu rasti.
nusipaisyk pats:
dvi procesoriaus kojos:
tarpusavyje sujungtos su potenciometru
ant vienos is tu koju kuri dirba kaip isejimas pajungtas kondensatorius kitu galu i korpusa. |
|
|
|
|
|
stepper motor |
Parašytas: 2010 03 27, 19:31 |
|
|
|
Bet tai keiciant velinima, nezymiai greitis kinta, mazinant velinima greitis nelabai kinta, o sumazinus iki labai mazo tai isvis vaRiklis pradeda pulsuot ir nesisuka. Gal reiktu kazkaip keisti dazni ? |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|