Ada begitu banyak Pustaka Serial Perangkat Lunak, apa perbedaan di antara mereka? Dan yang mana yang bisa saya gunakan dengan Arduino Nano saya? Untuk Arduino Nano saya, saya memerlukan satu Port Serial Perangkat Keras dan satu port Serial Perangkat Lunak dengan kecepatan baud 115200.
Pada pin Arduino Nano manakah saya dapat menggunakan pustaka serial perangkat lunak?
serial
arduino-nano
uart
William Roy
sumber
sumber
key=getKey();
GSM saya (menggunakan pin 2 & 3 Arduino Uno) tidak menerima SMS. Tolong bantu aku.Jawaban:
Jawaban ini mencantumkan 4 pilihan dasar:
HardwareSerial
, selalu yang terbaik. Cukup gunakanSerial
variabel yang ditentukan sebelumnya. Pada beberapa Arduinos, ada port HardwareSerial ekstra, yang disebutSerial1
,Serial2
, dll Nano hanya memilikiSerial
.AltSoftSerial
, yang terbaik dari pustaka serial perangkat lunak. Hanya satu instance diizinkan, dan itu harus digunakan pada salah satu pin Input Capture (pin 8 & 9 untuk Nano).Saya
NeoSWSerial
adalah yang terbaik berikutnya. Ini bekerja pada dua pin, tetapi hanya pada baud rate 9600, 19200 dan 38400.SoftwareSerial
adalah pilihan terburuk. Ia bekerja pada dua pin, tetapi sangat tidak efisien. Ini menonaktifkan interupsi sepanjang waktu bahwa karakter sedang dikirim ATAU diterima, dan tidak dapat melakukan keduanya pada waktu yang sama (tidak seperti semua pilihan serial lainnya). Ini dapat mengganggu bagian-bagian lain dari sketsa Anda, komunikasi perangkat lain, atau dengan perpustakaan.Jika Anda bisa menggunakan baud rate yang lebih lambat, Anda bisa tetap mencetak debug
Serial
, dan menggunakan salah satuAltSoftSerial
atauNeoSWSerial
untuk perangkat Anda.Tetapi jika Anda harus menggunakan 115200, satu-satunya pilihan yang dapat diandalkan adalah
Serial
. MeskipunAltSoftSerial
danSoftwareSerial
memungkinkan baud rate itu, mereka mungkin tidak mengirim / menerima data dengan benar.Dalam hal ini, saya sarankan menggunakan
Serial
untuk perangkat 115200. Kecuali Anda menggunakan ISP, Anda harus memutuskan koneksi perangkat untuk mengunggah sketsa baru melalui USB.Kemudian gunakan
AltSoftSerial
atauNeoSWSerial
untuk pernyataan debug Anda. Anda akan memerlukan adaptor Serial-to-USB TTL (alias FTDI) pada pin yang dipilih untuk terhubung ke PC. TheSerial Monitor
atau lainnya program emulator Terminal akan membaca dari port USB COM.sumber
NeoICSerial
cukup tambahkanattachInterrupt
metode keAltSoftSerial
. Anda mungkin tidak perlu menangani setiap karakter dalam interupsi. Cukup gunakanAltSoftSerial
dan panggilavailable()
dan kemudianread()
jika char sudah siap. Demikian pula,NeoHWSerial
menambahkanattachInterrupt
fitur yang sama ke intiHardwareSerial
. Namun,NeoSWSerial
adalah kelas yang sama sekali berbeda (ini juga memilikiattachInterrupt
fitur).Perangkat lunak serial meniru port serial, berbeda dari port asli yang telah mendaftar untuk menyimpan semua bit secara berurutan dan mereka menetapkan flag untuk memanggil loop utama, serial perangkat lunak tidak memiliki hal itu. Serial perangkat lunak harus menerima semua bit, satu per satu, jadi Anda harus membaca port digital, menunggu waktu tertentu dan membaca pin digital lagi. Anda harus membuatnya 10 kali (1 bit awal, 8 bit data, dan 1 bit akhir). Waktunya sangat penting. Untuk menggunakan serial perangkat lunak, Anda perlu lebih mengkhawatirkan kinerja.
Anda dapat menggunakan pin interupsi digital untuk pin RX, sehingga Anda "dipanggil" di batas bawah (bit mulai) dan menerima 8 bit.
sumber