lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

Test_Dir ทดสอบการควบคุมการหมุนของมอเตอร์ FOR ARDUINO UNO

เจ้าของร้าน
เจ้าของร้าน
1 ปีที่ผ่านมา

#include

 

const int MotorLeft1= 7;

const int MotorLeft2 = 3;

const int MotorRight1 = 4;

const int MotorRight2 = 2;

const int MotorLeftPWM = 6;

const int MotorRightPWM = 5;

const int irReceiverPin = A3;

 

int iSpeed = 200; //speed, range 0 to 255

 

//******Infrared key bindings********************************************

const long IRfront = 0xFF629D;      //go straight: button ^

const long IRback = 0xFFA857;       //go back    : button v

const long IRturnright = 0xFFC23D;  //turn right : button >

const long IRturnleft = 0xFF22DD;   //turn left  : button <

const long IRstop = 0xFF02FD;       //stop       : button ok

IRrecv irrecv(irReceiverPin);  // IRrecv signal

decode_results infrared;       // decode result

 

void setup()

{

  pinMode(MotorRight1, OUTPUT);  //

  pinMode(MotorRight2, OUTPUT);  //

  pinMode(MotorLeft1,  OUTPUT);  //

  pinMode(MotorLeft2,  OUTPUT);  //

  pinMode(MotorRightPWM, OUTPUT); //enable for right side motor

  pinMode(MotorLeftPWM, OUTPUT); //enable for right side motor

  irrecv.enableIRIn();      // start infrared decode

}

 

 

void loop()

{

   Get();

}

 

//**************Movement functions******************************

void advance(int d) { //go straight

  digitalWrite(MotorRight1, HIGH);

  digitalWrite(MotorRight2, LOW);

  digitalWrite(MotorLeft1, HIGH);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);

  delay(d * 10);

}

void right(int d) { //turn right (single wheel)

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, HIGH);

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, LOW);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);

  delay(d * 10);

}

void left(int d) {//turn left(single wheel)

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, HIGH);

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);

  delay(d * 10);

}

void turnR(int d) {//turn right (two wheels)

  digitalWrite(MotorRight1, HIGH);

  digitalWrite(MotorRight2, LOW);

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, HIGH);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);  

  delay(d * 10);

}

void turnL(int d) {//turn left (two wheels)

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, HIGH);

  digitalWrite(MotorLeft1, HIGH);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);

  delay(d * 10);

}

void stopp(int d) { //stop

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, LOW);

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);  

  delay(d * 10);

}

void back(int d) { //go back

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, HIGH);

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, HIGH);

  analogWrite(MotorRightPWM, iSpeed);

  analogWrite(MotorLeftPWM, iSpeed);  

  delay(d * 10);

}

 

//************************* for line follower **********************************

void Advance() 

{ //go straight

  digitalWrite(MotorRight1, HIGH);

  digitalWrite(MotorRight2, LOW);

  digitalWrite(MotorLeft1, HIGH);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed-65); // mas

  analogWrite(MotorLeftPWM, iSpeed-65);

}

 

void TurnR() 

{//turn right (two wheels)

  digitalWrite(MotorRight1, HIGH);

  digitalWrite(MotorRight2, LOW);

  digitalWrite(MotorLeft1, LOW);

  digitalWrite(MotorLeft2, HIGH);

  analogWrite(MotorRightPWM, iSpeed+40);

  analogWrite(MotorLeftPWM, iSpeed+40);

}

 

void TurnL() 

{//turn left (two wheels)

  digitalWrite(MotorRight1, LOW);

  digitalWrite(MotorRight2, HIGH);

  digitalWrite(MotorLeft1, HIGH);

  digitalWrite(MotorLeft2, LOW);

  analogWrite(MotorRightPWM, iSpeed+40);

  analogWrite(MotorLeftPWM, iSpeed+40);

}

 

void Get() 

{

  //************************************normal remote control mode ********

  // decoding success 'receive infrared signal

  if (irrecv.decode(&infrared))  

  {         

    if (infrared.value == IRfront) 

    {

      advance(10); //go straigt

    } 

    else if (infrared.value ==  IRback) 

    {

      back(10); //go back

    }

    else if (infrared.value == IRturnright) 

    {

      turnR(10); // go right

    }

    else if (infrared.value == IRturnleft) 

    {

      turnL(10); // go left

    }

    else if (infrared.value == IRstop) 

    { 

      //stop

      stopp(10);

    }

    irrecv.resume();

    delay(200);

  }

  else 

  {

    stopp(0);

  } 

}

 

1
แสดงความคิดเห็นที่ 0-0 จากทั้งหมด 0 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

<



    ติดต่อเรา สะดวก    รวดเร็ว ไว้ใจได้

 091-109-7711


  ติดต่อเราผ่านช่องทาง LINE

  ID : king5k

MEMBER

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

STATISTICS

หน้าที่เข้าชม6,158 ครั้ง
ผู้ชมทั้งหมด3,017 ครั้ง
เปิดร้าน21 ก.ย. 2559
ร้านค้าอัพเดท16 พ.ค. 2561
ตะกร้าของฉัน (0)
มีสินค้าทั้งหมด 0 ชนิด 0 ชิ้น
0 บาทราคาสินค้าทั้งหมด
(ยังไม่รวมค่าจัดส่ง)
สั่งซื้อสินค้า
ตะกร้า
( 0 )
รายการสั่งซื้อของฉัน
เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)
รายการสั่งซื้อของฉัน
ข้อมูลร้านค้านี้
ร้านPiapples
Piapples
วิสัยทัศน์ของเราคือ สร้างชุดฝึกสำหรับการโปรแกรมคอมพิวเตอร์ มอบให้ระบบการศึกษาทั่วประเทศ ยินดีให้คำปรึกษา R&D งานระบบไมโครคอนโทรลเลอร์ งานโปรเจค งานออกแบบดีไซด์
เบอร์โทร : 0911097711
อีเมล : kittisak.krua@gmail.com
ส่งข้อความติดต่อร้าน
เกี่ยวกับร้านค้านี้
สินค้าที่ดูล่าสุด
ดูสินค้าทั้งหมดในร้าน
สินค้าที่ดูล่าสุด
บันทึกเป็นร้านโปรด
Join (สมัครสมาชิกร้าน)
แชร์หน้านี้
แชร์หน้านี้

TOP เลื่อนขึ้นบนสุด
Go to Top
พูดคุย-สอบถาม คลิก