ข้ามไปที่เนื้อหาหลัก

ใช้ Arduino ควบคุม2button2led1servo "Nutkung Nutkung"


#include <Servo.h>

int buttonPin = 2;                                  // กำหนดให้สวิทซ์อยู่ที่ขา 2
int buttonPin1 = 4;                               // กำหนดให้สวิทซ์อยู่ที่ขา 4
const int servoPin = 9;                        // กำหนดให้ SERVO อยู่ที่ขา9
int ledPin =  13;                                 // กำหนดให้หลอดไฟอยู่ที่ขา 13
int ledPin1 =  11;                               // กำหนดให้หลอดไฟอยู่ที่ขา 11
boolean buttonState = 0;                   // สถานะของสวิทซ์ตัวที่ 1 เท่ากับ 0
boolean buttonState1 = 0;                 // สถานะของสวทซ์ตัวที่ 2 เท่ากับ 0
int directionState = 0;                       // กำหนดให้สถานะของตำแหน่งเท่ากับ 0                   
Servo servoOne;                               // กำหนดให้เป็น SERVO ตัวที่ 1
int pos = 0;                                       // กำหนดองศาให้เท่ากับ 0

void setup() {
      servoOne.attach(9);                                      // กำหนดให้ SERVO รับสัญาณจากขา 9             
  servoOne.write(directionState);                      // กำหนดอ่านค่าสถานะของตำแหน่ง
      pinMode(ledPin, OUTPUT);                      // กำให้หลอดไฟเป็น เอาต์พุท
      pinMode(buttonPin, INPUT);                    // กำหนดให้สวิทซ์เป็น อินพุท 
      pinMode(ledPin1, OUTPUT);                   // กำหนดให้หลอดไฟเป็น เอาต์พุท
      pinMode(buttonPin1, INPUT);                  // กำหนดให้ สวิทซ์เป็นอินพุท
   
}
void loop() {
      buttonState = digitalRead(buttonPin);         // ให้สถานะของสวิทซ์ไปอ่านค่าสวิซ์ตัวที่ 1

      if (buttonState == LOW) {                          //  กำหนดสถานะของสวิทซ์=LOW
         digitalWrite(ledPin,HIGH);                     //  เขียนค่าหลอดไฟเป็น HIGH
      directionState = 0;                                      // สถานะของตำแหน่งเท่ากับ 0    
      for (pos = 0; pos < 180; pos = pos + 1) {  // เมื่อกดปุ่มจะทำให้ servo หมุนไป180 องศา
        servoOne.write(pos);
     delay(5);
      }
       
      } else {
         digitalWrite(ledPin, LOW);                   // เมื่อปล่อยมืออกจากปุ่มกดไฟก็จะดับ
       
      }
       buttonState1 = digitalRead(buttonPin1);            // ให้สถานะของสวิทซ์ไปอ่านค่าสวิซ์ตัวที่ 2
     
      if (buttonState1 == LOW) {                              //  กำหนดสถานะของสวิทซ์=LOW
         digitalWrite(ledPin1, HIGH);                         //  เขียนค่าหลอดไฟเป็น HIGH
      directionState = 0;                                             // สถานะของตำแหน่งเท่ากับ 0
      for (pos = 180; pos > 1; pos = pos - 1) {           // เมื่อกดปุ่มจะทำให้ servo หมุนไป 0 องศา
        servoOne.write(pos);
        delay(5);
      }
       
      } else {
         digitalWrite(ledPin1, LOW);                       // เมื่อปล่อยมืออกจากปุ่มกดไฟก็จะดับ
      }
}

                                                       การต่อวงจรและการอะิบาย

1 . สวิทช์ตัวที่ 1 ต่อกับขา 2 ต่อ ตัวต้านทาน ต่อกับไฟบวก ( +5V ) ขาอีกข้างต่อ( GND )
2.  ต่อ Led 1 เข้ากับขา 13 ( ขาสั้น )  ส่วนอีกข้างต่อกับไฟบวก ( +5V ) 
3. สวิทช์ตัวที่ 2 ต่อกับขา 4 ต่อ ตัวต้านทาน ต่อกับไฟบวก ( +5V ) ขาอีกข้างต่อกาว ( GND )
4.ต่อLed 1 เข้ากับขา 13 ( ขาสั้น )  ส่วนอีกข้างต่อกับไฟบวก ( +5V )
5.ต่อ SERVO โดยนำสายสีแดงต่อไฟบวก(+5V)และสายสีน้ำตาลต่อกาว(GND)ส่วนสายสีส้มที่เป็นสายสัญาณให้ต่อกับขาdigition (9)

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

คู่มือการใช้ tinkercad เบื้องต้น

