// TEST steppermotor met 1 button voor- en achteruit//****************************************************************************************#include <AccelStepper.h> // Gebruikt AccelStepper bibliotheek//constanten#define motorPin1 6 // IN1 pin op de ULN2003A driver#define motorPin2 7 // IN2 pin op de ULN2003A driver#define motorPin3 8 // IN3 pin op de ULN2003A driver#define motorPin4 9 // IN4 pin op de ULN2003A driverconst int buttonPin = 10; // drukknop1 pin 10 //variabelenint buttonState = LOW; // waarde van de drukknop1int stepsPerRevolution = 64; // stappen per omwentelingfloat degreePerRevolution = 5.625; // graden per stapint teller = 0;/* * We maken gebruik van een 28BYJ-48 motor. Dit is een halfwire stepper met 4 pins.* Hierbij dient de volgorde van de pins gewijzigd te worden in 1,3,2,4.*/AccelStepper stepper(AccelStepper::HALF4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);//****************************************************************************************void setup() { stepper.setMaxSpeed(800.0); // stel de maximale motorsnelheid in stepper.setAcceleration(100.0); // stel de acceleratie in stepper.setSpeed(150); // stel de huidige snelheid in pinMode(buttonPin, INPUT); // stel de switch pin1 in als invoer }//****************************************************************************************void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { teller++;// delay(500); } if (teller == 1) stepper.moveTo(degToSteps(45)); stepper.run(); // delay(10000); if (teller == 2) { stepper.moveTo(degToSteps(-45)); stepper.run();// delay(10000); } else { if (teller > 2) teller = 0; } }//****************************************************************************************/** Rekent het aantal graden om naar het aantal stappen* 28BYJ-48 motor heeft 5,625 graden per stap* 360 graden / 5,625 = 64 stappen per omwenteling* Voorbeeld van degToSteps(45):* (64 / 5,625) * 45 = 512 stappen*/float degToSteps(float deg) { return (stepsPerRevolution / degreePerRevolution) * deg;}