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

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

การใช้งานโปรแกรม Fritzing แบบพื้นฐานขอพื้นฐาน Nisakorn

คู่มือการใช้งานโปรแกรมเบื้องต้น 2. Fritzing   โปรแกรม Fritzing เป็นโปรแกรมที่ช่วยในการออกแบบวงจรสำหรับบอร์ดต่างๆ เช่น Arduino รุ่นต่างๆช่วยให้วางในตำแหน่งที่เหมาะสม ที่สำคัญยังเป็นโปรแกรมฟรีช่วยในการออกแบบวงจรลงบน BreadBoard วาดวงจร Schemetic และการออกแบบแผ่นปริ้น (PCB) ขั้นตอนการใช้งาน Fritzing เบื้องต้น 1.เปิดโปรแกรม หน้าตาโปรแกรมก็จะประมาณนี้คับ 2. คลิ๊กเปิดหน้าใหม่ File > New 3. เมื่อเปิดเสร็จก็จะมีหน้าตาประมาณนี้ ซึ่งเมื่อเข้ามาจะมีอุปกรณ์มากมาย ดังนี้                4. เราสามารถเอาอุปกรณ์ลากมาได้ดังรูป เพื่อที่จะสามารถดูว่าสยไหนเป็นสายไหนเราสามารถเปลี่ยนสีของสายได้ดังนี้ กดที่ Wre Color -  เลือกสีที่ต้องการดังรูป ผมใช้สีแดง 5. โปรแกรมนี้สามารถวงจรไฟฟ้าที่เราเขียนได้กดที่ Schematic 6.วิธีการ Save ไปคลิ๊กที่  File > Save As ซึ่งนามสกุลของมันคือ fzz เราสามารถ save ไฟล์แบบรูปภาพไดหากต้องการไปใช้ ไปที่   file  - expost - as Image  - เลือ...

ทำความรู้จัก ลอจิกเกต (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...