คำตอบนี้แสดง 4 ตัวเลือกพื้นฐาน:
HardwareSerial
ดีที่สุดเสมอ เพียงใช้Serial
ตัวแปรที่กำหนดไว้ล่วงหน้า ในบาง Arduinos มีพอร์ต HardwareSerial พิเศษที่เรียกว่าSerial1
, Serial2
ฯลฯ Serial
นาโนมีเพียง
AltSoftSerial
ที่สุดของไลบรารี่อนุกรมของซอฟต์แวร์ อนุญาตเพียงหนึ่งอินสแตนซ์และจะต้องใช้กับหนึ่งในพินจับการป้อนข้อมูล (พิน 8 & 9 สำหรับนาโน)
ของฉันNeoSWSerial
ดีที่สุดต่อไป มันทำงานได้กับสองพินใด ๆ แต่ที่อัตราบอด 9600, 19200 และ 38400
SoftwareSerial
เป็นตัวเลือกที่แย่ที่สุด มันใช้งานได้กับสองพินใด ๆ แต่มันไม่มีประสิทธิภาพมาก มันปิดการใช้งานอินเตอร์รัปต์ตลอดเวลาที่อักขระถูกส่งหรือรับและไม่สามารถทำทั้งสองอย่างในเวลาเดียวกัน (ต่างจากตัวเลือกอนุกรมอื่น ๆ ทั้งหมด) สิ่งนี้สามารถรบกวนส่วนอื่น ๆ ของร่างของคุณการสื่อสารอุปกรณ์อื่น ๆ หรือไลบรารี
หากคุณสามารถใช้อัตราการส่งข้อมูลช้ากว่าที่คุณสามารถเก็บลายนิ้วมือของคุณในการแก้ปัญหาSerial
และการใช้อย่างใดอย่างหนึ่งAltSoftSerial
หรือNeoSWSerial
สำหรับอุปกรณ์ของคุณ
แต่ถ้าคุณมีการใช้ 115200 Serial
ทางเลือกที่มีความน่าเชื่อถือเพียงอย่างเดียวคือ แม้ว่าAltSoftSerial
และSoftwareSerial
อนุญาตอัตรา baud เหล่านั้นพวกเขาอาจไม่สามารถส่ง / รับข้อมูลได้อย่างถูกต้อง
ในกรณีนี้ฉันขอแนะนำให้ใช้Serial
สำหรับอุปกรณ์ 115200 หากคุณไม่ได้ใช้ ISP คุณจะต้องตัดการเชื่อมต่ออุปกรณ์เพื่ออัปโหลดแบบร่างใหม่ผ่าน USB
จากนั้นใช้AltSoftSerial
หรือNeoSWSerial
สำหรับคำสั่งการดีบักของคุณ คุณจะต้องใช้อะแดปเตอร์ TTL Serial-to-USB (aka FTDI) บนพินที่เลือกเพื่อเชื่อมต่อกับพีซี Serial Monitor
หรืออื่น ๆ ที่โปรแกรมจำลอง terminalจะอ่านจากพอร์ต USB COM
key=getKey();
GSM ของฉัน (โดยใช้พิน 2 และ 3 Arduino Uno) ไม่ได้รับ SMS ช่วยฉันด้วย.