Created
June 12, 2019 11:55
-
-
Save fxprime/0909233855aaeb8105750b64a4ecedc3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| www.arduinona.com | |
| ตัวอย่างการสั่ง servo ให้หมุนตามค่าที่พิมพ์ลงใน Serial monitor | |
| โดยต่อ Servo เข้ากับ arduino board ดังนี้ | |
| Servo -> Arduino (Uno) | |
| แดง -> Vcc | |
| ดำ -> Gnd | |
| ขาว -> A0 ซึ่งตรงกับ pin number 14 ที่ใช้ในตัวอย่าง อ้างอิงจาก | |
| https://i2.wp.com/marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png | |
| วิธีทดสอบ | |
| upload และเปิด Serial monitor | |
| ปรับ baudrate ให้ตรงกับ 9600 | |
| หลังจากเห็นคำว่า Ready ให้พิมพ์ | |
| พิมพ์ 700s เพื่อขยับ servo ไปมุมนึง | |
| พิมพ์ 2000s เพื่อขยับ servo ไปอีกมุมนึง | |
| พิมพ์ d เพื่อหยุดการเชื่อมต่อ servo (ลองหมุนเซอโวจะพบว่าไม่มีแรงต้าน) | |
| พิมพ์ a เพื่อเชื่อมต่ออีกครั้ง | |
| */ | |
| #include <Servo.h> | |
| //กำหนดค่าเป็น Global scope (นอก setup และ loop) เท่านั้น | |
| Servo servo1; | |
| void setup() { | |
| pinMode(14,OUTPUT); | |
| servo1.attach(14); //analog pin 0 | |
| //servo1.setMaximumPulse(2000); //ลบ //ออกเพื่อกำหนดช่วงมุมการหมุน | |
| //servo1.setMinimumPulse(700); | |
| Serial.begin(9600); | |
| Serial.println("Ready"); | |
| } | |
| void loop() { | |
| static int v = 0; | |
| if ( Serial.available()) { //ถ้ามีข้อมูลที่ป้อนจากผู้ใช้ผ่าน Serial monitor | |
| char ch = Serial.read(); //อ่านค่าเก็บไว้ที่ตัวแปร ch | |
| switch(ch) { | |
| case '0'...'9': | |
| v = v * 10 + ch - '0'; //Note: ค่า ch-'0' คือการเปลี่ยน char เป็น int อย่างง่าย | |
| break; | |
| case 's': | |
| servo1.write(v); //ส่งค่าไปยัง Servo ด้วยค่า v | |
| v = 0; | |
| break; | |
| case 'd': | |
| servo1.detach(); //ถอด servo ออกจากpin(ทำให้servoไม่มีแรง) | |
| break; | |
| case 'a': | |
| servo1.attach(14); //เชื่อมต่อกับ servo อีกครั้ง | |
| break; | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment