đề nghị cụ thay luôn 4 con ốc giữ LCD cho đẹp ạ
hô hô không nói em, em đang có con V bit 60, với 90 luôn á chơi mica cho đẹp đại ca, mới nghiên cứu cách chạy và sơn cái chử đen đỏ như tụi nhật nè
Ngu như kiến - đi nghiên cứu
Mail: khangscc@gmail.com - Zalo 0907579870
đề nghị cụ thay luôn 4 con ốc giữ LCD cho đẹp ạ
Đỉnh cao của DIY là mua đồ hãng
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Lục giác 3 mm inox dài các cở (dân RC mừ) hum nào CKD về ngoại ghé đưa cho
Ngu như kiến - đi nghiên cứu
Mail: khangscc@gmail.com - Zalo 0907579870
Phay chữ xấu vãi
Lâu lắm, nay có việc với món này nên lôi nó lên, làm tươi nó lại xíu.
Sẽ có nhiều bạn thắc mắc, giờ Graphic LCD nó đâu có đắt mà là cái BIG font làm cho cho nó cực.
Đúng là G-LCD nó rẻ hơn sưa rất nhiều. Nhưng sao rẻ bằng text LCD , kế đó là hiển thị trên G-LCD mà muốn nó ngộ nghĩnh thì cũng tốn lắm công sức.
Vậy nên trong dự án này có thể nói, vì mấy lý do sau:
- Rẻ và nhất là đơn giản, dễ thay thế. Vì không dùng nhiều lắm, nhưng thấy hầu hết các text LCD nó giao tiếp giống nhau. G-LCD thì khác, mỗi chip điều khiển có thu viện riêng
- Cần hiển thị ký tự lớn, dễ nhìn từ xa. Nhưng mấy cái LCD thì ngoài loại đặc biệt ra, không có cái nào ký tự nó to cả. Còn nếu dùng LED 7 đoạn thì cũng phức tạp không kém.
- Quan trọng nhất là vì người làm thích làm vậy
Liên quan đến dự án này có mấy phần chính
- 1. Hiển thị LCD, gồm BIG font và các thông số khác.
- 2. Giao tiếp qua Key bad
- 3. Xuất xung cho step.
Tạm thời mình sẽ trao đổi trước vụ BIG font rồi tới key bad. Phần xuất xung thì có thể mình sẽ thử nghiệm 2 giải pháp. Và nếu có sẽ được tách ra thành chủ đề khác cho tiện.
- Xuất xung đơn giản made in "tự tui", ai ai cũng có thể thử và làm được.
- Xuất xung với gia tốc qua thư viện AccelStepper, nhược điểm là tần số bị giới hạn hơi thấp.
Phần xuất xung có gia tốc và tốc độ cao hơn được mình tự viết từ phương trình gia tốc, vẫn chưa được hoàn thiện lắm về tốc độ. Nhưng so với AccelStepper thì đã cải thiện nhiều. Tần số có thể đạt 7kHz (đã dùng thực tế) và 10kHz với bản Arduino MOD, và 12kHz max (chưa thử, lý thuyết là vậy).
Tất nhiên do xuất xung trên MCU 8bit tốc độ rùa bò nên phần jitter là khó mà tránh được. Jitter nặng đến mức nào thì mình chưa có đo.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Để hiển thị được ký tự lớn hơn bình thường trên text LCD, mình sẽ dùng 9 ô text để kết hợp lại thành một ký tự. Mỗi ô text mặc định như text LCD mình dùng là 5x8 pixel.
Hay nói cách khác, mình dùng 9 ô text (3x3 ô (5x8 pixel)) làm 1 ô ký tự.
Tuy nhiên, có một số ký tự sẽ có nét giữa, do đó, để cân đối hơn mình chỉ dùng 3x2.5 ô để dựng ký tự. Tất nhiên, cân đối thế nào là theo chủ quan của người thực hiện.
Nhìn hình bên dưới sẽ dể hình dung hơn.
Trong đó
- phần màu đen thể hiện mỗi ô ký tự trên text LCD, độ phân giải là 5x8 pixel cho mỗi ô.
- phần màu vàng thể hiện ký tự (BIG font). Trong hình là số 1.
Nếu như dùng text LCD 4x20 (4 dòng 20 cột) thì sẽ thế nào?
Mình bố trí được 5 ký tự và 1 dấu thập phân dạng BIG font. Ngoài ra còn trống 1 hàng để có thể hiển thị nội dung như bình thường. Xem hình dưới
Vì mục đích chỉ hiển thị các con số, nên mình tập trung vào các số 0-9, tất nhiên việc xây dựng các ký tự khác cũng dựa trên cùng phương pháp như thế.
Lập bảng ký số như hình, tất nhiên, phải có thêm C, K và D
Sau đó ta tìm điểm chung của các ô, từ bảng ký số như trên thì ta gom lại được mấy ô đặc trưng sau.
Tiến hành đánh số cho mấy ô đặc trưng, tạm gọi là ô ký tự BIG font
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Ghép các ô đặc trưng vào ô ký tự BIG font
Các ký tự, ký số khác cũng làm tương tự.
Để định nghĩa lại các ô đặc trưng (ô ký tự BIG font), để có thể hiển thị trên text LCD thông thường. Quy ước là điểm đen là 1, điểm sáng là 0. Từ đó, như hình ta được
Có code thế này
* Phần code đã được hiệu chỉnh, cho đẹp hơn. Khác với mô tả hình ảnh bên trên.
Lặp lại quá trình trên cho các ô, ta có codeMã:// char 0 { B00001, B00011, B00111, B01111, B11111, B00000, B00000, B00000},
Mã:// Define new Char byte BigFont[8][8] = { // char 0 { B00001, B00011, B00111, B01111, B11111, B00000, B00000, B00000}, // char 1 { B10000, B11000, B11100, B11110, B11111, B00000, B00000, B00000}, // char 2 { B11111, B11111, B11111, B11111, B11111, B00000, B00000, B00000}, // char 3 { B00100, B01110, B01110, B01110, B00100, B00000, B00000, B00000}, // char 4 { B11111, B01111, B00111, B00011, B00001, B00000, B00000, B00000}, // char 5 { B11111, B11110, B11100, B11000, B10000, B00000, B00000, B00000}, // char 6 { B10000, B11000, B11100, B11110, B11111, B11111, B11111, B11111}, // char 7 { B00001, B00011, B00111, B01111, B11111, B11111, B11111, B11111}, };
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Như thế vẫn chưa hiển thị được.
Như trên mới tạo được 10 ô ký tự BIG font. Để hiển thị được ta phải ghép các ô này lại, hiển thị trong 9 ô.
Như những hình minh họa phía trên các bạn để ý phần số màu vàng ở mỗi ô. Đó là thứ tự ô BIG font được sử dụng để hiển thị chữ lớn.
VD, với số 1, ta sẽ ghép các ô
0, 9, 8
8, 9, 8
2, 2, 2
Các ô khác cũng tương tự.
Từ đó lập được ma trân 13 dòng, 9 cột như sau
Lý do có 13 dòng vì có thêm 03 ký tự là C, K và DMã:byte BigChar[13][9] = { // Num 0 {7, 2, 6, 9, 8, 9, 4, 2, 5}, // Num 1 {0, 9, 8, 8, 9, 8, 2, 2, 2}, // Num 2 {0, 2, 6, 7, 2, 5, 2, 2, 2}, // Num 3 {0, 2, 6, 8, 2, 9, 4, 2, 5}, // Num 4 {9, 8, 9, 4, 2, 9, 8, 8, 2}, // Num 5 {9, 2, 2, 4, 2, 6, 4, 2, 5}, // Num 6 {7, 2, 1, 9, 2, 6, 4, 2, 5}, // Num 7 {2, 2, 9, 8, 7, 5, 8, 2, 8}, // Num 8 {7, 2, 6, 9, 2, 9, 4, 2, 5}, // Num 9 {7, 2, 6, 4, 2, 9, 4, 2, 5}, // Char C {7, 2, 1, 9, 8, 8, 4, 2, 5}, // Char D {9, 2, 6, 9, 8, 9, 2, 2, 5}, // Char K {9, 8, 7, 9, 9, 8, 2, 8, 1} };
Tạm thế đã, để test lại code mẫu rồi úp lên.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM