Hướng Dẫn Kết Nối Module I2C PCF8574 Với Arduino Uno
Có thể bạn quan tâm
Hướng dẫn Sử dụng kết nối Module Lcd I2C -PCF8574 với LCD16X2 trên KitArduino Uno
Hướng dẫn cài đặt và sử dụng Arduino IDE
Mời các bạn xem Tại đây :
Module Lcd I2C -PCF8574
– Điện áp sử dụng : 5v DC
– Giao tiếp : I2C
1 : Biến trở điều chỉnh độ tường phản của màn hình LCD
2 : Đây là khu vực thay đổi địa chỉ I2C , nếu các bạn muốn kết nối nhiều thiết bị trên 1 đường I2C địa chỉ 0x27 ,thì bạn phải thay đổi nó , Mặc định nhà sản xuất là A0,A1,A2 =1 (mức cao) như thế này Module có địa chỉ là 0X27
Các bạn tham khảo bảng sau :
Hoặc bạn có thể Nạp Code Scan địa chỉ bus của Module I2C như sau :
Các bạn nạp code sau vào và bật Serial Monitor lên và sẽ thấy địa chỉ.
// -------------------------------------- // i2c_scanner // // Version 1 // This program (or code that looks like it) // can be found in many places. // For example on the Arduino.cc forum. // The original author is not know. // Version 2, Juni 2012, Using Arduino 1.0.1 // Adapted to be as simple as possible by Arduino.cc user Krodal // Version 3, Feb 26 2013 // V3 by louarnold // Version 4, March 3, 2013, Using Arduino 1.0.3 // by Arduino.cc user Krodal. // Changes by louarnold removed. // Scanning addresses changed from 0...127 to 1...119, // according to the i2c scanner by Nick Gammon // http://www.gammon.com.au/forum/?id=10896 // Version 5, March 28, 2013 // As version 4, but address scans now to 127. // A sensor seems to use address 120. // Version 6, November 27, 2015. // Added waiting for the Leonardo serial communication. // // // This sketch tests the standard 7-bit addresses // Devices with higher bit address might not be seen properly. // #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknown error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); // wait 5 seconds for n }Kết quả là :
Địa chỉ này để các bạn thay thế cho đúng mã địa chỉ ở code phía dưới .
Kết nối Module I2C CF8574 & LCD16x2 & Kit Arduino
Kit Arduino | Module Lcd I2C -PCF8574 |
A4 | SDA |
A5 | SCL |
5V | VCC |
GND | GND |
Các bạn download và add thư viện liquidcrystal-pcf8574-i2c.zip này vào trình Arduino IED
Hướng dẫn add thư viện vào Arduino IDE các ban tham khảo Tại đây :
/////////////////* customchars.ino */////////////////////// #include <Wire.h> #include <LiquidCrystal_I2C.h> uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; uint8_t duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { lcd.init(); // initialize the lcd lcd.backlight(); lcd.createChar(0, bell); lcd.createChar(1, note); lcd.createChar(2, clock); lcd.createChar(3, heart); lcd.createChar(4, duck); lcd.createChar(5, check); lcd.createChar(6, cross); lcd.createChar(7, retarrow); lcd.home(); lcd.print("Hello world..."); lcd.setCursor(0, 1); lcd.print(" i "); lcd.write(3); lcd.print(" arduinos!"); delay(5000); displayKeyCodes(); } // display all keycodes void displayKeyCodes(void) { uint8_t i = 0; while (1) { lcd.clear(); lcd.print("Codes 0x"); lcd.print(i, HEX); lcd.print("-0x"); lcd.print(i+16, HEX); lcd.setCursor(0, 1); for (int j=0; j<16; j++) { lcd.write(i+j); } i+=16; delay(4000); } } void loop() { } //////////////////////////////* kết thúc chương trình */////////////////////////
Từ khóa » Thư Viện I2c Cho Arduino
-
LiquidCrystal I2C - Arduino Library List
-
I2C | Cộng đồng Arduino Việt Nam
-
BÀI 6: Hướng Dẫn Cài Thư Viện Vào Arduino IDE, Hổ Trợ Cho Việc Lập ...
-
LiquidCrystal I2C.h No Such File Directory - YouTube
-
Sửa Lỗi (thêm) Thư Viện I2C Trong IDE Arduino - YouTube
-
LiquidCrystal I2C - Arduino Reference
-
Tổng Quan LCD 16×2 Và Giao Tiếp I2C LCD Sử Dụng Arduino
-
Tại Thư Viện I2c Cho Arduino
-
Chuẩn Giao Tiếp I2C Arduino Và Thư Viện Wire.h - OhStem
-
Arduino Pi (test Thư Viện I2C Cho Module BH1750) - MLAB
-
HuanVo/LiquidCrystal_I2C: Thư Viện Cho Led LCD I2C 16x2 - GitHub
-
Lập Trình ESP32 Với Arduino IDE → I2C LCD - Công Nghệ Cho Mọi ...