Problemen met schakelaar en stappen motor

Hallo iedereen, ik heb een probleempje met mijn schakelaar en ik kan het zelf niet oplossen dus hoopte ik dat iemand van jullie mij zou kunnen verder helpen.

Ik gebruik een Arduino UNO met daarop een Adafruit Motorshield. Op dat motorschild heb ik enkele dingen aangesloten, waaronder een schakelaar en een stappen motor. Ik heb de schakelaar aangesloten zoals op de foto maar dan wel zonder de led.
Als mijn schakelaar gesloten is werkt mijn programma naar behoren maar als mijn schakelaar open is, dan wilt mijn stappen motor niet meer draaien. Ik zit hier al enkele dagen op te tobben maar ik heb nog altijd geen oplossing gevonden.

Hier is een vereenvoudigde versie van mijn code.

#include <AFMotor.h>
#include <Servo.h>

AF_Stepper motor(200, 2);

void setup()
{
  Serial.begin(9600);
  
  pinMode(4,INPUT);
}

void loop()
{
  if(digitalRead(4)==LOW)
  {
    draaien();
  }
  else
  {
    draaien();
  }
}

void draaien()
{
  motor.step(50, FORWARD,MICROSTEP);
  delay(250);
  
  motor.step(100, BACKWARD, MICROSTEP);
  delay(250);
  
  motor.step(49, FORWARD, MICROSTEP);
  delay(250);
}

Alvast bedankt.

heb je met de vereenvoudigde code ook het probleem?
Met vriendelijk groet
Jantje

Ja, dat heb ik geprobeerd en toen werkte het nog altijd niet.

Heb je wel uitgezocht of digital2 wel vrij is en niet word gebruikt voor je motorshield ?
wanneer je schakelaar open is, trekt de weerstand digital2 naar 5 volt en wanneer de schakelaar gesloten is wint die schakelaar het van de weerstand en ligt digital2 aan GND.
Probeer eens wat er gebeurt als je de weerstand aan 1 zijde losneemt.
En waarom gebruik je niet de interne pullup ?
Spaart je een weerstand uit.
Kijk of digital2 wel vrij is om te gebruiken en niet al gebruikt word door je shield.
Word ie wel gebruikt, kies dan een andere wel vrije pin.
Als je dit niet weet, probeer dan een willekeurige andere pin totdat je hebt wat je wil, maar dan kun je wel ff bezig zijn.
Adafruit is een grote speler in de Arduino wereld.
Ik zou niet vreemd opkijken als ze een aantal motorshields hebben (zou me verbazen als dat niet zo is).
Daarom ga ik niet eens bij hen kijken of ik wat over die shield kan vinden voor je, tenzij je een verwijzing naar het betreffende product geeft.
Adafruit is ook goed genoeg wat betreft documentatie.
Dus gegevens over jouw shield (mogelijk zelfs schema's) kun je daar zonder twijfel terugvinden.

op Motor Shield - Arduino motor/stepper/servo control lees ik

The following pins are in use if any DC/steppers are used
Digital pin 4, 7, 8 and 12 are used to drive the DC/Stepper motors via the 74HC595 serial-to-parallel latch

en ook

All 6 analog input pins are available. They can also be used as digital pins (pins #14 thru 19)

Digital pin 2, and 13 are not used.

probeer eens met 1 van de vrije pinnen.
Jantje

Dank je voor je tijd Jantje, het probleem is nu opgelost.

Blijkbaar kon ik inderdaad heel wat aansluitingen niet gebruiken, en daardoor stuurde mijn schakelaar heel de tijd een hoog signaal door en in de andere stand kreeg mijn stappenmotor dan waarschijnlijk niet genoeg stroom waardoor hij niet werkte.
Ik heb eerst pin 5, 6 en 9 geprobeerd maar die werkten niet. Toen ik echter pin 13 uitprobeerde, werkte het wel. Ik weet niet waarom die andere pinnen niet werken, heb jij enig idee?

Het project waar ik mee bezig ben kan je in de bijlagen terugvinden, het is een autonoom schoonmaakrobotje dat ik heb gemaakt als eindwerk voor het school.

Vriendelijk Bedankt, Jelle

Jelle:
Ik heb eerst pin 5, 6 en 9 geprobeerd maar die werkten niet. Toen ik echter pin 13 uitprobeerde, werkte het wel. Ik weet niet waarom die andere pinnen niet werken, heb jij enig idee?

Is dat een vraag van je leerkracht? Lees de link die hierboven staat en je kan antwoorden.

Met vriendelijke groet
Jantje

PS leuk schoolproject