Arduino:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีการ:
อาร์ดูอิโนไม่ทำงานกับอาร์กิวเมนต์บรรทัดคำสั่งเหมือนสภาพแวดล้อมการโปรแกรมแบบดั้งเดิม เพราะ sketch ถูกอัปโหลดไปยังไมโครคอนโทรลเลอร์โดยไม่มีบรรทัดคำสั่ง OS ที่เข้าถึงได้ แต่คุณสามารถเลียนแบบคุณสมบัตินี้โดยใช้การสื่อสารแบบซีเรียล นี่คือวิธีการ:
void setup() {
// ตั้งค่าการสื่อสารแบบซีเรียลที่ 9600 บิตต่อวินาที:
Serial.begin(9600);
}
void loop() {
// ตรวจสอบว่ามีข้อมูลที่พร้อมอ่านหรือไม่
if (Serial.available() > 0) {
// อ่านข้อมูลที่เข้ามาจนกระทั่งได้รับข้อความประกาศสิ้นสุดหรือ ‘\n’
String receivedData = Serial.readStringUntil('\n');
// สะท้อนอาร์กิวเมนต์ที่ได้รับกลับไปยังมอนิเตอร์ซีเรียล
Serial.print("Received: ");
Serial.println(receivedData);
}
}
ตัวอย่างผลลัพธ์บน Serial Monitor:
Received: argument1 argument2 argument3
ลึกซึ้ง
อาร์กิวเมนต์บรรทัดคำสั่งแบบดั้งเดิมทำงานในที่ที่ระบบปฏิบัติการเต็มรูปแบบ (เช่น Windows, Linux, หรือ macOS) ทำการรันโปรแกรม ตัวประมวลผลคำสั่งของระบบปฏิบัติการจะส่งอาร์กิวเมนต์ไปยังโปรแกรม อาร์ดูอิโนไม่มีสิ่งนี้; มันเป็นไมโครคอนโทรลเลอร์ที่มีโปรแกรมเดียวที่ทำงานซ้ำๆ
การสื่อสารแบบซีเรียลคือวิธีการอ้อมอาจของคุณ เหมือนกับการมีการสนทนากับอาร์ดูอิโนของคุณผ่านสายเฉพาะ คุณส่งข้อมูลผ่านสายนี้ซึ่งโปรแกรมอาร์ดูอิโนจะอ่านเป็นข้อมูลนำเข้าเมื่อพร้อม
ก่อนมี Serial Monitor ใน Arduino IDE โปรแกรมเมอร์ใช้สวิตช์หรือจัมเปอร์บนฮาร์ดแวร์เพื่อเปลี่ยนพฤติกรรม การสื่อสารแบบซีเรียลเปลี่ยนแปลงกระบวนการนี้อย่างมาก โดยทำให้กระบวนการนี้ง่ายขึ้น
ที่จำไป, Arduino Uno และอีกหลายตัวมีพอร์ตซีเรียลเพียงตัวเดียวที่ใช้ร่วมกับการเชื่อมต่อ USB ซึ่งหมายความว่าคุณไม่สามารถรับข้อมูลซีเรียลและอัปโหลดสเก็ตใหม่ได้พร้อมกัน บอร์ดอาร์ดูอิโนขั้นสูงอาจมีหลายพอร์ตซีเรียล ซึ่งอนุญาตให้มีการสื่อสารและอัปโหลดสเก็ตพร้อมกันได้
ทางเลือกอื่นๆ สำหรับการเลียนแบบอาร์กิวเมนต์บรรทัดคำสั่ง ได้แก่:
- โมดูล Bluetooth (สำหรับการสื่อสารไร้สาย)
- แป้นพิมพ์หรือปุ่มสำหรับการป้อนข้อมูล
- การบันทึกอาร์กิวเมนต์เข้าใน EEPROM (หน่วยความจำที่ไม่ถูกลบ) และอ่านพวกมันเมื่อเริ่มต้น
แต่ละวิธีมีกรณีการใช้งานและระดับความซับซ้อนต่างกัน แต่การสื่อสารแบบซีเรียลเป็นวิธีที่ง่ายที่สุดสำหรับการทำต้นแบบเร็ว ๆ และการทดสอบ
ดูเพิ่มเติม
- การสื่อสารแบบซีเรียลของอาร์ดูอิโน: Arduino - Serial
- การอ่านและเขียน EEPROM ของอาร์ดูอิโน: Arduino - EEPROM