IOT

STONE nối tiếp HMI Arduino trình diễn khả năng học chữ sớm

Sử dụng Kiểm soát đồ họa cơ bản của màn hình nối tiếp STONE, bạn có thể vẽ đường thẳng, hình tam giác, đa giác, hình chữ nhật, hình vuông, hình tròn, vòng cung, tô màu, cắt và dán, v.v.

Thiết kế của một máy học sớm sử dụng màn hình cảm ứng nối tiếp STVI056WT-01, để nhận dạng hình dạng bằng cách nhìn vào hình ảnh, nhận dạng từ theo màu sắc và thiết kế một định dạng giải trí để xác định lỗi chính xác, cho điểm hoặc vượt qua cấp độ, để trẻ có thể học cách nhận biết màu sắc, hiểu các hình dạng cơ bản và học các từ tương ứng một cách thoải mái và vui tươi.

Bản trình bày video chính thức không cung cấp hiệu ứng thực tế của điều khiển đồ họa Cơ bản, vì vậy bản trình diễn này sẽ bổ sung cho nó. Các hướng dẫn vẽ được truyền qua giao tiếp giữa bảng điều khiển arduino Màn hình nối tiếp STONEn.

Ngoài ra, bản ghi chú này không bao gồm đầy đủ nội dung chức năng của Điều khiển đồ họa cơ bản, chỉ có các chức năng sử dụng trong việc sử dụng công phu, ghi lại được kiểm tra trên máy OK, bạn có thể trực tiếp tải về chạy demo.

Môi trường phần cứng cho bản demo được hiển thị trong Hình 1, Hình 2 và Hình 3.

STONE chính thức đi kèm với 2 bảng mạch, trong đó bảng vuông là bảng tải USB và bảng dài là bảng giao tiếp USB sang nối tiếp (và nguồn điện DC12V cho màn hình nối tiếp).

(Hình 1: Giao tiếp và kết nối nguồn của màn hình nối tiếp STONE) (Hình 2: Sơ đồ kết nối để tải xuống các tệp điều khiển Đồ họa Cơ bản từ màn hình STONE)

(Hình 3: Kết nối TX, RX, GND giữa bảng giao tiếp màn hình nối tiếp STONE và bảng phát triển arduino)

(Hình 4: Vùng vẽ điều khiển đồ họa cơ bản và địa chỉ biến và các cài đặt tham số khác)

Sau khi chọn điều khiển Basicgraphics trong menu STONE TOOLBox (phần mềm Thiết kế GUI) Cấu hình Biến (D), và thiết lập vùng vẽ và các tham số địa chỉ biến, lệnh 0x82 được sử dụng để ghi vào bộ Địa chỉ bộ nhớ biến (0x1000 được đặt ở đây) Sau khi thiết lập vùng bản vẽ và các tham số địa chỉ biến, lệnh 0x82 được sử dụng để ghi CMD + Data_pack_Num_Max + Dữ liệu vào địa chỉ Bộ nhớ biến đã đặt (trong trường hợp này là 0x1000) để hoàn thành việc thực hiện các chức năng vẽ. Mã chức năng cụ thể được hiển thị trong Hình 6, trong đó có hướng dẫn vẽ đoạn thẳng 0x0002, sử dụng ví dụ sau.

(Hình 5: Định dạng lệnh dữ liệu điều khiển đồ họa cơ bản)

(Hình 6: Hình minh họa các lệnh vẽ đường thẳng và hình chữ nhật để điều khiển đồ họa Cơ bản)

Hướng dẫn vẽ đường thẳng 0x0002, ví dụ về cách sử dụng.

Để nối một đường màu đen từ tọa độ (340, 200) đến tọa độ (585, 200), hướng dẫn là

A5 5A 11 82 10 00 00 02 00 01 00 00 01 54 00 C8 02 49 00 C8

Vẽ ba đường thẳng màu đen đóng thành một tam giác có ba đỉnh tại các tọa độ (200, 200), (300, 200), (250, 100) và hướng dẫn là

A5 5A 19 82 10 00 00 02 00 03 00 00 00 00 8 C00 8 C01 2 00C 8 C00 00 FA 64 00 8 C00 8 CXNUMX

0x1000 ở trên là địa chỉ biến của điều khiển đồ họa Cơ bản, 0x0002 là mã lệnh, 0x0001 và 0x0003 lần lượt là 1 dòng và 3 dòng, 0x0000 là mã màu, giá trị 0000 là màu đen và giá trị ffff là màu trắng sáng. Các tọa độ XY tức thời khác của mỗi điểm.

Ví dụ về cách vẽ hình chữ nhật.

Hình chữ nhật tọa độ đỉnh trên bên trái (340, 237), tọa độ đỉnh dưới bên phải (585, 340) màu đen, lệnh là

A5 5A 11 82 10 00 00 03 00 01 01 54 00 ED 02 49 01 54 00 00

Vẽ đồng thời hai hình chữ nhật (340, 237) - (585, 340), (324, 221) - (601, 356), lệnh là

A5 5A 1B 82 10 00 00 03 00 02 01 54 00 ED 02 49 01 54 00 00 01 44 00 DD 02 59 01 64 FF FF

0x1000 ở trên là địa chỉ biến của điều khiển đồ họa Cơ bản, 0x0003 là mã lệnh hình chữ nhật, 0x0001, 0x0002 là 1 hình chữ nhật, 2 hình chữ nhật, 0x0000, 0xffff là mã màu, giá trị 0000 là màu đen, giá trị của fffff là sáng trắng. Các tọa độ khác là tọa độ XY của đỉnh trên cùng bên trái và đỉnh dưới cùng bên phải của mỗi hình chữ nhật.

(Hình 7: Các lệnh tô hình chữ nhật và vẽ hình tròn để điều khiển đồ họa Cơ bản)

Ví dụ điền hình chữ nhật.

Lệnh điền vào hình chữ nhật màu đen (470, 200) ~ (550, 255) là

A5 5A 11 82 10 00 00 04 00 01 01 D6 00 C8 02 26 00 FF 00 00 00

Ví dụ về cách vẽ đường tròn.

Tâm của hình tròn (470, 200), R = 50 màu đen, hướng dẫn là

A5 5A 0F 82 10 00 00 05 00 01 01 D6 00 C8 00 32 00 00

Để vẽ đồng thời hai đường tròn, tâm A (470, 200) R = 50 và tâm B (256, 200) R = 80, cả hai đều màu đen, lệnh là

A5 5A 17 82 10 00 00 05 00 02 01 D6 00 C8 00 32 00 00 01 00 00 C8 00 50 00 00

(Hình 8: Lệnh Arc để điều khiển đồ họa Cơ bản)

Độ phân giải vòng cung là 0.5 độ, 360 độ tương ứng với 720 và 0 độ theo hướng thẳng đứng lên trên.

Ví dụ về hồ quang.

Cung trên 315 độ để bắt đầu - 45 độ để kết thúc, tâm của hình tròn (300, 200) R = 80, màu đen, lệnh là

A5 5A 13 82 10 00 00 0B 00 01 00 00 01 2C 00 C8 00 50 02 76 00 5A

Về màu sắc.

0x0000 là màu đen 0xffff là màu trắng 0x00ff là màu xanh lam 0xf000 là màu đỏ 0xfd60 là màu cam

0xff60 là màu vàng 0x2f60 là màu xanh lá cây

(Hình 9: Thông số và địa chỉ bảng vẽ giao diện hình dạng điều khiển đồ họa cơ bản)

(Hình 10: Các thông số và địa chỉ bảng vẽ của giao diện màu điều khiển đồ họa Cơ bản)

Theo địa chỉ biến, lệnh tô màu xanh lục cho (10, 80) ~ (630, 400) là

A5 5A 11 82 60 00 00 04 00 01 00 0A 00 50 02 76 01 90 2f 60

Các điểm tương đồng khác, xem mã chương trình để biết thêm chi tiết.

Đoạn mã được minh họa trong video như sau.

/*

frank10

STONE và arduino COMM, đồ họa Cơ bản chơi ở chương trình ..

Bật đèn LED trong một giây, sau đó tắt trong một giây, lặp đi lặp lại.

Mẫu có hai trang. Trang1 là hình dạng, trang2 là corlor!

Mã ví dụ này nằm trong tệp của Frank. 20210625

*/

// Chân 13 có một đèn LED được kết nối trên hầu hết các bảng Arduino.

// đặt tên cho nó:

int led = 13;

int iYePian = 0; // 0x0020 cho Số của YePian!

// int iGongLu = 0; // 0x0180 cho The GongLu!

// int iLiuLiang = 0; // 0x0160 cho LiuLiang bây giờ!

int iJiao = 0; // 0x0260 cho The JieJuJiao!

int iGongLuWater = 0; // 0x0280 cho The Water GongLu! giá trị là 0-50000!

int iLed = 1; // thời gian trễ num.

int iLed2 = 1; // thời gian trễ num. 50ms thực hiện một điểm.

int iLed3 = 0; // thời gian trễ num. 50ms thực hiện một điểm.

int iLed4 = 0; // thời gian trễ num. 50ms thực hiện một điểm.

int iCurve0 = 0; // Giá trị của đường cong0. 50ms thực hiện một điểm.

int iCurve1 = 0; // Giá trị của curve1,. 50ms thực hiện một điểm.

int iFlag0 = 1; // Cờ của đường cong0 + hoặc -; .1 tăng, 0 giảm.

int iFlag1 = 1; // Cờ của đường cong1 + hoặc -; .1 tăng, 0 giảm.

int iNum = 0; // đọc trong char num.

int iNum2 = 0; // đọc trong char num2 cho ShuiDianZhan!

// int iPower = 2; // tượng phím 0x0009

// int iMode = 2; // tượng phím 0x000A

int iPowerWater = 2; // tượng phím 0x0039

// quy trình thiết lập chạy một lần khi bạn nhấn đặt lại:

void setup () {

// khởi tạo chân số dưới dạng đầu ra.

pinMode (led, OUTPUT);

Serial.begin (115200); // Mở chức năng giao tiếp nối tiếp và đợi cổng nối tiếp mở

trong khi (! nối tiếp) {

; // đợi cổng nối tiếp kết nối. Chỉ cần cho Leonardo

}

}

// thói quen lặp đi lặp lại mãi mãi:

void loop () {

int inChar;

/ * ——————————————————————————- * /

nếu (iLed == 800) {

// ——- đọc giá trị 0x0039 ———-

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x04); // chiều dài

Serial.write (0x83); // đọc!

Serial.write (0x00); // địa chỉ của khóa Nguồn ShuiDianZhan!

Serial.write (0x39); // địa chỉ của phím nguồn ShuiDianZhan!

Serial.write (0x01); // 0x0039 (phím nguồn)

// ——— Giá trị trả về của STONE sẽ là “A5 5A 06 83 00 39 01 00 01“ ——

}

// Đọc thông tin được gửi bởi cổng nối tiếp:

if (Serial.available ()> 0) {inChar = Serial.read (); }

/*

tiết kiệm một bánh nướng.

bởi vì có thể có khóa đọc và có khóa hoạt động.

chương trình là một HMI mà một khóa đầu vào thực hiện công việc của peplose.

*/

// ————————————————————————————

// —————————- Đọc phím 0x0039 bắt đầu ———————————–

if (inChar == 0x39) {iNum2 = 1; }

if ((inChar == 0x01) && (iNum2 == 1)) {iNum2 = 2; }

if ((inChar == 0x00) && (iNum2 == 2)) {iNum2 = 3; }

if ((inChar == 0x01) && (iNum2 == 3)) {

iNum2 = 0;

if (iPowerWater! = 1) {

iPowerWater = 1; // BẬT nguồn!

iJiao = 0;

iGongLuWater = 0;

}

}

if ((inChar == 0x02) && (iNum2 == 3)) {

iNum2 = 0;

iPowerWater = 2; //tắt nguồn!

}

// —————— Phím 0x0039 đọc ok! iPowerWater ok! —————————-

// ————————————————————————————

độ trễ (1);

iLed + = 1;

iLed2 + = 1; // 50ms thực hiện một điểm.

// ——————————————————————————————–

// ——————————— 50ms bắt đầu một điểm ————————————–

nếu (iLed2 == 50) {

iLed2 = 1;

iLed4 + = 1; // 50ms thực hiện một điểm.

if (iFlag0 == 1) {

iCurve0 + = 1; // 50ms thực hiện một điểm.

if (iCurve0> = 150) {

iFlag0 = 0; // iCurve0 quay xuống !.

}

}

if (iFlag0 == 0) {

iCurve0 - = 1; // 50ms thực hiện một điểm.

if (iCurve0 <= 1) {

iFlag0 = 1; // iCurve0 bật lên !.

}

}

if (iFlag1 == 1) {

if (iLed4> = 3) {

iCurve1 + = 1; // 50ms thực hiện một điểm.

iLed4 = 0;

}

if (iCurve1> = 50) {

iFlag1 = 0; // iCurve1 quay xuống !.

}

}

if (iFlag1 == 0) {

if (iLed4> = 3) {

iLed4 = 0;

iCurve1 - = 1; // 50ms thực hiện một điểm.

}

if (iCurve1 <= 1) {

iFlag1 = 1; // iCurve1 bật lên !.

}

}

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x06);

Serial.write (0x84); // ghi thành đường cong!

Serial.write (0x03); // Đường cong,

Serial.write (iCurve0); // N = 1,

Serial.write (0x00);

Serial.write (iCurve1);

Serial.write (0x00);

}

// ——————————- 50ms kết thúc điểm —————————————

// ——————————————————————————————-

nếu (iLed == 500) {

digitalWrite (dẫn đầu, CAO); // bật đèn LED (CAO là mức điện áp)

// delay (500); // đợi trong giây lát, Phạm vi: 200-2000

}

if (iLed> = 1000) {

digitalWrite (dẫn đầu, THẤP); // tắt đèn LED bằng cách đặt điện áp THẤP

// delay (500); // đợi trong giây lát, phạm vi: 200-2000

iLed = 1;

if (iNum <= 6) iNum + = 1; // biến hình!

if (iNum == 6) iNum = 0; // biến hình!

// ————————————– Màu đỏ bắt đầu —————————————–

if (iNum == 1) {// hình tam giác! và đỏ!

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x19);

Serial.write (0x82);

Serial.write (0x10); // addressH của đồ họa Cơ bản

Serial.write (0x00); // addressL của đồ họa Cơ bản

Serial.write (0x00); // Do dòng CMD

Serial.write (0x02); // Do dòng CMD

Serial.write (0x00); // số của dòng

Serial.write (0x03); // Số của dòng.

Serial.write (0x00); // colorH đen

Serial.write (0x00); // colorL

Serial.write (0x00); // pointX1H

Serial.write (0xc8); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0xc8); // pointY1L

Serial.write (0x01); // pointX2H

Serial.write (0x2C); // pointX2L.

Serial.write (0x00); // pointY2H

Serial.write (0xC8); // pointY2L

Serial.write (0x00); // pointX3H

Serial.write (0xFA); // pointX3L

Serial.write (0x00); // pointY3H

Serial.write (0x64); // pointY3L

Serial.write (0x00); // pointX1H

Serial.write (0xc8); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0xc8); // pointY1L

//lấp đầy--

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x60); // addressH của Trang đồ họa cơ bản2

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe2

Serial.write (0x00); // Do Fill hình chữ nhật CMD

Serial.write (0x04); // Do Fill hình chữ nhật CMD

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x00); // pointX1H

Serial.write (0x0A); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x50); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x76); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x90); // pointY2L

Serial.write (0xF0); // Màu đỏH

Serial.write (0x00); // Màu đỏL

}

// ————————————– Màu đỏ đã hết —————————————–

// ————————————– Màu vàng và vòng cung bắt đầu —————————————–

if (iNum == 2) {// vòng cung! và màu vàng!

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x13);

Serial.write (0x82);

Serial.write (0x10); // addressH của Trang đồ họa cơ bản1

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe1

Serial.write (0x00); // Thực hiện cung cấp CMD

Serial.write (0x0B); // Thực hiện cung cấp CMD

Serial.write (0x00); // số cung

Serial.write (0x01); // Số cung.

Serial.write (0x00); // colorH đen

Serial.write (0x00); // colorL trống

Serial.write (0x01); // tâm của vòng tròn XH

Serial.write (0x2c); // centel của vòng tròn XL

Serial.write (0x00); // tâm của vòng tròn YH

Serial.write (0xc8); // tâm của vòng tròn YL

Serial.write (0x00); // RH

Serial.write (0x50); // RL.

Serial.write (0x02); // Angle1H

Serial.write (0x76); // Angle1L

Serial.write (0x00); // Angle2H

Serial.write (0x5A); // Angle2L

//lấp đầy--

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x60); // addressH của Trang đồ họa cơ bản2

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe2

Serial.write (0x00); // Do Fill hình chữ nhật CMD

Serial.write (0x04); // Do Fill hình chữ nhật CMD

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x00); // pointX1H

Serial.write (0x0A); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x50); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x76); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x90); // pointY2L

Serial.write (0xFF); // Màu vàngH

Serial.write (0x60); // Màu vàngL

}

// ————————————– Màu vàng và vòng cung kết thúc —————————————–

// ————————————– Màu xanh lá cây và hình chữ nhật bắt đầu —————————————–

if (iNum == 3) {// hình chữ nhật! Và xanh lá cây!

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x10); // addressH của Trang đồ họa cơ bản1

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe1

