Stránka 1 z 1

ovládání krokového motoru

Napsal: 27. 1. 2013, 7:43
od Gus
Mám řídící jedntku na řízení pohonu 4x4 u Octavie,která obsahuje krokovej motor a ten ovládá pístek,který pouští olej do haldex spojky.Já bych si chtěl svornost této spojky ovládat sám pomocí dvou tlačítek,kde ale krok.motor má max.otočení pouhé čtvrt otáčky od zavření do ulpného otevření pístku.mě by stačilo,aby se motor otačel třeba v pěti polohách: 0-zavřeno,1,2,3,4-uplně otevřeno. a pak by tam bylo ještě třetí tlačítko,které musí fungovat jako ruční brzda,tedy při smáčknutí tl. a jeho držení by se motor vrátil do nulové polohy zavřeno a po puštění tl. by se motor vrátil do té polohy kde byl naposled. Dokázal by prosím někdo vymyslet schéma a naprogramovat nějakého Amela ? samozřejmě bych to nechtěl zadarmo.Jinak motor je 4vývodový a krajní polohy jsou řešeny mech.dorazem

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 7:43
od Ferrit
Určitě dovedl. Je jen otázkou, zda by se ti to i za těch 15-17 k Kč ještě chtělo získat. :(

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 9:59
od packa
já bych to zas tak hrožně neviděl , driver pro motor bych dal pololu za cca 400kč a použil arduino nebo atmegu , kde by stačily dvě tlačítka +- a po každé stisku by to poslalo odpovídající dávku impulzů damému kroku ,
jen nato nemám čas :D

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 10:18
od Ferrit
packa píše:já bych to zas tak hrožně ....................jen nato nemám čas :D
No a to je těch zbývajících X k Kč :D
A pokud to nebude mít atest a vyrobil jsi to na koleně - nesmí projí STK! A když bude bourat - otázka zní: kdo to hejble dělal?
No a lítáš v tom snadno.

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 10:24
od packa
tam nejde oto kdo to dělal , ale kdo ho tam namontoval a to bude už jeho problém

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 1:21
od Gus
Ferrit píše:
packa píše:já bych to zas tak hrožně ....................jen nato nemám čas :D
No a to je těch zbývajících X k Kč :D
A pokud to nebude mít atest a vyrobil jsi to na koleně - nesmí projí STK! A když bude bourat - otázka zní: kdo to hejble dělal?
No a lítáš v tom snadno.
Vůbec mi nejde to mít na furt v civilním autě,tam bych to pouze vyzkoušel a hlavně pochybuji ,že by na technickej chtěli zkoušet funkci Haldex spojky,chtěl bych s tím ovládat Haldex v závodním autě ,a civilním pouze v zimě(kdo ví,když se člověk kraví s 4x4 na sněhu ta ví o čem mluvím :-) )

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 1:32
od packa
tak napiš kolik by jsi za takovou věc byl schopnej zaplatit , třeba se toho někdop chytne , lidí kteří jsou schopni tohle realizov at je tu jistě spousta

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 1:52
od Gus
packa píše:tak napiš kolik by jsi za takovou věc byl schopnej zaplatit , třeba se toho někdop chytne , lidí kteří jsou schopni tohle realizov at je tu jistě spousta
no já si myslel,že driver k motoru se dá postavit tak max.v řádech tisíci korun a ne deseti tisíc kč

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 2:17
od packa
to máš pravdu , driver jako takový se ani stavět nevyplatí , spíš to co ti bude řídit ten driver , ale ani to nemusí být nějak drahé , spíš a co je nejdražší je napsat proto program do nějaké pice , nebo atmegy , arduina ,
tak aby to bylo funkční a příjemně použitelné tak to nějaký čas zabere , tqkže pokud to někdo pojme jako zakázku tyk tě to moc levně nepříjde ,
když sem vypíšeš cílovou odměnu tak si lidi spočítaj jestly jim to zato stojí nebo ne ,

a jsou tu i lidi kteří nejsou výdělečně činní a ty si třeba rádi přividělají

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 3:44
od liam86
ak striktne netrvate na atmel:

https://estore.ti.com/MSP-EXP430G2-MSP4 ... P2031.aspx" onclick="window.open(this.href);return false;

+ spominane pololu

http://www.ebay.com/itm/StepStick-A4983 ... 1137323382" onclick="window.open(this.href);return false;

a podla zadania postaci par desiatok minut pre upravu neakeho "hello input/output world" aj pre programatora zaciatocnika.

plus ako vyvojove prostredie odporucam http://energia.nu/" onclick="window.open(this.href);return false;, od toho arduinoveho sa lisi iba farbou ;)

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 3:48
od Thomeeque
Tak do toho, liame, pak nám řekni, kolik desítek minut to bylo :) T.

Re: ovládání krokového motoru

Napsal: 28. 1. 2013, 6:01
od liam86
cca 30 minut, zatial hruba predstava, este si to pyta kalibraciu na nulu a krajsie casovanie, a samozrejme uvitam napady a vylepsenia.

Kód: Vybrat vše

const int menej = P1_0;
const int viac = P1_1;    
const int zatvorenie = P1_2; 

const int stepPin = P1_3;
const int dirPin = P1_4;


int volba = 0;  
int poloha = 0; 


void setup() {
  // inicializacia vstupov
  pinMode(menej, INPUT_PULLUP);
  pinMode(viac, INPUT_PULLUP);
  pinMode(zatvorenie, INPUT_PULLUP);
  // vystupov
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);


}


void loop() {

  int zavrete = digitalRead(zatvorenie);  //nacitame stav
  int uber = digitalRead(menej);
  int pridaj = digitalRead(viac);
  
  
  if (zavrete == LOW){                     //mozna zmena oboma smermi
    if (poloha == (volba * 100)){          //volba zadana
      if (pridaj == HIGH && uber==LOW && volba < 4){    //kontrola zmacknuteho tlacidla na zmenu polohy, ak su oba HIGH, ignorujeme vstup
        volba++;
      }
      if (uber == HIGH && pridaj == LOW && volba > 0){      // na privretie
        volba--;
      }
    }
    else if (poloha < (volba*100)){        //otvaraci cyklus po zadani volby
      digitalWrite(dirPin, LOW);
      delay(1);
      digitalWrite(stepPin, HIGH);
      delay(1);
      digitalWrite(stepPin, LOW);
      poloha++;
    }
    else {                                 //zatvaraci
      digitalWrite(dirPin, HIGH);
      delay(1);
      digitalWrite(stepPin, HIGH);
      delay(1);
      digitalWrite(stepPin, LOW);
      poloha--;
    }
  }
  
  else{                                  //docasne zatvorenie, po uvolneni navrat na volbu * 100 krokov
    int na_nulu = poloha;
    digitalWrite(dirPin, HIGH);
    delay(1);
    while (na_nulu > 0){
      digitalWrite(stepPin, HIGH);
      delay(1);
      digitalWrite(stepPin, LOW);
      delay(1);
      na_nulu--;
    }
  }
}