Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h> // ผนวกไลบารี่การใช้งานเซอร์โวมอเตอร์
- Servo myservo; // ประกาศตัวแปรแทน Servo
- String inString = ""; // ประกาศตัวแปรแทน String
- void setup() {
- myservo.attach(9);
- Serial.begin(9600); // เปิดการสื่อสารอนุกรมระหว่างคอมพิวเตอร์กับบอร์ด i-Duino R3B อัตราบิตการรับส่งข้อมูล 9600 baud
- while (!Serial){ // รอการเชื่อมต่อกับ Serial Port สำเร็จ
- }
- delay(500); // หน่วงเวลา 0.5 วินาทีเพื่อความเสถียรของระบบ
- Serial.println("Test Servo Communication:"); // แสดงข้อความผ่านหน้าจอ Serial Monitor แล้วขึ้นบรรทัดใหม่
- Serial.println();
- }
- void loop() {
- while (Serial.available() > 0) // ตรวจสอบการรับข้อมูลที่เข้ามา (จำนวนของตัวอักขระที่ได้รับ)
- {
- int inChar = Serial.read(); // อ่านข้อมูลจากบัฟเฟอร์ตัวรับของโมดูล UART0
- if (isDigit(inChar)) // ตรวจสอบตัวขระเป็นตัวเลขหรือไม่
- {
- inString += (char)inChar; // แปลงชนิดข้อมูล int เป็น char และเพิ่มลงในสตริง
- }
- // if you get a newline, print the string, then the string's value:
- if (inChar == '\n') { // ตรวจสอบ
- int pos = inString.toInt(); // แปลงชนิดข้อมูล string เป็น int ด้วย .toInt()
- if(pos >= 0 && pos <= 180) // ตรวจสอบค่า pos อยู่ระหว่าง 0 ถึง 180 หรือไม่
- {
- // แสดงข้อความ
- Serial.print("Servo: ");
- Serial.print(inString);
- Serial.println(" Degree(s)");
- myservo.write(pos); // ขับเซอร์โวมอเตอร์ให้แกนหมุนไปยังตำแหน่งองศาที่กำหนด
- }
- else
- {
- Serial.println("\nInput must be a value between 0 and 180."); // แสดงข้อความ
- }
- inString = ""; // ล้างข้อความ
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement