top of page

STEM|Arduino+DS18B20活用Adafruit_SSD1306




製作一個 Arduino 專案,使用溫度感測器(例如DS18B20)作為輸入,並使用OLED顯示器顯示溫度讀數。以下是一個簡單的範例程式碼,使用Arduino和相應的庫(Wire和Adafruit_SSD1306)。

### 所需材料:

1. Arduino板(例如Arduino Uno)

2. 溫度感測器(例如DS18B20)

3. OLED顯示器(使用I2C接口)

4. 電阻(4.7k歐姆)- DS18B20所需

5. 杜邦線


Arduino+DS18B20活用Adafruit_SSD1306

### 接線:

1. 將DS18B20的VCC連接到Arduino的5V腳,GND連接到GND,Data連接到D2(或您選擇的數位腳)。




2. 將OLED顯示器的VCC和GND連接到Arduino的對應腳,SDA和SCL連接到A4和A5。

### 程式碼:

```cpp

#include <Wire.h>

#include <Adafruit_SSD1306.h>

#include <OneWire.h>

#include <DallasTemperature.h>

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64

#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

#define ONE_WIRE_BUS 2 // 溫度感測器連接到數位腳2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

void setup() {

Serial.begin(9600);

// 初始化OLED顯示器

if(!display.begin(SSD1306_I2C_ADDRESS, OLED_RESET)) {

Serial.println(F("SSD1306 allocation failed"));

for(;;);

}

display.display(); // Clear the buffer

delay(2000); // 等待2秒

display.clearDisplay();

}

void loop() {

sensors.requestTemperatures(); // 請求溫度讀數

float temperatureC = sensors.getTempCByIndex(0); // 取得溫度(攝氏)

// 在序列埠顯示溫度讀數

Serial.print("Temperature: ");

Serial.print(temperatureC);

Serial.println(" °C");

// 在OLED顯示器上顯示溫度讀數

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(SSD1306_WHITE);

display.setCursor(0,0);

display.print("Temperature: ");

display.print(temperatureC);

display.print(" C");

display.display();

delay(2000); // 等待2秒再更新

}

```

### 注意事項:

1. 請確保您已經安裝了Wire和Adafruit_SSD1306庫,可以在Arduino IDE的「工具」->「管理程式庫」中安裝。


2. 這個程式碼使用了DS18B20溫度感測器庫,您可以在Arduino IDE的「工具」->「管理程式庫」中安裝「DallasTemperature」。


3. 此程式碼基於Adafruit的SSD1306 OLED庫,您可以根據您使用的OLED顯示器進行調整。

這個程式碼將溫度讀數從DS18B20感測器讀取,然後在序列埠和OLED顯示器上顯示。希望這能幫助您開始製作您的Arduino專案!

最新文章

查看全部

STEM|如何建立自己的AI系統

建立自己的 AI 系統是一個複雜的過程,需要具備豐富的技術知識和實踐經驗。以下是一些關鍵步驟: 1. 確定目標和應用場景 首先要明確 AI 系統的目標和應用場景,例如是用於自然語言處理、圖像識別還是其他領域。這將決定系統的架構和所需的技術棧。 2. 選擇合適的機器學習框架...

Comments


bottom of page