www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Arduino, NEMA34 stepper, DM860 driver

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.89
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Jun 30, 2019 3:14 pm    Naslov sporočila:  Arduino, NEMA34 stepper, DM860 driver Odgovori s citatom

Hi
Ker sem šele sedaj začel delati na Arduno-tu in C++, do sedaj sem delal z Bascom-AVR, pa še tukaj tak-tak, bi prosil za kakšen nasvet.

Imam :
- Arduino UNO,
- koračni motor NEMA34, (34HS46-5004D), 8.5Nm(1204 oz.in), 1.8 st.,
- driver DM860I,
- napajalnik 350W-60V-5.8A

Sprašujem:

- kaj pomeni pri motorju (1204 oz.in),

- kolikšni so lahko najvišji obrati tega motorja?

- zakaj se motor ustavi pri najvišji hitrosti, ko zamenjam smer, če je hitrost nekje na 2/3 pa lepo deluje.

Glede testnega programa, ki sem ga naložil na Arduino-ta pa me zanima,

- kako se lahko poveča hitrost motorja, sedja je frekvenca približno 0-5000Hz merjeno na PUL pinu od driverja.

- kaj pomeni ta stavek? oziroma 0,1023,3600,1
Koda:

pd = map((analogRead(spd)),0,1023,3600,1);


- kje v kodi in kaj bi moral napisati, da se izvede določeno število korakov?

Celotna testna koda je pa tole:
Koda:


// Defin pins

int reverseSwitch = 2;  // Push button for reverse
int driverPUL = 7;    // PUL- pin
int driverDIR = 6;    // DIR- pin
int spd = A0;     // Potentiometer

// Variables

int pd = 500;       // Pulse Delay period
boolean setdir = LOW; // Set Direction

// Interrupt Handler

void revmotor (){

  setdir = !setdir;
 
}


void setup() {

  pinMode (driverPUL, OUTPUT);
  pinMode (driverDIR, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(reverseSwitch), revmotor, FALLING);
 
}

void loop() {
 
    pd = map((analogRead(spd)),0,1023,3600,1);   
    digitalWrite(driverDIR,setdir);
    digitalWrite(driverPUL,HIGH);
    delayMicroseconds(pd);
    digitalWrite(driverPUL,LOW);
    delayMicroseconds(pd);
 
}

- Ali je ta program primeren za ta motor-driver?

Spodaj pa je shema priklopa, vse je tako samo napajanje je 60V.

LP, in hvala, marko



Arduino-Stepper-Driver-Vezava.jpeg
 Opis:
 Velikost datoteke:  55.71 KB
 Pogledana:  1 krat

Arduino-Stepper-Driver-Vezava.jpeg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.06

PrispevekObjavljeno: Ned Jun 30, 2019 4:15 pm    Naslov sporočila:   Odgovori s citatom

Guglaj
Arduino Reference
da sploh vidiš, katere ukaze in funlcije imaš na razpolago.

Funkcija
map(virVhod, minimalniVhod, maksimalniVhod, minimalniIzhod, maksimalniIzhod);
preslika vhodni razpon vrednosti vir-a v izhodni razpon vrednosti.
V danem primeru je vir analogni vhod 0 do 1023, ki se preslika na 3600 do 1.


1204 oz.in je navor.
Oz je enota za silo, inch pa za ročico. Angleška zadeva. Pri nas je enota za navor Nm, pri malih motorčkih pa Ncm (centimetri).

Maksimalni rpm so v datasheetu motorja. Če na driverju nastaviš microstepping, bodo impulzi iz Arduinota množeni s tem razmerjem, kar moraš upoštevati.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.89
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Jun 30, 2019 8:40 pm    Naslov sporočila:   Odgovori s citatom

igo je napisal/a:


Funkcija
map(virVhod, minimalniVhod, maksimalniVhod, minimalniIzhod, maksimalniIzhod);
preslika vhodni razpon vrednosti vir-a v izhodni razpon vrednosti.
V danem primeru je vir analogni vhod 0 do 1023, ki se preslika na 3600 do 1.



Tole pa ne razumem, "ki se preslika na 3600 do 1."

Pa še tole me zanima:

- zakaj se motor ustavi pri najvišji hitrosti, ko zamenjam smer, če je hitrost nekje na 2/3 pa lepo deluje.

- kako se lahko poveča hitrost motorja, sedja je frekvenca približno 0-5000Hz merjeno na PUL pinu od driverja.

- kje v kodi in kaj bi moral napisati, da se izvede določeno število korakov?

lp,
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
polkic
Član
Član



Pridružen-a: Pon 04 Dec 2017 20:27
Prispevkov: 68
Aktiv.: 0.88

PrispevekObjavljeno: Ned Jun 30, 2019 11:31 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljen;

map funkcija ni nič druga kot linarizacija. Sepravi če imaš analogne vrednosti od 0-1023 in jih recimo mapiraš na procente (0-99) to pomeni, da ti bo funkcija sama preračunala izhodno vrendost za podano vhodno vrednost. To pomeni, če bi imel potenciometer na analognem vhodu bi bile prednsoti pri 0(o voltov) enako 0%, 512 (2,5 volta) 50% in 1023 (5 voltov) 99%.

Glede ustavljanja je najbrš problem, da gre za prehiter pojav.

Hitrost in število korakov pa sta neposredno povezana.

Najprej se odloči kaj bi rad imel...Večja kot je natančnost (microsteping) manjša je moč motorja. Iz tega boš določil število pulzov za 1 obrat. Iz tega naprej pa je izpeljan vsa ostala matematika.

HItreje kot boš pošijav pulze hitreje bo šibal motor. Seveda do neke meje, ki jo premore Arduino sam....

Lep pozdrav.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5773
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Pon Jul 01, 2019 9:02 am    Naslov sporočila:   Odgovori s citatom

polkic je napisal/a:
.....Seveda do neke meje, ki jo premore Arduino sam....

Dvomim, da se zmore motor tako hitro vrteti, kolikor hitro mu arduino, preko driverja, pošilja impulze, brez izgube korakov.

_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 67 dni


Powered by phpBB © 2001, 2005 phpBB Group