1. Chú ý: Các bạn nên tham khảo Nội quy trước khi viết bài (click vào liên kết bên dưới).
    * Nội quy và Thông báo diễn đàn CNCProVN.com
    * Nếu bạn thấy hứng thú với bài viết. Hãy dùng chức năng Share to facebook để chia sẻ bài viết lên facebook.

          
Trang 2 của 2 Đầu tiênĐầu tiên 12
Kết quả 21 đến 30 của 30

Chủ đề: CKD - Hiện thị chữ lớn trên text LCD 04x20 với Arduino UNO

  1. #21
    Thợ bậc 7
    Ngày tham gia
    Feb 2016
    Đang ở
    Cần Thơ
    Bài viết
    1,119
    Cám ơn
    107
    Được cám ơn 257 lần
           ở 166 bài viết
    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

  2. #22
    Thợ bậc 7
    Ngày tham gia
    Jun 2014
    Bài viết
    946
    Cám ơn
    484
    Được cám ơn 190 lần
           ở 122 bài viết
    đề nghị cụ thay luôn 4 con ốc giữ LCD cho đẹp ạ
    Đỉnh cao của DIY là mua đồ hãng

  3. #23
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Trích dẫn Gửi bởi h-d Xem bài viết
    đề nghị cụ thay luôn 4 con ốc giữ LCD cho đẹp ạ
    Do CT không tìm được ốc lục giác inox đẹp mà nhỏ cho nó, nên dùng tạm. Là phiên bản thử nghiệm nên tạm chấp nhận vậy.

    Lên đèn
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	2016-10-20 12.10.37.jpg 
Views:	0 
Size:	340.8 KB 
ID:	26465

    Cho nó vào cái box cũng thấy gúm. Đẹp mỗi cái connector .
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	2016-10-20 12.11.48.jpg 
Views:	0 
Size:	444.0 KB 
ID:	26466
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  4. #24
    Thợ bậc 6
    Ngày tham gia
    Mar 2015
    Bài viết
    394
    Cám ơn
    207
    Được cám ơn 222 lần
           ở 108 bài viết
    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

  5. #25
    Thợ bậc 7
    Ngày tham gia
    Feb 2016
    Đang ở
    Cần Thơ
    Bài viết
    1,119
    Cám ơn
    107
    Được cám ơn 257 lần
           ở 166 bài viết
    Trích dẫn Gửi bởi secondhand Xem bài viết
    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
    Bên ct cũng có đầy đó bác, đầu tròn đầu bẹp đều có. Chợ sắt An Lạc
    Ngu như kiến - đi nghiên cứu
    Mail: khangscc@gmail.com - Zalo 0907579870

  6. #26
    Kem hảo hạng solero's Avatar
    Ngày tham gia
    Dec 2013
    Bài viết
    2,281
    Cám ơn
    733
    Được cám ơn 1,175 lần
           ở 649 bài viết
    Phay chữ xấu vãi

  7. #27
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    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

  8. #28
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Để 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.
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 01.jpg 
Views:	37 
Size:	58.1 KB 
ID:	65788

    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
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 02.jpg 
Views:	36 
Size:	27.7 KB 
ID:	65789

    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
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 03.jpg 
Views:	36 
Size:	55.5 KB 
ID:	65790

    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.
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 04.jpg 
Views:	36 
Size:	40.8 KB 
ID:	65791

    Tiến hành đánh số cho mấy ô đặc trưng, tạm gọi là ô ký tự BIG font
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 05.jpg 
Views:	35 
Size:	45.5 KB 
ID:	65792
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  9. Thành viên đã cám ơn CKD cho bài viết hữu ích này:


  10. #29
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Ghép các ô đặc trưng vào ô ký tự BIG font

    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 06.jpg 
Views:	34 
Size:	120.8 KB 
ID:	65796

    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 07.jpg 
Views:	34 
Size:	119.5 KB 
ID:	65797

    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
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	BIG font 08.jpg 
Views:	34 
Size:	57.5 KB 
ID:	65798

    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.
    Mã:
    // char 0
      { B00001,
        B00011,
        B00111,
        B01111,
        B11111,
        B00000,
        B00000,
        B00000},
    Lặp lại quá trình trên cho các ô, ta có code
    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

  11. #30
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    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
    Mã:
    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}
    };
    Lý do có 13 dòng vì có thêm 03 ký tự là C, K và D

    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

  12. Có 2 thành viên đã cám ơn CKD cho bài viết hữu ích này:


Trang 2 của 2 Đầu tiênĐầu tiên 12

Các Chủ đề tương tự

  1. Arduino - Máy hiện sóng đơn giản - XOscillo
    Bởi CKD trong diễn đàn Arduino
    Trả lời: 6
    Bài viết cuối: 15-01-2015, 08:40:09 AM
  2. Giúp em hiển thị số đo 2 con chiết áp với pls
    Bởi Tuấn trong diễn đàn Thắc mắc
    Trả lời: 21
    Bài viết cuối: 27-12-2014, 05:25:53 PM
  3. cách phay rãnh bằng dao chữ T trên máy cnc?
    Bởi kametoco trong diễn đàn Thắc mắc
    Trả lời: 18
    Bài viết cuối: 05-06-2014, 12:10:12 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •