Mijn vraag:
Ik probeer het ARduino programmeren wat te leren door én veel te proberen en ook door vragen te stellen
hieronder mijn sketch en dus mijn vraag: ik wil dat bij een obstakel binnen 20cm de motor gaat draaien. en deze moet gedurende 5 sec blijven draaien ook als het obstakel weg is, Nu is het zo de Motor gaat wel draaien maar zodra ik de DELAY - functie er onder (stepper runspeed)zet gaat de motor heeeel langzaam draaien. bij een normale DC motor werkte dit prima, bij de stappenmotor werkt dit niet.
welke logische verklaring is hiervoor? welke functie zou ik wel kunnen gebruiken?
alvast super dank voor de tips
const int trigPin = 5; // trigger pin
const int echoPin = 6; // echo in
float duration; // variabele voor tijdsduur als kommagetal (float)
float distance; // variabele voor afstand als kommagetal (float)
#include <AccelStepper.h>
#define motorPin1 9
#define motorPin2 10
#define motorPin3 11
#define motorPin4 12
AccelStepper stepper(AccelStepper::HALF4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);
void setup() {
stepper.setMaxSpeed(1000);
stepper.setSpeed(950);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.0343) / 2;
if(distance < 20){
stepper.runSpeed();
delay(5000)
}
}[/i]
Ik probeer het ARduino programmeren wat te leren door én veel te proberen en ook door vragen te stellen
hieronder mijn sketch en dus mijn vraag: ik wil dat bij een obstakel binnen 20cm de motor gaat draaien. en deze moet gedurende 5 sec blijven draaien ook als het obstakel weg is, Nu is het zo de Motor gaat wel draaien maar zodra ik de DELAY - functie er onder (stepper runspeed)zet gaat de motor heeeel langzaam draaien. bij een normale DC motor werkte dit prima, bij de stappenmotor werkt dit niet.
welke logische verklaring is hiervoor? welke functie zou ik wel kunnen gebruiken?
alvast super dank voor de tips
const int trigPin = 5; // trigger pin
const int echoPin = 6; // echo in
float duration; // variabele voor tijdsduur als kommagetal (float)
float distance; // variabele voor afstand als kommagetal (float)
#include <AccelStepper.h>
#define motorPin1 9
#define motorPin2 10
#define motorPin3 11
#define motorPin4 12
AccelStepper stepper(AccelStepper::HALF4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);
void setup() {
stepper.setMaxSpeed(1000);
stepper.setSpeed(950);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.0343) / 2;
if(distance < 20){
stepper.runSpeed();
delay(5000)
}
}[/i]