คำตอบนี้แสดง 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 ช่วยฉันด้วย.