การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

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