Giao tiếp thân mạch zagranmama.com là vô cùng quan trọng, vì có không ít dự án phức hợp và câu hỏi lập trình bên trên 1 zagranmama.com là điều không thể. Hôm nay, mình vẫn hướng dẫn chúng ta cách tiếp xúc giữa 2 mạch zagranmama.com ngẫu nhiên bằng việc sử dụng thư viện Serial Command.
Bạn đang xem: Giao tiếp giữa 2 arduino
Chúng ta sẽ thực hiện thư viện Serial Command để xây dựng những "câu lệnh" (command). Bạn download thư viện ấy tại đây. Kế tiếp bạn tạo ra thư mục với tên "Serial Command" trên thư mục libraries. Tiếp đến bạn giải nén file thư viện vừa rồi vào thư mục vừa tạo ra là ok! sau cuối bạn tắt zagranmama.com IDE rồi lật lại zagranmama.com IDE.
Hoặc so với zagranmama.com IDE 1.6.x, bạn cũng có thể thêm thư viện bằng phương pháp như hình dưới. Tiếp nối chọn file zip đã download ở trên là ok.
Click vào ảnh để xem rõ hơn nhé
Ở đây, tớ gồm ý định cần sử dụng zagranmama.com UNO (HOST) nhờ cất hộ lệnh mang lại zagranmama.com Nano (CLIENT) để điều khiển các đèn led (thiết bị ngoại vi). Bạn cần hiểu rằng, có mang HOST cùng CLIENT là vì mình từ bỏ đặt, bởi vậy chúng ta hoàn toàn rất có thể dùng zagranmama.com Nano để điều khiển và tinh chỉnh zagranmama.com UNO hoặc tốt hơn nữa là biến nó thành 2 vps trong một "mạng kín" (nghĩa là 2 con này đang tự can hệ lẫn nhau, mỗi nhỏ vừa là HOST vừa là SLAVE cùng một lúc).
Bạn upload đoạn code sau vào HOST.
void setup() Serial.begin(9600);// các bạn khởi sản xuất một cổng Serial trên baudrate 9600. Ở Client, chúng ta cũng nên mở một cổng Serial thuộc Baudrate cùng với HOSTint Step = 0;void loop() if (Step == 0) Serial.println("LED_RED 1"); // Đèn đỏ sáng. 1 == HIGH else if (Step == 1) Serial.println("LED_RED 0"); // Đèn đỏ tắt . 0 == LOW else if (Step == 2) Serial.println("LED_BLUE 1");// Đèn xanh sáng else if (Step == 3) Serial.println("LED_BLUE 0");// Đèn xanh tắt Step = (Step + 1) % 4; //Step sẽ tuần từ tuần hoàn các giá trị trong vòng từ 0 --> 3 delay(1000);// dừng một giây giữa các lần gửiBạn upload đoạn code sau vào CLIENT
#include // thêm vào sketch thư viện Serial CommandSerialCommand sCmd; // Khai báo biến áp dụng thư viện Serial Commandint red = 2, xanh = 3;void setup() //Khởi tạo ra Serial ngơi nghỉ baudrate 9600 (trùng với HOST) Serial.begin(9600); //pinMode 2 đèn led là output pinMode(red,OUTPUT); pinMode(blue,OUTPUT); // một vài hàm trong tủ sách Serial Command sCmd.addCommand("LED_RED", led_red); // Khi tất cả câu lệnh tên là LED_RED vẫn chạy hàm led_red sCmd.addCommand("LED_BLUE", led_blue); void loop() sCmd.readSerial(); //Bạn không cần phải thêm ngẫu nhiên dòng code làm sao trong hàm loop này cả// hàm led_red sẽ được thực thi khi nhờ cất hộ hàm LED_REDvoid led_red() //Đoạn code này dùng để đọc TỪNG tham số. Những tham số mang định có kiểu tài liệu là "chuỗi" char *arg; arg = sCmd.next(); int value = atoi(arg); // chuyển chuỗi thành số digitalWrite(red,value);// hàm led_blue sẽ được thực thi khi nhờ cất hộ hàm LED_BLUEvoid led_blue() //Đoạn code này dùng làm đọc TỪNG tham số. Những tham số mặc định có kiểu tài liệu là "chuỗi" char *arg; arg = sCmd.next(); int value = atoi(arg); // gửi chuỗi thành số digitalWrite(blue,value);Sau lúc upload 2 đoạn code này thì cứ sau từng một giây thì đèn đỏ sáng rồi tắt kế tiếp là đèn xanh. Lý do như vậy?
Bởi bởi vì cứ sau mỗi một giây thì HOST lại giữ hộ lệnh đến CLIENT. Và tùy ở trong vào câu lệnh CLIENT đang chuyển đào bới các hàm không giống nhau. Vậy như thế nào là lệnh và giải pháp đọc thông số của từng lệnh là như vậy nào?
Serial.print("LED_RED 1 ");
Hãy sáng chế với mô hình HOST --> CLIENT và các bạn sẽ thấy hết sức thú vị đấy. Trong tương lai, mình đang hướng dẫn chúng ta dùng máy tính xách tay để giao tiếp với zagranmama.com (vấn đề này hơi là nâng cao nên chúng ta có thể sẽ hóng khá lâu từ nội dung bài viết này đấy, nhưng mà mình hứa sẽ có
Nào, các bạn hãy thử chế một quy mô HOST / CLIENT CLIENT / HOST xem nào, không cạnh tranh đâu!