資料介紹
描述
與 Arduino Uno 接口 I2C 16x2 LCD
在本文中,我將連接 16x2 I2C LCD 與 Arduino Uno。在我之前的文章中討論了 16x2 LCD 與 Arduino Uno 的接口。區(qū)別在于電線的數(shù)量。我們需要超過 12 根電線。但這里只使用 4 根線。如何 ?!?。。。?!在我使用并行通信方法將 LCD 與 Arduino 連接之前。但現(xiàn)在我正在使用 I2C 通信。
這個怎么運作 ?
這里我使用了我之前文章中相同的 16X2 LCD。但另外將 I2C 模塊連接到 16x2 LCD。它充當 LCD 和 MCU(此處為 Arduino)之間的中介。
在開始之前,您必須了解 I2C 串行接口適配器(I2C 模塊)、 I2C 通信和I2C LCD 的地址
I2C 通信
I2C 是 Inter-IC 的縮寫。它是一種BUS。這是飛利浦半導體設計的。I2C 是一種同步、多從機、多主機分組交換、單端串行總線。IE。多個芯片可以連接到同一總線。I2C 僅使用兩條雙向開集或開漏線,串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL),通過電阻上拉。使用的典型電壓為 +5 V 或 +3.3 V,但允許使用其他電壓的系統(tǒng)。有關 I2C 協(xié)議的更多信息,請單擊此處。
I2C 串行接口適配器
它也被稱為 I2C 模塊。它共有 20 個公插針。16 個引腳面向后側,4 個引腳面向前側。用于連接 16x2 LCD 的 16 個引腳,4 個引腳中的 2 個引腳是 SDA 和 SCL。SDA 是串行數(shù)據(jù)引腳,SCL 是時鐘引腳。其余 2 個引腳用于電源(Vcc 和接地)。I2C 模塊上有一個 POT。我們可以通過旋轉這個 POT 來控制 LCD 顯示屏的對比度。并且模塊上固定有一個跳線。當我們移除跳線時,LCD 顯示屏的背光將熄滅。
I2C LCD地址
在開始之前,我們需要了解 I2C 設備的尋址。每個可以連接到 MCU 的設備都有一個地址。我們需要知道這個地址才能與該特定設備進行通信。
您可以在 I2C 模塊上看到三個焊盤。標記為 A0、A1 和 A2。這是地址選擇器。即,每個焊盤具有一個上部分和一個下部分。如果上藥水與下藥水之間存在連接,則稱為“已連接”,否則稱為“未連接”。當 A0、A1、A2 處于“未連接”狀態(tài)(A0 = 0、A1 = 0、A2 = 0)時,地址將為 0x27。默認情況下,A0、A1、A2 處于“未連接”狀態(tài)。有時默認地址是0x3F。當我們只使用一個 LCD 時,無需更改 I2C 模塊的地址。但是當我們使用多個 LCD 時,需要更改地址。因為兩個或多個不同的設備不能與同一個地址通信。
步驟1
如果您已經(jīng)知道 LCD 的地址,請?zhí)^此步驟 - 1 和步驟 -2
在某些情況下A0、A1、A2處于“未連接”狀態(tài),但地址不是0x27。我們無法與此地址通信。所以我們需要找到那個設備的原始地址。為此,我們需要使用“I2C 掃描儀”代碼運行 Arduino。
I2C 掃描器代碼
I2C Scanner 代碼用于查找 I2C 設備的數(shù)量和 I2C 設備的地址。首先添加包含“Wire.h”庫的頭文件。然后在設置部分,通過“Wire.begin()”開始“Wire”庫。然后通過“Serial.begin()”以 9600 的波特率啟動串行監(jiān)視器。接下來在循環(huán)部分,定義兩個數(shù)據(jù)類型為“byte”的變量,分別命名為“error”和“address”。然后使用名為“Devices”的“Integer (int)”數(shù)據(jù)類型定義另一個變量。并將初始值設置為 0。接下來開始一個 for 循環(huán),最小值為 1,最大值為 127?!暗刂贰庇米餮h(huán)變量。接下來使用函數(shù)“Wire.beginTransmission()”輸入要連接的地址。i2c_scanner 使用“Write. 然后僅當?shù)刂?16 時才將特定地址打印到串行監(jiān)視器。這里我們以十六進制打印地址。打印指令為“Serial.print(address, HEX)”。并計算設備。然后僅當?shù)刂?16 時才將特定地址打印到串行監(jiān)視器。這里我們以十六進制打印地址。打印指令為“Serial.print(address, HEX)”。并計算設備。完整的 I2C 掃描儀代碼如下所示
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int Devices;
Serial.println("Scanning...");
Devices = 0;
for(address = 1; address < 127; 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(" !");
Devices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (Devices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000);
}
將 I2C 掃描儀代碼上傳到 Arduino Uno。
第2步
如果您有 I2C LCD,請?zhí)^此步驟。但如果您有 16x2 LCD 和 I2C 模塊,請參閱將此模塊連接到 LCD 的步驟。
聯(lián)系
首先焊接 I2C 模塊。I2C 模塊上沒有用于連接 16x2 LCD 的標簽。所以在下面給出的圖像的幫助下焊接它
焊接后將 I2C 模塊連接到 Arduino Uno。
Arduino Uno I2C 模塊
模擬引腳 4 - SDA
模擬引腳 5 - SCL
5V - Vcc
地 - 地
將 Arduino 連接到計算機。
接下來從 Arduino IDE 右上角的圖標打開串行監(jiān)視器。并將波特率設置為9600。請確保端口正確。然后您可以在串行監(jiān)視器中看到 LCD 的地址,如下所示
最后我們找到I2C LCD的地址。那是 0x27
步驟 - 3
接下來我將在我們的 I2C LCD 上顯示一個文本。
在此之前需要向 Arduino IDE 添加一個庫。轉到鏈接 并下載庫 Arduino-LiquidCrystal-I2C-library。然后打開 Arduino IDE 并轉到Sketch>Include Library> Add.ZIP Library 。接下來選擇下載的 ZIP 文件并單擊打開。
第4步
接下來創(chuàng)建草圖。首先,我包含標題“Wire.h”。該庫有助于與 I2C 設備進行通信。然后包括“LiquidCrystal_I2C.h”以更好地與顯示器通信。
#include
#include
步驟 - 5
接下來使用函數(shù)“LiquidCrystal_I2C lcd() 設置地址、列數(shù)和行數(shù)。地址為 0x27(使用 I2C Scanner Code 發(fā)現(xiàn))。列數(shù)為 16,行數(shù)為 2。之后,我們可以使用“l(fā)cd”調用顯示器。您也可以將多個 I2C LCD 與 Arduino Uno 一起使用。但為每個顯示器設置不同的地址和變量。
LiquidCrystal_I2C lcd(0x27, 16, 2);
步驟 - 6
接下來對設置部分進行編碼。首先使用函數(shù)“l(fā)cd.begin()”初始化顯示。如果你有另一個顯示器初始化它們。
lcd.begin();
步驟 - 7
接下來使用函數(shù)“l(fā)cd.backlight()”打開背光。
lcd.backlight();
步驟 - 8
接下來使用指令“l(fā)cd.clear()”清除 lcd。然后將光標設置到位置 (4, 0)。
lcd.clear();
lcd.setCursor(4,0);
步驟 - 9
現(xiàn)在 LCD 已準備好打印。光標位于第 4 列(從 0 開始計數(shù))和第 0 行(從 0 開始計數(shù))。然后通過函數(shù)“l(fā)cd.print()”打印消息“Hackster”。
lcd.print("Hackster");
然后將循環(huán)部分留空。
編程完成。將草圖上傳到 Arduino 并在 LCD 上查看消息。 完整的代碼在本文的代碼部分給出。
請不要復制粘貼我的代碼。嘗試逐行理解代碼并創(chuàng)建自己的草圖。
您可以在這里加入我們的電報群或搜索 INNOVATION。對硬件或編程有任何疑問,請隨時在我們的電報群中提問。
跟著我,
聯(lián)系方式:akshayjoseph666@gmail.com
在評論框中分享您的經(jīng)驗和建議。
以前的文章:
與 Arduino Uno 接口 16x2 LCD(并行接口)、非接觸式門鈴、與 Arduino Uno接口藍牙模塊 (HC-05)、自動水龍頭、自動洗手液、與 Arduino Uno 接口超聲波傳感器、與 Arduino Uno 和按鈕控制伺服電機、帶有 Arduino Uno 和 POT 的控制伺服電機,帶有 Arduino Uno 的伺服電機接口,具有保存先前狀態(tài)的紅外控制家用電器,非接觸式洗手定時器
- 使用Arduino和I2C LCD制作帶按鈕的簡單菜單
- 如何在Arduino中使用20x4 I2C字符LCD顯示器
- 帶DHT11和I2C 20x4 LCD的溫度監(jiān)控器
- 帶I2C的Arduino 26x2 LED顯示屏
- 使用Arduino的LCD I2C閃爍文本
- 用Arduino和16x2 LCD顯示器制作倒計時繼電器
- 帶16x2 LCD顯示屏和4x4鍵盤的計算器
- 使用1307 RTC、I2C LCD和Arduino Uno的數(shù)字日歷時鐘
- 在Arduino上使用16x2 LCD
- 如何連接和使用16x2 I2C LCD的教程
- 帶LCD I2C 16x2顯示屏的Arduino DTH22濕度溫度
- 如何在arduino中使用I2c LCD模塊
- I2C LCD 器件通過驅動帶有 I2C 接口的 2 線式 16 字符 LCD 13次下載
- PSoC 4 帶有 I2C 接口的字符 LCD 11次下載
- Arduino uno驅動I2C接口12864LCD屏幕程序及使用手冊 99次下載
- I2C地址跳變問題的調試案例 1116次閱讀
- 什么是I2C協(xié)議? 2122次閱讀
- Linux I2C驅動入門知識科普 1516次閱讀
- I2C內核架構分析 1111次閱讀
- MM32F0140 MCU關于I2C的介紹、配置及實驗 3693次閱讀
- 什么是I2C通信協(xié)議? 7572次閱讀
- i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程 7086次閱讀
- 微雪電子MCP23017 IO擴展模塊16IO口 I2C接口簡介 1.3w次閱讀
- 微雪電子0.96inch OLED (B) 帶SPI/I2C驅動模塊 2687次閱讀
- 基于MCS-51單片機I2C總線接口電路的設計 3245次閱讀
- I2C總線技術在HDTV數(shù)字地面接收機中的應用解析 974次閱讀
- LPC2124開發(fā)板I2C總線接口的應用 1875次閱讀
- i2c總線相關知識 3410次閱讀
- 基于FPGA的I2C SLAVE模式總線的設計方案 1.3w次閱讀
- I2C器件接口IP核的CPLD設計 1136次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多