Skip to content

10809104/arduino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino UNO 專案 - 2.66′′ e-Paper Module (G) 與 RFID RC522 模組通訊

本專案結合 Arduino UNO、電子紙 (e-Paper) 與 RFID 模組,實現數據讀取與顯示,並計劃與其他設備進行 UART 通訊。專案提供完整的硬體接線圖與數據收發範例,幫助使用者直觀了解操作流程。

目錄

專案簡介

本專案結合電子紙與 RFID 模組,可透過 Arduino UNO 讀取 RFID 標籤資料同時操作電子紙。還可與其他設備進行 UART 通訊,並透過第 5 腳接收資料,實現更複雜的功能。專案提供詳細的硬體接線圖與數據收發範例,幫助使用者深入理解整體系統運作。

實體接線圖

以下是硬體接線圖,顯示了電子紙、RFID 模組與 Arduino UNO 的連接方式:

實體接線圖

實際收發圖

此圖顯示了在實際運行中電子紙與 RFID 模組的數據收發過程:

實際收發圖

硬體說明

電子紙 (e-Paper)

  • 型號:2.66 吋電子紙模組 (G),解析度 360x184 (height * width)
  • 功能:顯示靜態圖片,具有低功耗特性,適合長時間顯示固定資訊。
  • 通訊接口:透過 SPI 與 Arduino UNO 進行數據傳輸。
  • 詳細資料官方文檔

RFID 模組

  • 功能:讀取 RFID 標籤,實現近距離無線識別。
  • 通訊接口:通過 SPI 與 Arduino UNO 連接。

UART (軟體模擬)

  • 用途:利用 UART 進行數據傳輸,實現與其他設備的通訊。

接線對照表

電子紙 (e-Paper) 與 Arduino UNO

e-Paper Arduino UNO
VCC 5V
GND GND
DIN (MOSI) D11
CLK (SCK) D13
CS D10
DC D9
RST D8
BUSY D7
PWR D6

RFID 與 Arduino UNO

RFID Arduino UNO
SDA (SS/CS) D3
SCK D13
MOSI D11
MISO D12
IRQ (未使用)
RST D2
GND GND
3.3V 3.3V

UART (軟體模擬) 與 Arduino UNO

UART (軟體模擬) Arduino UNO
RX D4
TX D5

使用指南

CS (Chip Select) 的原理

在 SPI 通訊中,CS (Chip Select) 是用於選擇通訊目標裝置的控制信號。在多裝置共享 SPI 線路時,必須正確操作 CS 腳位以避免通訊衝突:

  • CS 拉低/0 (LOW):選中該裝置,開始數據傳輸。
  • CS 拉高/1 (HIGH):取消選中該裝置,該裝置將忽略 SPI 線上的數據。

ver1 與 ver2 之間的差異

此專案有兩個版本,ver1 和 ver2 之間的差異主要在於程式碼與架構:

  • ver1:較為簡單的程式結構,較適合入門學習,控制電子紙和 RFID 模組的方式較為直接,主要用於顯示靜態圖片和資料。此版本較為簡單,專注於固定內容的顯示,適合初學者使用。
  • ver2:進一步擴展了顯示功能,支援顯示變數文字。這意味著用戶可以顯示動態內容或來自感測器的數據。不過,由於 Arduino UNO 的記憶體限制,該版本最多只能顯示 24 個字元。因此,若需要顯示更多文字,則可能需要升級硬體或進行優化。

電子紙ver2字元輸出程式邏輯

  1. 先使用 malloc 動態分配記憶體,建立一個空白圖片。
  2. 透過函數逐個讀取輸入字元,並利用字型對應表 (table) 查找對應的像素點。
  3. 將字元的像素點繪製到這張圖片中。
  4. 使用顯示函數將生成的圖片輸出至電子紙。

必需的 Arduino 庫

以下是本專案所需的主要庫:

  • SPI:內建庫,用於 SPI 通訊。
  • GxEPD2 或 GxEPD:用於控制電子紙顯示,根據具體型號選擇合適的庫。
  • MFRC522:用於操作 RFID 模組。
  • SoftwareSerial:用於模擬額外的 UART 通訊,可擴展串口數量。請注意,SoftwareSerial 庫的波特率受到限制,通常穩定工作波特率在 9600 到 19200 之間。

如何開始

硬體連接

根據接線對照表,將電子紙、RFID 模組和 UART 模組正確連接到 Arduino UNO。您可以參考下面的 接線對照表 來進行連接。

確認您的硬體接線無誤後,您可以開始進行程式設置。

