Stepper Motor  SG90

    This page is to Setup and Config Stepper Motor  SG90
 

Hardware and Software

Hardware 
    
Stepper Motor  SG90

Software 
    Arduino IDE


Sanki Notes

  • Stepper Motor  SG90
  • DATA : D9 (Pink)
  • Extra V++ and GND (Not Connect to Arduino)
  • V++ : RED / GND : BROWEN

Examples

          This example is for Arduino
  1. // Sweep
    // by BARRAGAN <http://barraganstudio.com>
    // This example code is in the public domain.
     
     
    #include <Servo.h>
     
    Servo myservo;  // create servo object to control a servo
                    // a maximum of eight servo objects can be created
     
    int pos = 0;    // variable to store the servo position
     
    void setup()
    {
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
    }
     
     
    void loop()
    {
      for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
      {                                  // in steps of 1 degree
        myservo.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);                       // waits 15ms for the servo to reach the position
      }
      for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
      {
        myservo.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);                       // waits 15ms for the servo to reach the position
      }
    }

Reference : 

Examples

          This example is for Digispark with Digispark Server Library
  1. // This SoftwareServo library example sketch was initially delivered without any comments.
    // Below my own comments for SoftRcPulseOut library: by RC Navy (http://p.loussouarn.free.fr)
    // Controlling the position of 2 servos using the Arduino built-in hardware UART (Arduino Serial object).
    // This sketch do NOT work with an ATtinyX4 and ATtinyX5 since they do not have a built-in harware UART (no Arduino Serial object).

    // The command (issued in the Arduino Serial Console or in a Terminal) is:
    // S=P with:
    // S=A for Servo1 and S=B for Servo2
    // P=Position number x 20° (Possible positions are from 0 to 9 which correspond to from 0° to 180°)
    // Ex:
    // A=7 sets Servo1 at 7 x 20 =140°
    // B=3 sets Servo2 at 3 x 20 =60°

    #include <SoftRcPulseOut.h>

    SoftRcPulseOut servo1;
    SoftRcPulseOut servo2;

    void setup()
    {
      pinMode(13,OUTPUT);
      servo1.attach(2);
      servo1.setMaximumPulse(2200);
      servo2.attach(4);
      servo2.setMaximumPulse(2200);
      Serial.begin(9600);
      Serial.print("Ready");
    }

    void loop()
    {
      static int value = 20;
      static char CurrentServo = 'A';

    /*
      if ( Serial.available()) {
      
        char ch = Serial.read();
        switch(ch) {
          case 'A':
            CurrentServo='A';
            digitalWrite(13,LOW);
            break;
          case 'B':
            CurrentServo='B';
            digitalWrite(13,HIGH);
            break;
          case '0' ... '9':
            value=(ch-'0')*20;
            if (CurrentServo=='A')
            {
              servo1.write(value);
            }
            else if (CurrentServo=='B')
            {
              servo2.write(value);
            }
            break;
        }
      }
      */
      int angle = 180;
     
      for (int i=0;i<=angle;i++) {
        value=i;
        servo1.write(value);
        
        //servo2.write(value);
        delay(100);
        SoftRcPulseOut::refresh();
      }

       
      for (int i=angle;i>=0;i--) {
        value=i;
      //  servo2.write(value);
        servo1.write(value);
        delay(100);
        SoftRcPulseOut::refresh();
      }
    }

Reference :