盡管Uno R3開(kāi)發(fā)板是Arduino家族中入門(mén)級(jí)別的首選,但無(wú)奈它的體積實(shí)在有些大,我們實(shí)際中很多設(shè)計(jì)都需要考慮外形結(jié)構(gòu),小巧便捷而又功能齊全的Arduino Nano開(kāi)發(fā)板就脫穎而出了。本篇我們使用Arduino Nano開(kāi)發(fā)板來(lái)驅(qū)動(dòng)0.91寸OLED滾動(dòng)顯示挤庇。
1. Arduino Nano開(kāi)發(fā)板
Arduino Nano開(kāi)發(fā)板是基于ATmega328的小巧且完整的Arduino系列開(kāi)發(fā)板,兼容Arduino程序贷掖,你可以在官網(wǎng)找到它的詳細(xì)資料嫡秕。
它的主要特點(diǎn)如下:
- 微控制器:ATmega328
- 工作電壓:5V
- Flash:32KB,其中2KB用于引導(dǎo)程序
- SRAM:2KB
- 時(shí)鐘速度:16M
- 模擬輸入引腳:8個(gè)
- EEPROM:1KB
- IO引腳電流:40mA
- 數(shù)字IO:22個(gè)(其中6個(gè)是PWM)
2. 0.91寸OLED
前面的章節(jié)中已經(jīng)對(duì)0.96寸OLED進(jìn)行了講解苹威,本篇我們使用0.91寸OLED屏昆咽,也是IIC通訊方式。其驅(qū)動(dòng)芯片跟0.96寸OLED屏一樣牙甫,都是SSD1306掷酗,區(qū)別在于0.96寸OLED為128x64個(gè)像素點(diǎn),而0.91寸OLED則有128x32個(gè)像素點(diǎn)窟哺。
3. 實(shí)驗(yàn)材料
- Naon開(kāi)發(fā)板
- 配套USB數(shù)據(jù)線
- 0.91寸OLED屏
- 杜邦線
4. 實(shí)驗(yàn)步驟
1. 根據(jù)原理圖搭建電路圖泻轰。
OLED屏的VCC、GND分別連接Nano開(kāi)發(fā)板的3.3V且轨、GND浮声。OLED屏的SDA、SCL分別連接開(kāi)發(fā)板的A4殖告、A5引腳阿蝶。
實(shí)驗(yàn)原理圖如下圖所示:
實(shí)物連接圖如下圖所示:
2. 新建sketch,拷貝如下代碼替換自動(dòng)生成的代碼并進(jìn)行保存黄绩。
/*
0.91OLED滾動(dòng)顯示
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(128, 32, &Wire, OLED_RESET);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.setTextColor(WHITE);//開(kāi)像素點(diǎn)發(fā)光
display.clearDisplay();//清屏
display.setTextSize(2); //設(shè)置字體大小
display.setCursor(0, 8);//設(shè)置顯示位置
display.println("TonyCode");
display.display(); // 開(kāi)顯示
}
void loop() {
display.startscrollright(0x00, 0x0F);
delay(5000);
display.stopscroll();
display.startscrollleft(0x00, 0x0F);
delay(1000);
display.stopscroll();
}
3. 連接開(kāi)發(fā)板,設(shè)置好對(duì)應(yīng)端口號(hào)和開(kāi)發(fā)板類(lèi)型玷过,進(jìn)行程序下載爽丹。
值得注意的是,某寶買(mǎi)到的Nano開(kāi)發(fā)板辛蚊,開(kāi)發(fā)板及處理器按下圖選擇粤蝎,起碼我手中的是這樣的,我試著將處理器選擇ATmage328P袋马,結(jié)果未能成功下載初澎,而選擇帶有Old Bootloader的則正常下載。
5. 實(shí)驗(yàn)現(xiàn)象
程序中使用了OLED驅(qū)動(dòng)庫(kù)的左移和右移函數(shù),開(kāi)啟移動(dòng)后進(jìn)行延時(shí)操作碑宴,顯示內(nèi)容進(jìn)行滾動(dòng)软啼,直到調(diào)用停止?jié)L動(dòng)函數(shù)。
關(guān)注公眾號(hào)「TonyCode」延柠,更多精彩內(nèi)容分享祸挪。
個(gè)人博客