軟體設定

  1. 下載並安裝 Arduino IDE

  2. 下載或克隆專案

    • 克隆此專案至您的本地機器:
      git clone https://github.com/10809104/arduino.git
  3. 安裝所需庫

    • 打開 Arduino IDE,選擇「工具」->「庫管理員」,搜尋並安裝以下庫:
      • SPI:內建庫,負責與 SPI 設備的通訊。
      • GxEPD2GxEPD:用於控制電子紙顯示。
      • MFRC522:用於操作 RFID 模組。
      • SoftwareSerial:用於模擬 UART 通訊。
  4. 配置 Arduino IDE

    • 在 Arduino IDE 中選擇您的開發板為 Arduino UNO 並選擇正確的連接埠。
  5. 編譯並上傳程式

    • 打開專案中的主程式碼文件(例如 arduino.ino)。
    • 按下「編譯」按鈕,檢查程式碼是否能正常編譯。
    • 按下「上傳」按鈕將程式碼上傳至 Arduino UNO。
  6. 測試與運行

    • 開啟 Arduino IDE 中的「序列監控器」,檢查數據是否能夠正確傳輸。
    • 測試 RFID 模組是否能正確讀取標籤。
    • 確保電子紙顯示正常:
      • 確認電子紙是否能正確顯示圖片或文字。若是顯示文字,請檢查是否顯示了預期的內容。根據程式碼的設定,電子紙應該會顯示自訂內容
      • 喚醒電子紙:輸入 init!
      • 進入休眠模式:輸入 sleep!
      • 清除畫面:輸入 clear!
      • 顯示 Logo 畫面:輸入 display!
      • 讀取 RFID 標籤:輸入 rfid! (接著可刷卡或輸入其他指令)。
      • 顯示變數內容:輸入任何字串,電子紙將顯示該內容(僅限ver2)。
      • 另外,可透過 Arduino 的第 4 腳位接收 UART 訊號,來控制電子紙的顯示內容。
      • 如果顯示的內容有錯誤,檢查程式碼中與電子紙顯示相關的部分,並確保連接正確無誤。
      • 由於電子紙是靜態顯示裝置,因此需要較長時間才能更新顯示內容,請耐心等待。

問題回報與貢獻

如果您在使用過程中遇到問題或有任何建議,請使用 GitHub Issues 提出您的問題。若希望為此專案貢獻程式碼,請遵循以下流程:

  1. Fork 本專案:將專案 Fork 到您的 GitHub 帳戶。
  2. 創建新分支:從 main 分支創建新分支:
    git checkout -b feature-name
    

常見問題

  1. 電子紙無法顯示內容,該如何處理?

    • 確認電子紙是否正確接線,並且供電穩定。電子紙顯示更新需要一些時間,請確保等待足夠長的時間。
    • 檢查程式碼中是否正確設定了顯示參數,並確認使用的電子紙庫版本是否與您的硬體相容。
  2. RFID 標籤無法被讀取,應該如何排查問題?

    • 確保 RFID 模組與 Arduino 的連接正確。特別是 SDA、SCK、MOSI、MISO、GND、RST 等腳位。
    • 檢查 RFID 標籤是否損壞,並測試其他標籤來排查是否為標籤問題。
  3. 如何提高 UART 通訊的穩定性?

    • 當使用 SoftwareSerial 進行 UART 通訊時,建議將波特率設置在 9600 或 19200,這是該庫穩定運行的範圍。
  4. 電子紙顯示一直處於 Busy 狀態,無法更新顯示,該如何處理?

    • 確認 BUSY 腳位是否正確連接並無接觸不良。如果信號線有問題,模組會誤判為處於忙碌狀態。
    • 如果在程式中設置了過於頻繁的顯示更新(例如多次刷新),可能會導致電子紙無法完成上一輪顯示更新,進而保持在 Busy 狀態。請減少顯示更新的頻率,或檢查是否有不必要的更新。
  5. 記憶體不足

    • 在 Arduino 中,F() 宏可以將字串常數存放在 Flash 記憶體中,而不是佔用有限的 RAM 記憶體。這樣可以有效減少 RAM 的使用,尤其是在資源有限的裝置上。
    • 檢查內存使用情況
  6. 可以顯示圖片又顯示文字嗎?

    • 這個當然沒問題!您可以在電子紙上同時顯示圖片和文字。不過,目前的範例並沒有提供直接的函數來同時顯示圖片與文字,因此您需要根據專案中的 display_part 函數進行自訂開發。
    • 可以考慮設計一個新的函數來實現同時顯示圖片和文字的需求。
    • 目前這部分需要使用者自行修改程式碼並整合所需的顯示功能。別擔心,這不是太難的工作,並且會讓您對顯示控制有更多的了解!若有需要也不是不能call我......我累了,(X)

授權協議

本專案遵循 MIT 授權條款,您可以自由使用、修改並分享本專案。請確保在使用或分發本專案時遵循該協議。


2025 © Arduino UNO 專案 - 2.66′′ e-Paper Module (G) 與 RFID RC522 模組通訊

About

第一次使用arduino就弄了UART, RFID, e-paper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published