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

ใช้ 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.โปรแกรม...

เรียนรู้ โมดูล 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...

ทำความรู้จัก ลอจิกเกต (LOGIC GATE)

ลอจิกเกต (LOGIC GATE) ลอจิกเกต หรือ ประตูสัญญาณตรรกะ เป็นตัวดำเนินการทางตรรกศาสตร์ซึ่งรับข้อมูลเข้าอย่างน้อยหนึ่งตัว มาคำนวณและส่งข้อมูลออกหนึ่งตัว การทำงานของเกตนิยมเขียนอยู่ในรูปพีชคณิตแบบบูล เมื่อนำเกตต่าง ๆ มาประกอบเป็นวงจรจะได้วงจรตรรกะ ซึ่งเป็นวงจรดิจิทัลประเภทหนึ่ง เกตนิยมสร้างโดยใช้ไดโอดและทรานซิสเตอร์ในวงจรอิเล็กทรอนิกส์ แต่ก็สามารถสร้างโดยใช้วงจรรีเลย์, แสง หรือกลไกอื่น ๆ ได้ด้วย เกตพื้นฐาน เกตพื้นฐานมีทั้งหมด 7 ตัว ได้แก่ OR, AND, NOT, NOR, NAND, XOR และ XNOR เกตที่กล่าวมานี้ไม่ได้เป็นอิสระต่อกัน กล่าวคือเกตบางตัวสามารถสร้างโดยเกตตัวอื่น ๆ ได้ เช่น NOR สามารถสร้างจาก OR ตามด้วย NOT เป็นต้น ในจำนวนเกตพื้นฐานนี้ มีเพียง NAND หรือ NOR ตัวใดตัวหนึ่งก็สามารถสร้างเกตที่เหลือทั้ง 7 ตัวได้ ตัวดำเนินการที่ใส่ไว้เป็นตัวดำเนินการของพีชคณิตแบบบูล OR gate เกต OR คือเกตที่ให้สัญญาณขาออกเป็น 0 เมื่อสัญญาณขาเข้าทุกตัวเป็น 0 และจะให้สัญญาณขาออกเป็น 1 เมื่อสัญญาณขาเข้าตัวใดตัวหนึ่งเป็น 1 เป็นความหมายเดียวกับตรรกะ "หรือ" มีตัวดำเนินการคือ + ตารางค่าความจริงของเกต OR เป็นดังนี้ No...