02-04-2019, 23:09
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();
}
}