Serial.write (0x00); // Làm CMD hình chữ nhật

Serial.write (0x03); // Làm CMD hình chữ nhật

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x01); // pointX1H

Serial.write (0x54); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0xED); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x49); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x54); // pointY2L

Serial.write (0x00); // colorH đen

Serial.write (0x00); // colorL trống

//lấp đầy--

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x60); // addressH của Trang đồ họa cơ bản2

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe2

Serial.write (0x00); // Do Fill hình chữ nhật CMD

Serial.write (0x04); // Do Fill hình chữ nhật CMD

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x00); // pointX1H

Serial.write (0x0A); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x50); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x76); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x90); // pointY2L

Serial.write (0x2F); // Màu xanh lụcH

Serial.write (0x60); // Màu xanh lục

}

// ————————————– Màu xanh lá cây và hình chữ nhật đã kết thúc —————————————–

// ————————————– Quả cam và hình vuông bắt đầu —————————————–

if (iNum == 4) {// hình vuông! và màu cam!

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x10); // addressH của Trang đồ họa cơ bản1

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe1

Serial.write (0x00); // Làm CMD hình chữ nhật

Serial.write (0x03); // Làm CMD hình chữ nhật

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x01); // pointX1H

Serial.write (0x54); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x91); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x49); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x86); // pointY2L

Serial.write (0x00); // colorH đen

Serial.write (0x00); // colorL trống

//lấp đầy--

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x60); // addressH của Trang đồ họa cơ bản2

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe2

Serial.write (0x00); // Do Fill hình chữ nhật CMD

Serial.write (0x04); // Do Fill hình chữ nhật CMD

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x00); // pointX1H

Serial.write (0x0A); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x50); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x76); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x90); // pointY2L

Serial.write (0xFD); // màu camH

Serial.write (0x60); // màu camL

}

// ————————————– Quả cam và hình vuông là hết —————————————–

// ————————————– Màu xanh lam và vòng tròn bắt đầu —————————————–

if (iNum == 5) {// vòng tròn! và màu xanh!

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x0F);

Serial.write (0x82);

Serial.write (0x10); // addressH của Trang đồ họa cơ bản1

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe1

Serial.write (0x00); // Do vòng tròn CMD

Serial.write (0x05); // Do vòng tròn CMD

Serial.write (0x00); // số của vòng tròn

Serial.write (0x01); // Số lượng của vòng tròn

Serial.write (0x01); // tâm của vòng tròn XH

Serial.write (0xD6); // centel của vòng tròn XL

Serial.write (0x00); // tâm của vòng tròn YH

Serial.write (0xc8); // tâm của vòng tròn YL

Serial.write (0x00); // RH

Serial.write (0x32); // RL.

Serial.write (0x00); // colorH đen

Serial.write (0x00); // colorL trống

//lấp đầy--

Serial.write (0xA5); // ”A5 ″ là 165

Serial.write (0x5A); // "5A" là 90

Serial.write (0x11);

Serial.write (0x82);

Serial.write (0x60); // addressH của Trang đồ họa cơ bản2

Serial.write (0x00); // addressL của Đồ họa cơ bản pabe2

Serial.write (0x00); // Do Fill hình chữ nhật CMD

Serial.write (0x04); // Do Fill hình chữ nhật CMD

Serial.write (0x00); // số của hình chữ nhật

Serial.write (0x01); // Số của hình chữ nhật

Serial.write (0x00); // pointX1H

Serial.write (0x0A); // pointX1L

Serial.write (0x00); // pointY1H

Serial.write (0x50); // pointY1L

Serial.write (0x02); // pointX2H

Serial.write (0x76); // pointX2L.

Serial.write (0x01); // pointY2H

Serial.write (0x90); // pointY2L

Serial.write (0x00); // màu xanh lamH

Serial.write (0xFF); // màu xanh lam

}

// ————————————– Màu xanh lam và vòng tròn kết thúc —————————————–

Cuối cùng là gỡ lỗi trực tuyến.

STONE TOOLBox (phần mềm GUI Design) sẽ chỉnh sửa tải file màn hình, upload file mã arduino, kết nối nguồn điện, giao tiếp, bật nguồn để quan sát hình vẽ và chuyển màu, đạt hiệu quả như mong muốn.

Đoạn mã được minh họa trong video như sau.

(cố gắng điều chỉnh trực tuyến)

Nguồn: Plato Data Intelligence