Up-Down motion through Motor Shield issues

Hello Forums,

I am designing a system for automatic window blinds and my motor system is a critical component to the design.

I am planning on using a motorshield (v2.3) on an Arduino Uno, with two VEX bumper switches (each connected with a 330 Ohm resistors), and a VEX DC motor.

The code I have attached shows that the code is working perfectly and the Arduino is interacting with the buttons superbly, however the motor does not work at all. I even switched to a small hobby motor to check if there were Voltage issues to no avail.

I am thinking that the system requires too much current from the motor shield, thus my design is impractical.

/*************************************************************
This code is use to power a small 5V hobby motor through a motor shield (v2.3)

The motorshield has external power (variable from 3.5V to 12V) as well as the 
  base board's USB connection

There are two Vex bumper switches; a clockwise and a counter clockwise button, 
  that should move the motor in these respective directions.

The serial output of this code is used to monitor the performance 
  of this code and is in the following format:
(0-1):CCW  //  (0-1):CW  //  Counter Clockwise? (0-1)  //  Stop? (0-1)

The code turns the motor clockwise if button A (example name) is pressed and
turns the motor counter clockwise if button B is pressed. Otherwise that motor
does not turn.

*************************************************************/
int buttonStateCCW = 0;
int buttonStateCW = 0;
int High = 0;
int Stop = 0;
void setup() {
  
  //Setup Channel A
  pinMode(12, OUTPUT);            //Initiates Motor Channel A pin
  pinMode(9, OUTPUT);              //Initiates Brake Channel A pin
  pinMode(4, INPUT);                 //Initiates Counter Clockwise Button
  pinMode(6, INPUT);                 //Initiates Clockwise Button
  Serial.begin(9600);
}

void loop(){
  buttonStateCCW = digitalRead(4);
  buttonStateCW = digitalRead(6); 
  Serial.print(buttonStateCCW);
  Serial.print(":CCW  //  ");
  Serial.print(buttonStateCW);
  Serial.print(":CW  //  Counter Clockwise? ");
  digitalWrite(9, LOW);   //Disengage the Brake for Channel A
  
  if (buttonStateCW == 1) {
    digitalWrite(12, LOW);               //Establishes forward direction of Channel A
    digitalWrite(9, LOW);                //Disengage the Brake for Channel A
    analogWrite(3, 255);                 //Spins the motor on Channel A at full speed
  }
  else if (buttonStateCCW == 1) {      //forward @ full speed
    digitalWrite(12, HIGH);                //Establishes forward direction of Channel A
    analogWrite(3, 255);               //Spins the motor on Channel A at full speed
  }
  else {
    digitalWrite(9,HIGH);
  }
  
  High = digitalRead(12);
  Stop = digitalRead(9);
  Serial.print(High); 
  Serial.print("  //  Stop? ");
  Serial.println(Stop);
}

Additionally, as a little test for the motor, I created a system with one button and the motor, still no go on the VEX DC motor however, the small hobby motor worked at a lower maximum speed.

If there is any way for me to upload a clean diagram please let me know. (I tried circuts.io, but the components I am using are not on the program.)

Just draw the schematic in ink if possible and take a photo of it and post the photo to your next forum posting.

Paul

Your problem seems to be the power supply. The 5V from the Arduino board is not designed for driving motors.

You need a power supply for your motors, and also check that the driver board can supply the required motor current.

DrDiettrich:
Your problem seems to be the power supply. The 5V from the Arduino board is not designed for driving motors.

You need a power supply for your motors, and also check that the driver board can supply the required motor current.

Do you know of how to connect a power supply to the motors while maintaining functionality?

Additionally, if the motorshield isn't able to supply enough current to the system, do you know of any other controllers that will allow me to re-create a similar input, output system?

Motor driver modules are available for almost any kind and power of motors. You connect the motor power supply directly to the driver module. Do you have a data sheet for the VEX motor?

DrDiettrich:
Motor driver modules are available for almost any kind and power of motors. You connect the motor power supply directly to the driver module. Do you have a data sheet for the VEX motor?

Also, Thank you for the insight! I will research higher power motor controllers