Hello
I'm working on the Drawing Robot from the Engineering Kit but one of my DC geared motors doesn't work. When I test the motors the right one works perfectly fine, but the left one gives a buzzing sound but doesn't rotate. I followed every step and I think I placed everything correct(See picture in attachments). I have also put the wires of the left motor in the holes on the right and it gives the same buzzing noise. So I suspect there is something wrong with the motor itself. Could something be jammed or blocked inside the motor or what else could be the problem?
This is the test code (It's an example from Arduino itself so there shouldn't be anything wrong with it):
#include <MKRMotorCarrier.h>
#define INTERRUPT_PIN 6
//Variable to store the battery voltage
static int batteryVoltage;
//Variable to change the motor speed and direction
static int duty = 0;
void setup()
{
//Serial port initialization
Serial.begin(115200);
while (!Serial);
//Establishing the communication with the motor shield
if (controller.begin())
{
Serial.print("MKR Motor Shield connected, firmware version ");
Serial.println(controller.getFWVersion());
}
else
{
Serial.println("Couldn't connect! Is the red led blinking? You may need to update the firmware with FWUpdater sketch");
while (1);
}
// Reboot the motor controller; brings every value back to default
Serial.println("reboot");
controller.reboot();
delay(500);
//Take the battery status
float batteryVoltage = (float)battery.getConverted();
Serial.print("Battery voltage: ");
Serial.print(batteryVoltage);
Serial.print("V, Raw ");
Serial.println(battery.getRaw());
}
void loop() {
//Take the battery status
float batteryVoltage = (float)battery.getConverted();
//Reset to the default values if the battery level is lower than 11V
if (batteryVoltage < 11)
{
Serial.println(" ");
Serial.println("WARNING: LOW BATTERY");
Serial.println("ALL SYSTEMS DOWN");
M1.setDuty(0);
M2.setDuty(0);
M3.setDuty(0);
M4.setDuty(0);
while (batteryVoltage < 11)
{
batteryVoltage = (float)battery.getConverted();
}
}
else
{
//Motor test
for (duty=-100; duty<100; duty+=5)
{
Serial.print("Motor Duty: ");
Serial.println(duty);
M1.setDuty(duty);
M2.setDuty(duty);
M3.setDuty(duty);
M4.setDuty(duty);
delay(50);
}
for (duty=100; duty>-100; duty-=5)
{
Serial.print("Motor Duty: ");
Serial.println(duty);
M1.setDuty(duty);
M2.setDuty(duty);
M3.setDuty(duty);
M4.setDuty(duty);
delay(50);
}
//Keep active the communication MKR1000 & MKRMotorCarrier
//Ping the samd11
controller.ping();
//wait
delay(50);
}
}
Thanks for helping