arduino problem

Zbog naponskih nivoa u microstepping-u. Relej ce u nekom od microstep koraka okinuti a potom nece, ovisno o magnetu releja, tj. o histerezi magnetnog polja samog releja. Microstepping je odredjen procentom energije koja se daje namotu. Npr. ako je microstep 1/16, relej bi mogao otvoriti na [5-oj/16-tini] stepa, a zatvoriti na [minus 9-toj/16-tini] koraka. U full-stepu se (prema Fig9 u d/s) daje >70% energije u svakoj poluperiodi. Nisam zagledao tocnu implementacijsku shemu pololu drivera (neznam dali I postoji) ali je moguce natjerati A4988 da daje 100% energije (valjda se misli na nominalnu energiju s kojom maximalno mozes opteretiti motor, dakle za najvecu silu koju je moguce postici, izrazeno u [mN] ili [cmN]) po impulsu (objasnjenje stoji napisano malim slovima ispod Fig9 u d/s, spominje se ROSC). Nebih ti preporucio petljati sa energetskim hackovima iliti "overclock-ovima"

I jesu PWM. Duty-cycle tog PWM-a odredjen je brojem faza (2-je za bipolarni stepper), broj microstep-ova (1, 4, 8 itd), a sirina ukupne periode brojem step_clock-ova sto ovisi o tipu motora. Lijep tutorijal ovdje:

formatting link

Rekao bih, ne treba. Ako pogledas ponovo Fig. 9 u d/s, vidjet ces da je Phase 1 pomaknuta za 90 deg u odnosu na Phase 2. Pomak neka te ne brine, to samo znaci da ce Phase 2 kasnuti za 1 step_clock impuls (koji dolazi sa pina STEP na mikrokontroleru). Neka te ne brine terminologija na pololu shemi: naziv STEP je incidentan, na taj pin ustvari dolazi step_clock (NE glavni clock od Arduina (16 MHz ili kajgod), vec clock s kojim se clock-a ("step"-a) motor, dakle ovaj pin odredjuje brzinu motora. Nadam se da znas: ukupan broj STEP impulsa (za jedan cijeli okretaj) ovisi o tipu motora, npr.

1.8 deg. step motor zahtjeva 200 impulsa za cijeli okretaj od 360 deg.

Jasnije definiraj 'krivo spojiti'. Ako mislis na spajanje OUT1A i OUT2B i obratno (OUT1B i OUT2A) to vjerovatno nije moguce zbog full-bridge spoja i Sense1/2 otpornika. Cak I ako je moguce, dobio bi zbrajanje/oduzimanje faza manifestirano na samom namotu (povecanje/smanjenje duty-cycle-a). Duzim trajanjem faze bi mogao spaliti motor, ili ga pretjerano zagrijavati.

--
Stonethrower 
Superb quality home-made *Slingshot* pure hand-weapons since 70's
Reply to
Stonethrower
Loading thread data ...

Lijepo si se potrudio odgovoriti!

Ali ako prema jednom od savjeta stavim graez pa potom ispeglam sa

100 uF valjda onda ne bi trebalo igrat ulogu, ili ... pogotovo jer

Ja sam mislijo da tzv. "duty cycle" dobija od arduina (funkcija 'delay'

belaj, tj motor cvili kad je premalo ms, a pravi "brum" kad je 'delay' predug.

na dnu ove poruke, gdje je arduino na stepPIN poslo po 50 HIGH/LOW

Pod 'krivo spojiti' sam mislio ako npr 1A i 1B spojim obrnuto na relej

namot. No taj problem odpada, ako koristim graez i ravnam se po njegovom polaritetu.

/* Simple Stepper Motor Control Exaple Code * * by Dejan Nedelkovski,

formatting link
* */ // defines pins numbers const int stepPin = 3; const int dirPin = 4;

void setup() { // Sets the two pins as Outputs pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT); } void loop() { digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction // Makes 200 pulses for making one full cycle rotation for(int x = 0; x < 50; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(2000); digitalWrite(stepPin,LOW); delayMicroseconds(2000); } delay(500); // One second delay

digitalWrite(dirPin,LOW); //Changes the rotations direction // Makes 400 pulses for making two full cycle rotation for(int x = 0; x < 50; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(2000); digitalWrite(stepPin,LOW); delayMicroseconds(2000); } delay(500); }

Reply to
Luka Æavara

Hvala.

Grec je skoro pa nebitan (jer nemas A/C, vec D/C koji je brzo switch-an), diode u grecu ce ti srusiti napon za 0.3V-0.7V, sto moze biti frka kod malih Vmot. Kond moze uslovno posluziti nekakvoj svrsi u spoju sa relejom ali ce kond. velike vrijednosti sasvim sigurno promjeniti/poremetititi tajming: kratkotrajne prekide releja neces moci postici jer ce __zaista__ biti ispeglani, tj. kond ce "pokriti" kratkotrajne impulse.

Kod releja kond bi mogao imati koristi ali kod motora sumnjam: kondom mijenjas oblik faze, timing izmedju faza I energetsku bilancu.

Dobro si mislio: trajanje signala (I pozitivne I negativne poluperiode) dobija se manipuliranjem delay() funkcije. U naprednijim inacicama to se cini ili interrupt-ima ili Timer() funkcijama.

Tvoj "ipak" mi govori da si me malkice krivo razumio. Ja sam zaista mislio da STEP dolazi od Arduina. Moj prijasnji komentar se odnosio na odabir imena signala, ne I same funkcije signala. Inace, Arduino program je posve OK. Pocetnicki, ali OK.

Za domacu zadacu: a) napravi step koristenjem Timer() funkcije koja ce generirati hardverski (TMR) interrupt a njegov ISR (Interrupt Service Routine) ce podizati/spustati logicki nivo na STEP pinu. b) napravi delay() funkciju koristenjem ISR-a koristenjem countera iliti tzv. soft-interrupt-a (npr. koristenjem compare-a na Timer 2) c) napravi promjenu brzine motora manipuliranjem a) I b) uz koristenje tipkica (Up/Down promjena vrijednosti Timer-a i delay-a) I ispisom na 16x2 LCD.

--
Stonethrower 
Superb quality home-made *Slingshot* pure hand-weapons since 70's
Reply to
Stonethrower

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.