Khác biệt giữa các bản “Shield LCD Keypad Serial (chipFC)”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Mô tả các chân kết nối)
(Sử dụng)
 
(Không hiển thị 14 phiên bản của 2 người dùng ở giữa)
Dòng 1: Dòng 1:
 
[[Category:Arduino Shield]]
 
[[Category:Arduino Shield]]
 
{{Đang viết}}
 
{{Đang viết}}
 +
[[Hình:ShieldLCD&KeypadTop8x2.jpg|400px|thumb|alt=Shield LCD&keypad|right|Shield LCD&Keypad]]
  
 
== Giới thiệu ==
 
== Giới thiệu ==
Dòng 17: Dòng 18:
  
 
== Đặc điểm ==
 
== Đặ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  
 
* 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
 
* Đ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ó 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
 
* 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
* Thiết kế hỗ trợ bật tắt ánh sáng n 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
 
 
* 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
 
 
 
* nút nhấn đa hướng và một nút đơn được sử dụng đọc 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
 
* Hỗ trợ khe cắm giao tiếp UART và I2C cho những ứng dụng cần thêm
  
Dòng 38: Dòng 30:
 
== Mô tả các chân kết nối ==
 
== Mô tả các chân kết nối ==
  
[[Hình:ShieldLCD&Keypad_Sodochan.png|400px]]
+
[[Hình:ShieldLCD&Keypad_Sodochan.png|x400px]]
[[Hình:ShieldLCD&Keypad_Sodonguyenly.png|400px]]
+
[[Hình:ShieldLCD&Keypad_Sodonguyenly.png|x400px]]
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
Dòng 56: Dòng 48:
  
 
== Sử dụng ==  
 
== 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 một bóng đèn đơn giản như sau  
+
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ó. 
  
[[Hình:ShieldRelay_ketnoiden.jpg|400px]]
+
[[Hình:ShieldLCD&Keypad_ketnoibluetooth.jpg|400px]]
  
