• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie silnikiem krokowy i dc przy pomocy IR
#7
Kod bez delay:

Kod:
#include <AccelStepper.h> // Include the header file
// change this to the number of steps on your motor

// create an instance of the stepper class using the steps and pins
AccelStepper stepper(4,2,9,10,12);


int w1 = 5; // wiatrak pwm
int w2 = 4;
int w3 = 7;
//int val = 50;

//buttons

const int on = A0;
const int plus = A1;
const int minus = A2;  

int vel2 = 50; // naped
int vel1 = 58; //wiatrak

int buttonState = 0;
int flag=0;
int buttonflag=LOW;

int buttonStatePlus = 0;
int flagPlus=0;
int buttonFlagPlus=LOW;

int buttonStateMinus = 0;
int flagMinus=0;
int buttonFlagMinus=LOW;

void setup()

{
Serial.begin(9600);
stepper.setMaxSpeed(700);
stepper.setSpeed(vel2);
stepper.runSpeed();
pinMode(w1, OUTPUT);
// pinMode(on, INPUT);
pinMode(on, INPUT);
pinMode(plus, INPUT);
pinMode(minus, INPUT);

}

void loop()
{    

 buttonflag=buttonState;   // zapamiętanie poprzedniego stanu porzycisku
 
 buttonState = digitalRead(on);

  if (buttonflag!=buttonState)   //sprawdzamy czy nastąpiła zmiana stanu przycisku
  {
   if (buttonState == HIGH) flag=!flag;
  }
  // }
   //...ones, turn led on!
   if ( flag == 1){
     Serial.println("Both Motor goes ON");
     analogWrite(w1, vel1); // Sets speed variable via PWM
     digitalWrite(w2, HIGH);
     digitalWrite(w3, LOW);
     stepper.setSpeed(vel2);  
     stepper.runSpeed();
}
else if ( flag == 0){
Serial.println("Both Motor goes OFF");
     analogWrite(w1, 0); // Sets speed variable via PWM
     digitalWrite(w2, LOW);
     digitalWrite(w3, LOW);
 
    stepper.stop();
    digitalWrite(2, LOW);
    digitalWrite(9, LOW);
    digitalWrite(10, LOW);
    digitalWrite(12, LOW);
 }
 
 
   if ( digitalRead(plus)){
   Serial.println("Plus");
   vel1 = vel1 + 5;
   analogWrite(w1, vel1);
   //vel2 = vel2 + 50;
  stepper.setSpeed(vel2+50);
  stepper.runSpeed();
   
}



else if (digitalRead(minus)) //sprawdzamy czy nastąpiła zmiana stanu przycisku
{
   Serial.println("Minus");
   vel1 = vel1 - 5;
   analogWrite(w1, vel1);
   //vel2 = vel2 - 50;
  stepper.setSpeed(vel2-50);
   stepper.runSpeed();
   
 }
 
 
}
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Sterowanie silnikiem krokowy i dc przy pomocy IR - przez qwert - 02-04-2019, 23:09

Skocz do:


Przeglądający: 2 gości