Serial.print() vs Serial.println() dalam Arduino

Serial Print Vs Serial Println Dalam Arduino



Arduino ialah papan mikropengawal popular yang biasa digunakan untuk projek DIY, robotik dan peranti IoT. Salah satu ciri penting Arduino ialah menukar data dengan komputer melalui komunikasi bersiri.

Serial.print() dan Serial.println() adalah dua daripada arahan yang paling kerap digunakan untuk komunikasi bersiri dalam Arduino. Artikel ini akan membincangkan perbezaan antara Serial.print() dan Serial.println() dan bagaimana ia mempengaruhi projek Arduino anda.

Isi kandungan







Apa itu Komunikasi Bersiri

Sebelum kita menyelami perbezaan antara Serial.print() dan Serial.println() , mari kita fahami dahulu apa komunikasi bersiri ialah. Komunikasi bersiri ialah proses penghantaran dan penerimaan data. Menggunakan Arduino ini boleh memindahkan satu bit data pada satu masa, dengan protokol komunikasi bersiri. Dalam Arduino, kami menggunakan objek Serial untuk menukar data dengan PC menggunakan port USB.



Komunikasi bersiri adalah penting untuk menyahpepijat dan memantau kelakuan projek Arduino. Anda boleh menggunakannya untuk mencetak bacaan penderia, kod nyahpepijat atau memaparkan mesej pada skrin komputer.



Serial.print()

Serial.print() ialah fungsi yang menghantar data ke port Serial dalam aliran berterusan. Ia membolehkan anda menghantar data sebagai rentetan, aksara atau nilai berangka. Sebagai contoh, kod yang diberikan menghantar rentetan ' Hai dunia! ” ke port Serial Arduino:





Bersiri.cetak ( 'Hai dunia!' ) ;

Serial.print() tidak menambah sebarang pemisah baris atau pemulangan pengangkutan pada penghujung data, jadi data dicetak secara berterusan pada baris yang sama.

Serial.println()

Serial.println() adalah serupa dengan Serial.print() , tetapi ia menambah aksara pemisah baris (\n) pada penghujung data. Ini menunjukkan kepada kita bahawa setiap masa Serial.println() fungsi dipanggil, kenyataan cetakan seterusnya akan bermula pada baris baharu. Sebagai contoh, kod yang diberikan menghantar rentetan ' Hai dunia! ” dan menambah pemisah baris:



Serial.println ( 'Hai dunia!' ) ;

Ini akan mencetak ' Hai dunia! ” pada terminal bersiri Arduino.

Perbezaan Antara Serial.print() dan Serial.println()

Perbezaan utama antara Serial.print() dan Serial.println() ialah Serial.print() menghantar data dalam aliran berterusan, manakala Serial.println() menghantar data dengan pemisah baris pada penghujungnya.

Sekarang kita akan merangkumi kod contoh yang menerangkan kedua-dua fungsi fungsi ini.

Contoh Serial.print().

Berikut ialah kod yang menerangkan penggunaan Serial.print() :

persediaan kosong ( ) {
Bersiri.mulakan ( 9600 ) ; // memulakan komunikasi bersiri di 9600 kadar baud
}

gelung kosong ( ) {
int randomValue = rawak ( 0 , 1023 ) ; // menjana nilai rawak antara 0 dan 1023

Bersiri.cetak ( 'Nilai rawak: ' ) ; // mencetak label
Bersiri.cetak ( randomValue ) ; // mencetak nilai rawak pada baris baharu

kelewatan ( 2000 ) ; // tunggu untuk 500 milisaat sebelum mencetak semula
}

Kod ini memulakan komunikasi bersiri dengan kadar baud 9600 dalam fungsi persediaan(). Fungsi gelung() kemudian menjana nilai integer rawak antara 0 dan 1023 menggunakan fungsi rawak() dan menyimpannya dalam nama pembolehubah randomValue .

The Serial.print() fungsi kemudiannya digunakan untuk mencetak label “ Nilai rawak: ” ke monitor bersiri, diikuti dengan nilai rawak sebenar, yang dicetak pada baris yang sama tanpa aksara baris baharu menggunakan Serial.print() .

The kelewatan() fungsi digunakan untuk menjeda pelaksanaan gelung selama 2000 milisaat (2 saat).

Pengeluaran
Dalam output, kita boleh melihat semua nilai dicetak dalam satu baris tanpa sebarang pemisah baris.

Contoh Serial.println().

Kod yang diberikan menunjukkan penggunaan Serial.println() berfungsi dalam Arduino.

persediaan kosong ( ) {
Bersiri.mulakan ( 9600 ) ; // memulakan komunikasi bersiri di 9600 kadar baud
}

gelung kosong ( ) {
int randomValue = rawak ( 0 , 1023 ) ; // menjana nilai rawak antara 0 dan 1023

Bersiri.cetak ( 'Nilai rawak: ' ) ; // mencetak label
Serial.println ( randomValue ) ; // mencetak nilai rawak pada baris baharu

kelewatan ( 2000 ) ; // tunggu untuk 500 milisaat sebelum mencetak semula
}

Kod untuk Serial.println() adalah serupa dengan yang di atas Serial.print() kod. Satu-satunya perbezaan di sini ialah nilai rawak yang dijana dan dicetak dengan pemisah baris yang tiada dalam Serial.print() kod.

Pengeluaran
Semua nilai dicetak dalam baris baharu seperti yang telah kami gunakan Serial.print() bukannya Serial.println() :

Kesimpulan

Komunikasi bersiri adalah aspek penting dalam pengaturcaraan Arduino. The Serial.print() dan Serial.println() fungsi berguna untuk menunjukkan data pada terminal Arduino Serial. Memahami perbezaan antara mereka dan menggunakannya dengan sewajarnya boleh membantu anda menyahpepijat kod anda dan berkomunikasi dengan peranti luaran.