Shield LCD Keypad Serial (chipFC)

Từ ChipFC Wiki
Phiên bản vào lúc 11:21, ngày 2 tháng 3 năm 2018 của BS135 (Thảo luận | đóng góp) (Sử dụng)
(khác) ← Phiên bản cũ | xem phiên bản hiện hành (khác) | Phiên bản mới → (khác)
Bước tới: chuyển hướng, tìm kiếm

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Shield LCD&keypad
Shield LCD&Keypad

Giới thiệu

  • Shield LCD&Keypad là một board mạch shield mở rộng cho Arduino, tương thích hoàn toàn với Arduino và cả ChipPRO, ChipUNO... của ChipFC.
  • Shield LCD&keypad cung cấp cho board Arduino của bạn một màn hình kí tự 16x2 hoặc 8x2, giúp bạn dễ dàng hiển thị dữ liệu, những con số, những dòng chữ thậm chí là cả những kí tự kì dị do chính bạn vẽ nên, có người đã thử làm game đua xe ở trên màn hình này và đã thành công. Ngoài ra còn hệ thống nút nhấn 5 hướng và một nút đơn cho phép bạn tạo đầu vào cho bo, làm tay chơi game ... Nguyên lý điều khiển đơn giản, thư viện code mẫu ví dụ được ChipFC cung cấp sẵn giúp bạn tiếp cận và sử dụng nhanh nhất.
  • Ngoài ra Shield LCD&Keypad còn tích hợp sẵn một đầu nối UART và một đầu nối I2C giúp bạn có thêm lựa chọn để mở rộng ứng dụng của mình.
  • Một số ứng dụng với Shield LCD&Keypad như: hiển thị các giá trị của cảm biến, làm game, ghi chữ tỏ tình, làm bar nhảy theo nhạc, ...

ShieldLCD&KeypadTop8x2.jpg ShieldLCD&KeypadTop16x2.jpg ShieldLCD&KeypadBot.jpg

Đặc điểm

  • Shield hoàn toàn tương thích với Arduino và các loại bo Arduino do chipfc phát triển như ChipiUno, ChipiPro
  • Điện thế hoạt động: 5V, thường lấy nguồn từ bo Arduino
  • Có thể gắn 1 màn hình lcd ký tự 16x2 hoặc 1 lcd ký tự loại 8x2, lcd sẽ được đi kèm vói sản phẩm
  • Có biến trở điều chỉnh độ tương phản cho LCD
  • Thiết kế hỗ trợ bật tắt ánh sáng nền cho màn hình LCD
  • Nút nhấn đa hướng và một nút nhấn đơn được thiết kế tiện tay sử dụng, được đọc chỉ qua một chân analog nên không tốn nhiều chân của Arduino
  • Hỗ trợ khe cắm giao tiếp UART và I2C cho những ứng dụng cần thêm

Shieldlcd&keypadvidu1.jpg

Mô tả các chân kết nối

ShieldLCD&Keypad Sodochan.png ShieldLCD&Keypad Sodonguyenly.png

Kết nối chân tới Arduino
Thứ tự chân Tên gọi Loại Mô tả
1 Key_ADC Input Analog Tín hiệu giá trị của các nút nhấn, được đọc theo chia áp adc
2 LCD_CLK Output Tín hiệu SPI clock điều khiển LCD
3 LCD_SDI Output Tín hiệu SPI data_In điều khiển LCD
4 LCD_LAT Output Tín hiệu SPI Latch điều khiển LCD

Sử dụng

  • Kết nối ShieldLCD với Arduino
  • Gắn LCD vào đúng vị trí, có 2 khe cắm cho 2 lựa chọn là lcd 8x2 hoặc 16x2.
  • Kết nối dây usb và sẵn sàng nạp code.
  • Lưu ý, trong quá trình chạy code mẫu mà không thấy màn hình có động tĩnh thì có thể do độ tương phản của LCD chưa phù hợp, bạn có thể tự điều chỉnh lại bằng biến trở trê Shield.

Cách nối với Shield LCD&Keypad với Arduino đơn giản như sau, mô đun nối dây là bluetooth, không nhất thiết phải có.

ShieldLCD&Keypad ketnoibluetooth.jpg

