Arduino Nano 驅動OLED滾動顯示

儘管Uno R3開發板是Arduino家族中入門級別的首選,但無奈它的體積實在有些大,我們實際中很多設計都需要考慮外形結構,小巧便捷而又功能齊全的Arduino Nano開發板就脫穎而出了。本篇我們使用Arduino Nano開發板來驅動0.91寸OLED滾動顯示。

1. Arduino Nano開發板

Arduino Nano開發板是基於ATmega328的小巧且完整的Arduino系列開發板,兼容Arduino程序,你可以在官網找到它的詳細資料。

它的主要特點如下:

  • 微控制器:ATmega328
  • 工作電壓:5V
  • Flash:32KB,其中2KB用於引導程序
  • SRAM:2KB
  • 時鐘速度:16M
  • 模擬輸入引腳:8個
  • EEPROM:1KB
  • IO引腳電流:40mA
  • 數字IO:22個(其中6個是PWM)

Arduino Nano

2. 0.91寸OLED

前面的章節中已經對0.96寸OLED進行了講解,本篇我們使用0.91寸OLED屏,也是IIC通訊方式。其驅動芯片跟0.96寸OLED屏一樣,都是SSD1306,區別在於0.96寸OLED爲128x64個像素點,而0.91寸OLED則有128x32個像素點。

0.91寸OLED

3. 實驗材料

  • Naon開發板
  • 配套USB數據線
  • 0.91寸OLED屏
  • 杜邦線

4. 實驗步驟

1. 根據原理圖搭建電路圖。

OLED屏的VCC、GND分別連接Nano開發板的3.3V、GND。OLED屏的SDA、SCL分別連接開發板的A4、A5引腳。

實驗原理圖如下圖所示:

實驗原理圖

實物連接圖如下圖所示:

實物連接圖

2. 新建sketch,拷貝如下代碼替換自動生成的代碼並進行保存。

/*
   0.91OLED滾動顯示
*/
#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);//開像素點發光
  display.clearDisplay();//清屏

  display.setTextSize(2); //設置字體大小
  display.setCursor(0, 8);//設置顯示位置
  display.println("TonyCode");
  display.display(); // 開顯示
}

void loop() {
  display.startscrollright(0x00, 0x0F);
  delay(5000);
  display.stopscroll();
  display.startscrollleft(0x00, 0x0F);
  delay(1000);
  display.stopscroll();
}

3. 連接開發板,設置好對應端口號和開發板類型,進行程序下載。

程序下載

值得注意的是,某寶買到的Nano開發板,開發板及處理器按下圖選擇,起碼我手中的是這樣的,我試着將處理器選擇ATmage328P,結果未能成功下載,而選擇帶有Old Bootloader的則正常下載。

類型

5. 實驗現象

程序中使用了OLED驅動庫的左移和右移函數,開啓移動後進行延時操作,顯示內容進行滾動,直到調用停止滾動函數。

實驗現象


關注公衆號「TonyCode」,更多精彩內容分享。
回覆「1024」獲取1000G學習資料。
個人博客
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章