Klopt dit ? Stepper motor met besturing

Hoi,

Ik vond dit voorbeeld ( https://wokwi.com/projects/385268324618418177 ) hoe je een stepper motor kunt aansluiten met een besturing.

Maar dit schema lijkt me niet goed.
De bovenste rode en zwarte draad lijken nergens naar toe te gaan.

Zie ik dit goed of zie ik iets over het hoofd ?

Goed gezien.
Maar het klopt wel.

Als je naar de aansluitgegevens die ik bij Polulu vond, kijkt dan zie je dat dit niet 5 volt en GND zijn, maar dat dat de voeding tussen 8 en 35 volt voor de motor betreft.
Het zou wel slim zijn geweest als men hiervoor andere kleuren gekozen zou hebben.
Sowieso is dit niet een schoolvoorbeeld van hoe je een duidelijke tekening maakt die geschikt is om te delen ter leringh ende vermaeck.
En bovendien moet je nooit proberen dit soort dingen via een breadboard te bouwen, want die is helemaal niet geschikt voor stromen die voor dat soort motoren nodig zijn.
Maar ja, bij Wokwi heb je niet veel andere keus dan er een breadboard van te maken.
Je kunt op onderstaand plaatje klikken om bij diens bron terecht te komen en iets meer op te steken hierover (in het Engels).

oke

Dus als ik het goed begrijp , moet ik dus eigenlijk een batterij gebruiken.
En die is hier niet gebruikt.

Een stappenmotor zoals die in je Wokwi sketch getoond wordt, maakt heel snel korte metten met een batterij.
Daar kun je veel beter een voeding voor gebruiken.
Nogmaals; dit is Wokwi waar je je theorie en je sketch kunt proberen.
Nabouwen zoals het daar getoond wordt, met een breadboard en batterij(en) is in de praktijk niet aan te raden.

jammer

Ik hou ervan om eerst zaken in wokwi te proberen en dan in het echt.

Dat kan ook, maar je moet je bewust blijven van de beperkingen en dus dat de praktijk niet helemaal zal overeen komen met wat Wokwi je voorschotelt.

oke

Was mijn bedoeling om te oefenen hoe een line follower robot zou werken met een stepper motor.

ik weet dat in het echt je een DC motor gebruikt maar die is er helaas niet.

Dat maakt ook niet zoveel uit.
Een DC motor kun je met dezelfde hardware aansturen.
En de line follower kun je ook gewoon met de stepper maken.
Misschien gaat die minder snel, maar je kunt er wel nauwkeuriger mee sturen als je dat wil.
En het principe van de line follower gaat hier niet door veranderen.

oke

Dan even nadenken hoe ik dan twee kan aansluiten voor elke wiel.

oke

Ander voorbeeld gebruikt en lijkt dit goed ??

Dat is in de goede richting, maar het gaat nog niet werken.
Hier mis je het gedeelte dat je in je eerste voorbeeld opviel: de voeding voor de motor(en).
Links boven op je printje moet je nog 8 - 35 volt aansluiten, anders stuur je wel aan maar gaan je motoren nooit draaien.
De spanning die je daar aansluit, is afhankelijk van wat de motoren nodig hebben, en wat jij beschikbaar hebt dat daarbinnen past.

Met 2 steppers heb je in principe geen servo meer nodig en kun je volstaan met een vrij zwenkwiel als 3de wiel, eigenlijk is dat ook al zo met 2 lineaire (dc) motoren.

oke

Het voorbeeld dat ik gevolgd hebt, werkt wel :

Maar ik zou morgen eens kijken hoe ik in wokwi een batterij of zoiets kan aansluiten.

Ben eens in wokwi aan het zoeken geweest maar kan geen batterij of zo vinden.

Iemand enig idee hoe dit op te lossen ?

Wanneer Wokwi dit met draadloze energie kan doen, dan kun je in ieder geval je sketch bouwen en je tests doen.
Ga je dit uiteindelijk bouwen, moet je uiteraard wel de batterij gaan gebruiken.

Dank je

Dan denk ik dat de bedrading klaar is

Nu alles testen en kijken hoe ik dit aan het werk krijg

Twijfel of deze code wel de goede code is om de stepper motor die verbonden is met een a4998 shield aan de praat te krijgen.

// Left motor
#define LEFT_DIR  12
#define LEFT_STEP 13

// Right motor  
#define RIGHT_DIR 4
#define RIGHT_STEP 3

void setup() {
  pinMode(LEFT_DIR,  OUTPUT);
  pinMode(LEFT_STEP, OUTPUT);
  pinMode(RIGHT_DIR, OUTPUT);
  pinMode(RIGHT_STEP, OUTPUT);

  Serial.begin(9600);
  Serial.println("Motor test running");
}

void stepMotor(int stepPin, int dirPin, bool forward, int steps) {
  digitalWrite(dirPin, forward ? HIGH : LOW);
  for (int i = 0; i < steps; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(800);  // speed — lower = faster
    digitalWrite(stepPin, LOW);
    delayMicroseconds(800);
  }
}

void loop() {
  stepMotor(LEFT_STEP, LEFT_DIR, true,  400);  // forward
  delay(500);
  stepMotor(LEFT_STEP, LEFT_DIR, false, 400);  // backward
  delay(500);
}
digitalWrite(dirPin, forward ? HIGH : LOW);

Dit ken ik niet, dus geen idee of dat zal werken.
Ik denk dat als je daar direct je bool invoegt, dat het dan ook zal werken.
Anders zou i wat extra haakjes proberen:

digitalWrite(dirPin, (forward ? HIGH : LOW));

Maar dat is gewoon een kwestie van testen.
Verder ziet het er wel OK uit.
Heb je dit al in Wokwi gezet ?

ja,

ik werk nu alleen maar met wokwi