Arduino Tutorials – பாடம் 22 – Micro Metal Gear Motor with Encoder

Arduino MEGA2560வை பயன்படுத்தி DC மோட்டாரை துல்லியமாக கட்டுப்படுத்துவது.

Required Components

  1. Arduino MEGA2560 -1 no
  2. Motor control shield(L293D) -1 no
  3. Micro Metal Gear Motor with Encoder -1 no
  4. Motor Wheel -1 no
  5. Bread Board -1 no
  6. Jumper Wires(Male to Male) -11 no
  7. Voltage Converter(5V-3.3V) -1 no
  8. 5V Battery -1 no
  9. USB cable -1 no

Steps

  1. நாம் பயன்படுத்தும் உபகரணங்கள் சரியாக வேலை செய்கிறதா என்பதை உறுதி செய்து கொள்ளவும்.
  2. Motor control shield(L293D) உடன் +5V battery இணைக்க வேண்டும்.
  3. +5V பேட்டரி இணைப்புகளை சரியாகவும் கவனமாகவும் இணைக்க வேண்டும்.
  4. Motor control shield(L293D) M3ஐ மோட்டார் M1,M2உடன் இணைக்க வேண்டும்.
  5. Arduino 5V, gnd ஐ voltage converter V IN,gnd உடன் கவனமாக இணைக்க வேண்டும்.
  6. voltage converter V OUT,gnd ஐ மோட்டார் VCC, gnd உடன் கவனமாக இணைக்க வேண்டும்.
  7. மோட்டார் C1,C2 பின்களை Arduino MEGA2560 18,19 பின்களுடன் இணைக்க வேண்டும்.
  8. Arduino program ஐ சரி பார்க்க வேண்டும்.
  9. மின்சுற்றை சரி பார்க்க வேண்டும்.
  10. Arduino program ஐ ரன் செய்ய வேண்டும்.

Arduino Program

#include <AFMotor.h>
#include <Encoder.h>
AF_DCMotor motor1(4);
Encoder myEnc1(18,19);
long oldPosition1  = -999;
long m1Pos = 0;
long m1Dir = 0;
long md1=2000;


void setup()
{
  Serial.begin(9600);
  Serial.println("Motor test!");
  motor1.setSpeed(200);
  motor1.run(RELEASE);
  motor1Move(md1,0);
}

void loop()
{
  checkMotor1();
  delay(5);
}

void motor1Move(int d1,int d2)
{
  m1Pos=d1;
  m1Dir = d2;
  if (d2==0)
  {
    motor1.run(FORWARD);
  }
  else if (d2==1)
  {
    motor1.run(BACKWARD);
  }
}


void checkMotor1()
{
  long newPosition1 = myEnc1.read();
  if (m1Dir==0)
  {
    if ( newPosition1>m1Pos)
    {
      m1Pos=0;
      motor1.run(RELEASE);
      myEnc1.write(0);
      motor1Move(md1,1);
    }
  }
  else
  {
    if ( abs(newPosition1)>m1Pos)
    {
      m1Pos=0;
      motor1.run(RELEASE);
      myEnc1.write(0);      
      motor1Move(md1,0);
    }
  }
}

Leave a Reply

Your email address will not be published. Required fields are marked *