คู่มือการใช้งานเบื้องต้น 1.tinkercad               t inkercad คือ  โปรแกรมออกแบบที่ทำงานบน Web Browser  ที่ช่วยในการออกแบบวงจรและยังสามารถจำลองการทำงานของวงจรได้อีกด้วย อีกทั้งยังช่วยในการออกแบบงานจำพวก3dได้อีกด้วยทั้งนี้ทั้งนั้นเราของยกมาแค่การออกแบบวงจรก่อนนะครับ ขั้นตอนการใช้โปรแกรมเบื้องต้น 1.เปิดโปรแกรม หน้าตาโปรแกรมก็จะประมาณนี้คับ 2.เมื่อเปิดโปรแกรมเสร็จแล้วให้ไปที่ Circuits  > try Circuits 3.จากนี้เราก็สามารถเขียนวงจรได้แล้ว 4.ถ้าเราต้องการที่จะเปลี่ยนสีสายของสายที่ใช้ต่อหรือพวกledให้ทำการคลิกทีอุปการณ์และเลือกได้เลย วิธีการนี้ใช้ได้กับการเปลี่ยนค่าตัวต้านทานด้วยเช่นกัน   5.ถ้าเราต้องการที่จะจำลองการทำงานให้เราไปที่ code จากนั้นก็ทำการเขียนได้เลยแต่ในtinkercadมันสามารถเขียนcodeได้หลายแบบมีดังนี้    6.เรามาจำลองการทำงานดูกันเลยดีกว่า ให้เราไปเขียนcodeให้เสร็จก่อนจากนั้นให้ไปกดที่ start simulation จากนั้นมันก็จะทำงานตามที่เราเขียนcode ใว้   7.โปรแกรม...

วัดองศาการเคลื่อนที่ โดย Encoder

จัดทำโดย นายณฐกร      โชติบุตร      แผนกเมคคาทรอนิกส์  วิทยาลัยเทคนิคสมุทรสาคร Esan3D เอ็นโค๊ดเดอร์ Encoder คืออะไร  ? มีอีกชื่อหนึ่งที่นิยมเรียกกันว่า เอ็นโค้ดเดอร์แบบแกนหมุน คือ เซ็นเซอร์ชนิดหนึ่งที่ทำหน้าที่ในการเข้ารหัส จากระยะทางจากการหมุนรอบตัวเอง และแปลงออกมาเป็นรหัสในรูปแบบของสัญญาณ ไฟฟ้า โดยเราสามารถนำเอารหัสเหล่านี้มาแปลงกลับ เพื่อหาค่าต่างๆที่เราต้องการได้ ไม่ว่าจะเป็นระยะทางการหมุน องศาการเคลื่อนที่ หรือ ความเร็วรอบก็ได้ แล้วนำมาแสดงผลให้เราได้ทราบค่าผ่านหน้าจอแสดงผล เช่น ถ้าต้องการวัดระยะทาง เราจะต้องต่อเข้ากับตัวนับจำนวน เพื่อแสดงผลเป็นระยะทาง หรือ ถ้าต้องการวัดความเร็วรอบ เราจะต้องต่อเข้ากับตัววัดพัลส์ โดยการประยุกต์ใช้เอ็นโค้ดเดอร์นั้น สามารถใช้ทำงานได้อย่างหลากหลาย เช่น กระบวนการประกอบชิ้นส่วนอิเล็กทรอนิกส์ อุตสาหกรรมเซมิคอนดักเตอร์ เครื่องมือวัดต่างๆ เช่น ในการวัดความยาว หรือ อุตสาหกรรมเครื่องมือแพทย์ เป็นต้น การจะเลือกใช้ Encoder ต้องดูที่อะไรบ้าง  ? 1.  ความยาวสายสัญญาณของเอ็นโค้ดเดอร์ เมือเรามีการใช้งานตัวเอ็นโค้ด...

เรียนรู้ โมดูล A4988 ควบคุม Stepper Motor

จัดทำโดย นายปิยะศักดิ์   ไตรเลิศ       แผนกเมคคาทรอนิกส์ วิทยาลัยเทคนิคสมุทรสาคร นายณฐกร      โชติบุตร      แผนกเม ค คาทรอนิกส์ วิทยาลัยเทคนิคสมุทรสาคร A4988 คือ    โมดูล A4988 ควบคุม Stepper Motor A4988 มีขาใช้งานทั้งหมด 16 ขา ซึ่งแบ่งเป็นขาไฟเลี้ยง 2 ขา , คอนโทรล 8 ขา และ Output 4 1. แรงดันขับมอเตอร์ 9 - 35 V (ไฟเลี้ยง) ขา  VMOT,GND กระแสสูงสุด35v 2. แรงดันทำงาน 3 - 5.5 V (ไฟควบคุม)   ขา  VDD,GND 3. ขา 2B,2A,1A,1B เป็นขาสำหรับในการเสียบ motor bipolar 4. ขาSTEP คือควบคุมการหมุนของมอเตอร์ ความเร็วในการหมุน     ขาDIR    คือเป็นการระบุ ทิศทาง องศา  5. ขาSleep และ Reset สองขานี้ จะต่อเข้าด้วยกัน เนื่องจากขา Sleep จะทำหน้าที่ส่งกำลังไฟฟ้าน้อยที่สุดที่ทำได้ให้มอเตอร์ ในขณะที่มอเตอร์ยังไม่หมุน เพื่อเป็นการประหยัดพลังงาน ส่วนขา Reset จะกำหนดจุดเริ่มแรกในการหมุนของมอเตอร์  6.  MS1 - MS3 ทั้ง 3 ขานี้จะใช้ในการกำหนด Step Resolut...