Bạn có thể tải về một chương trình mẫu dùng để test shield relay [http://cloud.chipfc.com/File/Download?f=vhflvwgeq4j tại đây]
+
=== 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()''' và '''void cursor()''' để bật tắt gạch chân
 +
* Hàm '''void scrollDisplayLeft()''' và '''void scrollDisplayRight()''' để dịch trái phải mà không thay đỏi RAM
 +
* Hàm '''void leftToRight()''' và '''void rightToLeft()''' để dịch chữ qua trái và phải.
 +
* Hàm '''void autoscroll()''' và '''void noAutoscroll()''' dùng để bật tắt chế độ tự động cuộn
 +
* Hàm '''void backlightOn()''' và '''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 [http://cloud.chipfc.com/File/Download?f=gcnj0usst5r tại đây]
  
Dưới đây là một ví dụ mẫu tự động tắt/mở relay.
 
  
 +
Dưới đây là một ví dụ mẫu để hiện chữ lên LCD
  
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
+
<syntaxhighlight lang="cpp">
|<syntaxhighlight lang="cpp">
 
 
/**
 
/**
  * Tự động bật relay
+
  * Ghi chữ lên LCD
 
  * Sử dụng kết hợp với Chipiuno của chipfc
 
  * Sử dụng kết hợp với Chipiuno của chipfc
 
  *  
 
  *  
Dòng 77: Dòng 90:
 
  */
 
  */
  
 
+
#include <ChipfcShiftLCD.h>
byte relayPin = 3;  //Mô đun relay1 nối với chân 3 của Arduino
+
 
 
+
// initialize the library with the numbers of the interface pins
boolean state = true; //Biến trạng thái cho relay
+
CFC_ShiftLCD lcd(8, 4, 7);  
 
+
 
void setup(){
+
void setup(){  
  pinMode(relayPin,OUTPUT);  //Relay là output
+
    // set up the LCD's number of rows and columns: 
}
+
   lcd.begin(8, 2);  
 
+
   lcd.print("Hello");
void loop(){
+
   // initialize the serial communications:
   digitalWrite(relayPin,LOW);
+
  Serial.begin(9600);  
   delay(1000);
+
}
   digitalWrite(relayPin,HIGH);
+
 
  delay(1000);
+
void loop()  
 +
{
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
 
  
  
Dưới đây là một ví dụ mẫu bật đèn tự động khi trời tối
 
  
  
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
+
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
|<syntaxhighlight lang="cpp">
 
/**
 
* Tự động bật đèn
 
* Sensor module Chipi-Light Sensor, bộ điều khiển đèn là ShieldRelay của chipfc
 
* Sử dụng kết hợp với Chipiuno, Shield Relay và Shield Base của chipfc
 
* Sử dụng mô đun ChipI-relay như một cộng tắc, sử dụng 2 chân COM và NO
 
* Viết bởi: Thophi
 
* Tham khảo tại http://chipfc.com/
 
*/
 
  
byte sensorPin = A0;  //Cảm biến gắn với chân A0 của Arduino
 
byte relayPin = 3;  //relay1 nối với chân 3 của Arduino
 
  
int edge = 500;  //Độ nhạy này do bạn tùy chỉnh
+
<syntaxhighlight lang="cpp">
void setup(){
+
#include <ChipfcShiftLCD.h>
  pinMode(sensorPin,INPUT);  //Nút nhấn là input
+
 
   pinMode(relayPin,OUTPUT); //Loa bíp là output
+
// initialize the library with the numbers of the interface pins
   digitalWrite(relayPin,LOW); //Mặc định là tắt đèn
+
CFC_ShiftLCD lcd(8, 4, 7);
}
+
 
 
+
void setup(){  
void loop(){
+
    // set up the LCD's number of rows and columns: 
   if(analogRead(sensorPin) < edge) digitalWrite(relayPin, HIGH); //Nếu cảm biến đọc về thấp hơn giá trị định trước thì bật đèn
+
   lcd.begin(8, 2);  
  else digitalWrite(relayPin,LOW); //Không thì tắt đèn
+
  // initialize the serial communications:
  delay(3000)//Dừng xử lí trong 3s hoặc hơn
+
   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());
 +
    }
 +
  }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
 
  
 
== Các rắc rối có thể bạn gặp phải ==
 
== Các rắc rối có thể bạn gặp phải ==
  
Kết nối phần cứng chưa đúng ==> kiểm tra và kết nối lại cho đúng, nhớ la relay hoạt động như một công tắc điện nên mắc nối tiếp với thiết bị
+
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 đủ
  
Nguồn cung cấp đủ để kích hoạt relay, nên thay bằng một trong các nguồn chất lượng điện áp khoảng 7.5 - 9V _[http://chipfc.com/nguon Nguồn tham khảo]
+
Chữ hiển thị các kí tự lạ khi ghép với chương trình khác => kiểm tra thể đụng độ phần cứng khi sử dụng các chân SPI hoặc chương trình đụng tới các timer
  
 
== Tham khảo thêm ==
 
== Tham khảo thêm ==
[https://www.youtube.com/watch?v=wWZ6uF1BAH4&list=UUmFxsuR6c4gUeNKHE_ZkWEw Ứng dụng mẫu điều khiển đèn điện qua internet] (có video)
+
[http://chipfc.com/gioi-thieu-arduino-lcd-keypad-shield Bài giới thiệu về Shield LCD&Keypad sử dụng với Arduino]
 +
 
 +
[http://chipfc.com/dong-ho-dung-arduino-va-shield-lcd 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ể làm hàng ngàn ứng dùng khác nữa dùng Arduino điều khiển shield relay này như: điều khiển động cơ, làm xe, điều khiển chốt cửa, điều khiển van bơm nước, điều khiển van khí ...
+
Ngoài ra bạn còn có thể mở rộng ra rất nhiều ứng dụng khác

Bản hiện tại lúc 11:21, ngày 2 tháng 3 năm 2018

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