Một số hàm hay dùng

  • Hàm khởi tạo CFC_ShiftLCD(uint8_t dp, uint8_t cp, uint8_t lp, uint8_t mode = 4) khởi tạo lcd, trong đó

_ dp là chân data, mặc định là 11 hoặc 8 _ cp là chân clock, mặc định là 13 hoặc 4 _ lp là chân latch, mặc định là 9 hoặc 7

  • Hàm void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS) để khai báo loại lcd và bắt đầu, trong đó:

_ cols là số cột của lcd, điền 16 nếu bạn dùng lcd 16x2, điền 8 nếu dùng lcd 8x2 _ rows là số dòng của lcd, thường là 2

  • Hàm void clear() dùng để xóa màn hình và đưa con trỏ về vị trí đầu tiên.
  • Hàm void noDisplay() dùng để tắt màn hình và hàm void display() dùng để bật màn hình.
  • Hàm void noBlink() để con trỏ không nháy và hàm void blink() để con trỏ nháy.
  • Hàm void noCursor()void cursor() để bật tắt gạch chân
  • Hàm void scrollDisplayLeft()void scrollDisplayRight() để dịch trái phải mà không thay đỏi RAM
  • Hàm void leftToRight()void rightToLeft() để dịch chữ qua trái và phải.
  • Hàm void autoscroll()void noAutoscroll() dùng để bật tắt chế độ tự động cuộn
  • Hàm void backlightOn()void backlightOff() dùng để bật tắt đèn nền của LCD.
  • Hàm void createChar(uint8_t, uint8_t[]) để tạo ra kí tự riêng của bạn, thông số đầu là mà của kí tự, thông số sau là mảng data cho kí tự đó.
  • Hàm void setCursor(uint8_t, uint8_t) đưa con trỏ tới tọa độ vừa nhập.

Bạn có thể tải về một chương trình mẫu dùng để test shield lcd tại đây


Dưới đây là một ví dụ mẫu để hiện chữ lên LCD

/**
 * Ghi chữ lên LCD
 * Sử dụng kết hợp với Chipiuno của chipfc
 * 
 * Viết bởi: Thophi
 * Tham khảo tại http://chipfc.com/
 */

#include <ChipfcShiftLCD.h> 
   
// initialize the library with the numbers of the interface pins 
CFC_ShiftLCD lcd(8, 4, 7); 
   
void setup(){ 
    // set up the LCD's number of rows and columns:  
  lcd.begin(8, 2); 
  lcd.print("Hello");
  // initialize the serial communications: 
  Serial.begin(9600); 
} 
   
void loop() 
{ 
}



Dưới đây là một ví dụ mẫu để hiện chữ lên LCD, nội dung hiện được truyền từ cổng Serial


#include <ChipfcShiftLCD.h> 
   
// initialize the library with the numbers of the interface pins 
CFC_ShiftLCD lcd(8, 4, 7); 
   
void setup(){ 
    // set up the LCD's number of rows and columns:  
  lcd.begin(8, 2); 
  // initialize the serial communications: 
  Serial.begin(9600); 
} 
   
void loop() 
{ 
  // when characters arrive over the serial port... 
  if (Serial.available()) { 
    // wait a bit for the entire message to arrive 
    delay(100); 
    // clear the screen 
    lcd.clear(); 
    // read all the available characters 
    while (Serial.available() > 0) { 
      // display each character to the LCD 
      lcd.write(Serial.read()); 
    } 
  } 
}

Các rắc rối có thể bạn gặp phải

Màn hình mờ hoặc chập chờn => kiểm tra lại nguồn cung cấp cho hệ thống mạch, có thể nguồn điện cung cấp không đủ

Chữ hiển thị các kí tự lạ khi ghép với chương trình khác => kiểm tra có thể đụng độ phần cứng khi sử dụng các chân SPI hoặc chương trình có đụng tới các timer

Tham khảo thêm

Bài giới thiệu về Shield LCD&Keypad sử dụng với Arduino

Bài giới thiệu cách làm đồng hồ với Shield CLD&Keypad

Ngoài ra bạn còn có thể mở rộng ra rất nhiều ứng dụng khác