slow start en stop miniatuur draaimolen
6 berichten
• Pagina 1 van 1
slow start en stop miniatuur draaimolen
Ik ben bezig een miniatuur draaimolen te maken met als aandrijving een 28BYJ-48 stappenmotor met ULN2003 driver, de bedoeling is dat hij langzaam begint te draaien en na 4 seconden op snelheid is en bij stoppen omgekeerd. Nu ben ik een absolute leek in programmeren, ik iets gevonden waarmee ik nu bezig ben maar dat starten en stoppen lukt me niet, is er iemand die mijn daar bij kan helpen? Onderstaand het gedeelte dat ik al werkend heb, al bij voorbaat dank voor de hulp.
//Includes the Arduino Stepper Library
#include <Stepper.h>
// Defines the number of steps per rotation
const int stepsPerRevolution = 1800;
// Creates an instance of stepper class
// Pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence
Stepper myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
// Nothing to do (Stepper Library sets pins as outputs)
}
void loop() {
// Rotate CW slowly at 5 RPM
myStepper.setSpeed(20);
myStepper.step(stepsPerRevolution);
delay(0);
}
//Includes the Arduino Stepper Library
#include <Stepper.h>
// Defines the number of steps per rotation
const int stepsPerRevolution = 1800;
// Creates an instance of stepper class
// Pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence
Stepper myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
// Nothing to do (Stepper Library sets pins as outputs)
}
void loop() {
// Rotate CW slowly at 5 RPM
myStepper.setSpeed(20);
myStepper.step(stepsPerRevolution);
delay(0);
}
Advertisement
Re: slow start en stop miniatuur draaimolen
oke je zet dus 20 rpm en 1800 stappen neer en steps zet je dus op 1800 (dat moet eigenlijk 2048 zijn, voor deze motor)
en dat gaat dus heel snel (zo snel gaat het moortje niet)
zet alles eens op 1 dus 1 rpm en 1 stap dan gaat het allemaal een stuk langzamer dan doe je een delay van 10000 en afwachten wat er gebeurt. je zult alle ledjes aan en uit zien gaan in een volgorde. en dan langzaam versenellen dus de delay steeds kleiner maken om sneller te gaan.
na een tijdje ga je de delay weer vergroten tot dat het stopt.
als dat werkt dan ga je naar accelstepper toe die dat allemaal zelf regelt, als extra zorg je dan ervoor dat je molen telkens op dezelfde positie stopt dan kunnen de moeders makkelijk bij hun peuters. en een draaimolen gaat maar een kant op anders rijden de paarden achteruit.
en dat gaat dus heel snel (zo snel gaat het moortje niet)
zet alles eens op 1 dus 1 rpm en 1 stap dan gaat het allemaal een stuk langzamer dan doe je een delay van 10000 en afwachten wat er gebeurt. je zult alle ledjes aan en uit zien gaan in een volgorde. en dan langzaam versenellen dus de delay steeds kleiner maken om sneller te gaan.
na een tijdje ga je de delay weer vergroten tot dat het stopt.
als dat werkt dan ga je naar accelstepper toe die dat allemaal zelf regelt, als extra zorg je dan ervoor dat je molen telkens op dezelfde positie stopt dan kunnen de moeders makkelijk bij hun peuters. en een draaimolen gaat maar een kant op anders rijden de paarden achteruit.
paul deelen
shooter@home.nl
shooter@home.nl
Re: slow start en stop miniatuur draaimolen
Zoals ik al zei, ik ben een volslagen leek in programmeren en dit is voor mij abracadabra, mijn bedoeling is om een drukknop aan te sluiten aan de arduino en met een druk op de knop moet ie beginnen te draaien en in ongeveer 4 seconden op snelheid komen en bij de volgende druk op de knop (of een andere knop) in ongeveer 4 seconden weer tot stilstand komen. Eindpunt is niet zo belangrijk, zie het filmje op youtube "Loki Drayton Manor"
Re: slow start en stop miniatuur draaimolen
Zo dat is een mooi ding op de video wel mechanisch een probleem want er zitten nogal wat tandwielen in en de stop positie is wel deglijk belangrijk om mensen in/uit te kunnen stappen
Ik heb de code niet getest maar is gewoon een voorzetje
gewoon lekker in veranderen want je leert er goed van.
- Code: Alles selecteren
//Includes the Arduino Stepper Library
#include <Stepper.h>
// Defines the number of steps per rotation
const int stepsPerRevolution = 1800;
// Creates an instance of stepper class
// Pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence
Stepper myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);
void setup()
{
pinMode(13, OUTPUT); // sets the digital pin 13 as output is de led
// Nothing to do (Stepper Library sets pins as outputs)
}
void loop() {
int steps=1;
// Rotate CW slowly at 5 RPM
myStepper.setSpeed(1);
for (int i = 100; i >= 1; i--)// nieuwe functie kijk maar eens op https://www.arduino.cc/reference/en/language/structure/control-structure/for/
{
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(100); // knipper led voor stap
digitalWrite(13, LOW); // sets the digital pin 13 off
myStepper.step(steps);
delay(i*100);
}
for (int i = 1; i <= 100; i++)// en nu weer langzamer
{
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(100); // knipper led voor stap
digitalWrite(13, LOW); // sets the digital pin 13 off
myStepper.step(steps);
delay(i*100);
}
delay (10000); //even wachten voor volgende rit
}
Ik heb de code niet getest maar is gewoon een voorzetje
gewoon lekker in veranderen want je leert er goed van.
paul deelen
shooter@home.nl
shooter@home.nl
Re: slow start en stop miniatuur draaimolen
Super, ga er mee aan de slag. Mechanisch is geen probleem, dat heb ik al werkend. Loop alleen vast bij programmeren, heb daar echt geen bal verstand van. Laat wel weten of het gelukt is ![Smile :)](./images/smilies/icon_e_smile.gif)
![Smile :)](./images/smilies/icon_e_smile.gif)
Re: slow start en stop miniatuur draaimolen
bijvoorbeeld kun je ook beginnen met heel simpel een pin aan zetten en dan een delay etc, en de lengte van die delay veranderen met een for lus.
maar als je accelstepper gebruikt dan hoef je alleen maar in de loop een accel.step te doen en de rest kan als er iets is zoals een tijd of een aantal. zie de voorbeelden die bij accel zitten. en stuur een filmpje van de mechanica ben wel benieuwd hoe je dat opgelost hebt.
maar als je accelstepper gebruikt dan hoef je alleen maar in de loop een accel.step te doen en de rest kan als er iets is zoals een tijd of een aantal. zie de voorbeelden die bij accel zitten. en stuur een filmpje van de mechanica ben wel benieuwd hoe je dat opgelost hebt.
paul deelen
shooter@home.nl
shooter@home.nl
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 26 gasten