Problems with mg946r and serial

Hi guys

I control a mg946r servo and various mg996r with serial monitor (or this is my idea xd), and this code with de 996r works it, but with 996r doesnt.

#include <Servo.h>

Servo servoMotor;
int input;

void setup() {
  Serial.begin(9600);
  servoMotor.attach(9);
  servoMotor.write(input);
  Serial.println("Enter an Angle:");
}

void loop() {

  // put your main code here, to run repeatedly:
if (Serial.available() > 0) {
  input = Serial.parseInt();
  if (input > 180 || input < 0) {
    Serial.println ("This isn't valid! Try again!");
    Serial.println("Enter an Angle:");
  }
  else {
    servoMotor.write(input);
    Serial.println(String("You entered: ") + input + String("!"));
    delay (1000);
    Serial.println("Enter an Angle:");
    }}}

The mg946r makes two moves at once (i dont want this) and close serial. After to download java 1.8.0_341 the console said this:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at processing.app.Serial.write(Serial.java:254)
	at processing.app.Serial.write(Serial.java:274)
	at processing.app.SerialMonitor.send(SerialMonitor.java:122)
	at processing.app.SerialMonitor.lambda$new$1(SerialMonitor.java:66)
	at javax.swing.JTextField.fireActionPerformed(JTextField.java:508)
	at javax.swing.JTextField.postActionEvent(JTextField.java:721)
	at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:836)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1668)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
	at javax.swing.JComponent.processKeyBindings(JComponent.java:2929)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
	at java.awt.Component.processEvent(Component.java:6316)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:835)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1103)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:974)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:800)
	at java.awt.Component.dispatchEventImpl(Component.java:4760)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Problems with servos almost always arise when you try to use the Arduino 5V pin to power them.

If that is what you are doing, use a separate 5 to 6V power supply, capable of supplying at least 1 Ampere per small servo, or 2.5 A per large servo (MG996R).

Don't forget to connect all the grounds.

thanks you so much!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.