Serial.print() so với Serial.println() trong Arduino

Serial Print So Voi Serial Println Trong Arduino



Arduino là một bảng vi điều khiển phổ biến thường được sử dụng cho các dự án DIY, người máy và thiết bị IoT. Một trong những tính năng thiết yếu của Arduino là trao đổi dữ liệu với máy tính thông qua giao tiếp nối tiếp.

Serial.print() Serial.println() là hai trong số các lệnh được sử dụng thường xuyên nhất để giao tiếp nối tiếp trong Arduino. Bài viết này sẽ đề cập đến sự khác biệt giữa Serial.print() Serial.println() và cách chúng ảnh hưởng đến dự án Arduino của bạn.

Mục lục







Giao tiếp nối tiếp là gì

Trước khi chúng ta đi sâu vào sự khác biệt giữa Serial.print() Serial.println() , trước tiên hãy hiểu những gì truyền thông nối tiếp là. Truyền thông nối tiếp là quá trình truyền và nhận dữ liệu. Sử dụng Arduino này có thể truyền từng bit dữ liệu một, với giao thức truyền thông nối tiếp. Trong Arduino, chúng ta sử dụng đối tượng Serial để trao đổi dữ liệu với PC bằng cổng USB.



Truyền thông nối tiếp là điều cần thiết để gỡ lỗi và giám sát hành vi của một dự án Arduino. Bạn có thể sử dụng nó để in các bài đọc cảm biến, mã gỡ lỗi hoặc hiển thị thông báo trên màn hình máy tính.



Serial.print()

Serial.print() là chức năng gửi dữ liệu ra cổng Serial theo dòng liên tục. Nó cho phép bạn gửi dữ liệu dưới dạng chuỗi, ký tự hoặc giá trị số. Ví dụ: mã đã cho sẽ gửi một chuỗi “ Chào thế giới! ” đến cổng nối tiếp Arduino:





nối tiếp.print ( 'Chào thế giới!' ) ;

Serial.print() không thêm bất kỳ ngắt dòng hoặc xuống dòng nào ở cuối dữ liệu, vì vậy dữ liệu được in liên tục trên cùng một dòng.

Serial.println()

Serial.println() tương tự như Serial.print() , nhưng nó thêm một ký tự xuống dòng (\n) ở cuối dữ liệu. Điều này cho chúng ta thấy rằng mỗi khi Serial.println() được gọi, câu lệnh in tiếp theo sẽ bắt đầu trên một dòng mới. Ví dụ: mã đã cho sẽ gửi chuỗi “ Chào thế giới! ” và thêm dấu ngắt dòng:



Nối tiếp.println ( 'Chào thế giới!' ) ;

Điều này sẽ in “ Chào thế giới! ” trên thiết bị đầu cuối nối tiếp của Arduino.

Sự khác biệt giữa Serial.print() và Serial.println()

Sự khác biệt chính giữa Serial.print() Serial.println() đó là Serial.print() gửi dữ liệu trong một luồng liên tục, trong khi Serial.println() gửi dữ liệu có ngắt dòng ở cuối.

Bây giờ chúng tôi sẽ đề cập đến mã ví dụ giải thích hoạt động của cả hai chức năng này.

Serial.print() Ví dụ

Sau đây là mã giải thích việc sử dụng Serial.print() :

thiết lập vô hiệu ( ) {
Nối tiếp.bắt đầu ( 9600 ) ; // khởi tạo giao tiếp nối tiếp tại 9600 tốc độ truyền
}

vòng lặp trống ( ) {
int RandomValue = ngẫu nhiên ( 0 , 1023 ) ; // tạo ra một giá trị ngẫu nhiên giữa 0 1023

nối tiếp.print ( 'Giá trị ngẫu nhiên:' ) ; // in nhãn
nối tiếp.print ( giá trị ngẫu nhiên ) ; // in giá trị ngẫu nhiên trên một dòng mới

trì hoãn ( 2000 ) ; // Chờ đợi 500 mili giây trước khi in lại
}

Mã này khởi tạo giao tiếp nối tiếp với tốc độ truyền 9600 trong hàm setup(). Hàm loop() sau đó tạo ra một giá trị số nguyên ngẫu nhiên trong khoảng từ 0 đến 1023 bằng cách sử dụng hàm random() và lưu trữ giá trị đó trong tên biến giá trị ngẫu nhiên .

Các Serial.print() chức năng sau đó được sử dụng để in nhãn “ Giá trị ngẫu nhiên: ” vào màn hình nối tiếp, theo sau là giá trị ngẫu nhiên thực tế, được in trên cùng một dòng mà không có ký tự dòng mới bằng cách sử dụng Serial.print() .

Các trì hoãn() chức năng được sử dụng để tạm dừng thực hiện vòng lặp trong 2000 mili giây (2 giây).

đầu ra
Ở đầu ra, chúng ta có thể thấy tất cả các giá trị được in trong một dòng mà không có bất kỳ ngắt dòng nào.

Serial.println() Ví dụ

Đoạn mã đã cho thể hiện việc sử dụng Serial.println() chức năng trong Arduino.

thiết lập vô hiệu ( ) {
Nối tiếp.bắt đầu ( 9600 ) ; // khởi tạo giao tiếp nối tiếp tại 9600 tốc độ truyền
}

vòng lặp trống ( ) {
int RandomValue = ngẫu nhiên ( 0 , 1023 ) ; // tạo ra một giá trị ngẫu nhiên giữa 0 1023

Nối tiếp.print ( 'Giá trị ngẫu nhiên:' ) ; // in nhãn
Nối tiếp.println ( giá trị ngẫu nhiên ) ; // in giá trị ngẫu nhiên trên một dòng mới

trì hoãn ( 2000 ) ; // Chờ đợi 500 mili giây trước khi in lại
}

Mã cho Serial.println() tương tự như trên Serial.print() mã số. Sự khác biệt duy nhất ở đây là các giá trị Ngẫu nhiên được tạo và in với dấu ngắt dòng bị thiếu trong Serial.print() mã số.

đầu ra
Tất cả các giá trị được in trong một dòng mới như chúng tôi đã sử dụng Serial.print() thay vì Serial.println() :

Phần kết luận

Truyền thông nối tiếp là một khía cạnh thiết yếu của lập trình Arduino. Các Serial.print() Serial.println() các chức năng hữu ích để hiển thị dữ liệu trên thiết bị đầu cuối Nối tiếp Arduino. Hiểu sự khác biệt giữa chúng và sử dụng chúng một cách thích hợp có thể giúp bạn gỡ lỗi mã của mình và giao tiếp với các thiết bị bên ngoài.