Goedenavond,
Ik ben bezig met een project waarbij ik doormiddel van een joystick een DC-motor en stappenmotor aanstuur. Als ik de joystick naar links beweeg, zal de DC-motor in wijzerzin bewegen (joystick naar rechts in tegenwijzerzin draaien). Van zodra ik op de drukknop (geïntegreerd op de joystick) druk, beweegt mijn stappenmotor heel snel 90 graden in wijzerzin en terug in tegenwijzerzin (terug in startpositie). Echter wanneer ik dan de joystick opnieuw wil bewegen om de DC-motor te bewegen gebeurt er iets vreemds. De DC-motor reageert niet meteen omdat het eerst een heel klein stukje in tegenwijzerin beweegt. Nadien werkt de DC-motor weer perfect. Wat mij opvalt is dat van zodra ik op de drukknop druk, de spanning daalt van 12V naar 5V en wanneer ik de joystick weer beweeg (DC-motor activeren) de spanning terug stijgt naar 12V. Ik werk met een labovoeding begrensd op 12V en 2A. Ik vraag mij af of dit een fout in het programma is of in het circuit?
Zie hieronder mijn programma.
Ik ben bezig met een project waarbij ik doormiddel van een joystick een DC-motor en stappenmotor aanstuur. Als ik de joystick naar links beweeg, zal de DC-motor in wijzerzin bewegen (joystick naar rechts in tegenwijzerzin draaien). Van zodra ik op de drukknop (geïntegreerd op de joystick) druk, beweegt mijn stappenmotor heel snel 90 graden in wijzerzin en terug in tegenwijzerzin (terug in startpositie). Echter wanneer ik dan de joystick opnieuw wil bewegen om de DC-motor te bewegen gebeurt er iets vreemds. De DC-motor reageert niet meteen omdat het eerst een heel klein stukje in tegenwijzerin beweegt. Nadien werkt de DC-motor weer perfect. Wat mij opvalt is dat van zodra ik op de drukknop druk, de spanning daalt van 12V naar 5V en wanneer ik de joystick weer beweeg (DC-motor activeren) de spanning terug stijgt naar 12V. Ik werk met een labovoeding begrensd op 12V en 2A. Ik vraag mij af of dit een fout in het programma is of in het circuit?
Zie hieronder mijn programma.
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| #include <Stepper.h> const int stepsPerRevolution = 200; Stepper stepper3(stepsPerRevolution, 8, 9, 10, 11); int joyPin2 = A1; int joyWaarde2 = 0; int swPin2 = 3; int drukknopWaarde2 = 0; void setup() { pinMode(swPin2, INPUT); digitalWrite(swPin2, HIGH); stepper3.setSpeed(300); Serial.begin(9600); } void loop() { drukknopWaarde2 = digitalRead(swPin2); Serial.println(drukknopWaarde2); if (drukknopWaarde2 == LOW) { stepper3.step(200); delay(50); stepper3.step(-200); } else { joyWaarde2 = analogRead(joyPin2); Serial.println(joyWaarde2); if (joyWaarde2 > 535) { digitalWrite(12, HIGH); digitalWrite (13, LOW); } if (joyWaarde2 < 535 and joyWaarde2 > 485) { digitalWrite(12, LOW); digitalWrite (13, LOW); } if (joyWaarde2 < 485) { digitalWrite(12, LOW); digitalWrite (13, HIGH); } } } |