Hallo zusammen Bei diesen Temperaturen bleibe ich lieber drinnen und befasse mich widermal mit meinem Schrittmotor :) Kurz zu meinem Setup. Habe einen Schrittmotor der mit dem EasyDriver von Sparkfun gesteuert wird. Der EasyDriver benötigt ein Pulssignal um ein Schritt auszuführen. Dafür habe ich mit einem Arduino UNO ein PWM signal erzeugt und der Motor dreht sich wie gewünscht. Jetzt wüsste ich jedoch gerne wieviele Schritte der Motor ausgeführt haben sollte. Dafür habe ich den PWM ausgang mit einem Analog Input Pin verbunden welcher mit Interrupts verwendet werden kann. Die ISR wird bei einer steigenden Flanke ausgelöst und erhöht einen Zähler um 1. Wenn der Zähler einen gewissen Wert erreicht soll das PWM Signal ausgeschaltet werden. Das passiert jedoch nicht und der Motor dreht einfach weiter. Macht meine Idee überhaupt Sinn? Sollte ich einen anderen Ansatz wählen? Vielen Dank für Inputs. Untenstehend noch der Code. Gruss, Samuel
1 | int pwm_pin = 6; |
2 | volatile int steps = 0; |
3 | |
4 | void setup() |
5 | {
|
6 | pinMode(pwm_pin,OUTPUT); |
7 | attachInterrupt(0,count,RISING); |
8 | }
|
9 | |
10 | void loop() |
11 | {
|
12 | while(steps<200){ |
13 | analogWrite(pwm_pin,10); |
14 | delay(1); |
15 | }
|
16 | analogWrite(pwm_pin,0); |
17 | delay(1); |
18 | }
|
19 | |
20 | void count() |
21 | {
|
22 | steps++; |
23 | }
|