Znaleziono 3 wyniki

autor: pitsa
25 sie 2018, 08:01
Forum: Elektronika CNC
Temat: Proste Sterowanie silnikiem krokowym bez komputera
Odpowiedzi: 5
Odsłony: 5707

Re: Proste Sterowanie silnikiem krokowym bez komputera

Prosty kod do sterowania jedną osią i jazdy do dwóch punktów.
Sterowanie: dwa oddzielne przyciski nakazujące ruch.

Kod: Zaznacz cały

#include <AccelStepper.h>
// pobierz i wgraj do libraries stąd:
// http://www.open.com.au/mikem/arduino/AccelStepper/
// pin 7 zwarty do zera ruch w jedną stronę 
// pin 8 zwarty do zera ruch w drugą stronę 
// po 10 sekundach wyłączany silnik krokowy

AccelStepper osX(1, 13, 11);  //   pin 13 - STEP, pin 11 - DIR
long goX = 200;                //   zdefiniowana liczba kroków do wykonania.
boolean lewo = false;  
boolean bylo = false;
    
unsigned long czasn;  // w zmiennej czas będziemy przekazywać aktualną wartość millis()
                                // do ustalania czas od ostatniego zadanego ruchu

void setup() {  
  pinMode(7, INPUT);
  pinMode(8, INPUT);  
  digitalWrite(7,HIGH);    
  digitalWrite(8,HIGH);    
  
  pinMode(13, OUTPUT);  
  pinMode(5, OUTPUT);  
  digitalWrite(5,LOW);    

  osX.setMaxSpeed(4300.0);    // 
  osX.setSpeed(4300.0); 
  osX.setAcceleration(4000.0);  //


// na starcie sterownika jedzie silnik w jedną stronę do pozycji na zderzak mechaniczny.
// później ruch będzie odmierzany od tego zderzaka 
 for ( int i=0 ; i < 360 ; i++ ) {
  osX.runToNewPosition(osX.currentPosition()-1);
  osX.run(); 
  delay(2);
 }
// zamiast zderzaka można pozycjonować krańcówką 
// przykład tutaj: https://www.cnc.info.pl/maszyna-do-punktowania-rur-t94055-40.html#p655149
 
  czasn = millis();

}

void loop(){

// to jest glowne polecenie ruchu - ma być w loop uruchamiane cały czas
// pozostałe rzeczy są na warunkach
  osX.run(); 

// opcja wyłączania silnika na postoju - 10000 = 10 sek i wyłączenie silnika ENA
if ( ( millis() - czasn ) >  10000 ) {
  digitalWrite(13, HIGH);  // dioda na arduino
  digitalWrite(5, HIGH);   // sygnał ENA
}

//jeśli sygnał ruchu i pozycja po przeciwnej stronie to można jechać i zmienić pozycję o goX
if  ( (digitalRead(7) == LOW ) && ( bylo == false ) ) {
  delay(50);
  digitalWrite(5, LOW);  // obudzenie
  delay(50);
  if (digitalRead(7) == LOW ) {
     osX.runToNewPosition(osX.currentPosition()+goX);
     bylo = true ;
     czasn = millis();
  }
}

// i tu ruch w drugą strone
if ( (digitalRead(8) == LOW ) && ( bylo == true ) ) {
  delay(50);
  digitalWrite(5, LOW);  // obudzenie
  delay(50);
  if (digitalRead(8) == LOW ) {
     osX.runToNewPosition(osX.currentPosition()-goX);
     bylo = false ;
     czasn = millis();
  }
}
  
}
autor: pitsa
08 maja 2018, 19:00
Forum: Elektronika CNC
Temat: Proste Sterowanie silnikiem krokowym bez komputera
Odpowiedzi: 5
Odsłony: 5707

Re: Proste Sterowanie silnikiem krokowym bez komputera

Do sposobów sterowania silnikiem bez komputera mogę dodać esp8266 i arduino - właśnie kręcę dwoma silnikami z jednego ESP-12. ;-)

Przy arduino i accelstepper uzyskuje się impulsy do około 4kHz.
Na ESP-12 mam max 17kHz gdy drugim silnikiem kręcę wolno.
Przy szybkiej pracy dwoma silnikami max użytkowa częstotliwość impulsów to 10kHz.

Reklama: 13,90zł za moduł esp-12e plus do tego konwerter poziomów logicznych za 3,90zł.
autor: pitsa
12 kwie 2012, 18:07
Forum: Elektronika CNC
Temat: Proste Sterowanie silnikiem krokowym bez komputera
Odpowiedzi: 5
Odsłony: 5707

Re: Proste Sterowanie silnikiem krokowym bez komputera

Arduino podpięte do normalnego sterownika silnika krokowego - 4 przewody.
Zasilacz do silnika i zasilacz Arduino.

Mniej więcej coś takiego:
Obrazek
ale bez tak dużej ilości kabli.

Zaprogramowanie tego jest bardzo proste.

Mogę jutro osobiście zaprezentować wraz z ekipą młodych osób. :-)

[ Dodano: 2012-04-13, 21:29 ]
Serdecznie dziękuję, za dwukierunkową możliwość podzielenia się wiedzą. :-)
To było dla młodych ludzi bardzo wartościowe spotkanie, podczas którego mogli się przekonać, że warto robić coś wyjątkowego, łącząc tak wiele różnych umiejętności z wielu dziedzin.

Wróć do „Proste Sterowanie silnikiem krokowym bez komputera”