아두이노 우노(Arduino UNO R3)를 기준으로 작성했다.
아두이노 메가를 기준으로 하고싶다면 이 글을 따라하고 아래 게시글의 문제해결 2번을 참고하면 된다.
https://waytocse.tistory.com/77
OLED을 통해 원하는 문구나 그림을 표시할 수 있다.
내가 사용한 OLED는 전에 ESP로 OLED동작시켰을 때와 같은
[ELECROW] 128x64 OLED 디스플레이 블루 [DO1286496BY]를 사용했다.
이녀석은 3.3v~5v사이 전압을 주면된다. 3.3v라고 코드에 써두긴했는데
문제없이 5v도 잘돌아간다.
//sda - a4
//scl - a5
//3.3v
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int temp = 29;
int humi = 45;
int soil = 23;
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
}
void loop() {
delay(2000);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 10);
display.println("T:"+(String)temp+"C ");
display.println("H:"+(String)humi+"% ");
display.println("S:"+(String)soil+"% ");
display.display();
temp = temp + 1;
humi = humi + 1;
soil = soil + 1;
}
위 코드는 2초 간격으로 temp,humi,soil이라는 변수 값을 증가시켜가며
OLED에 표시하는 코드이다.
SCL,SDA에 유의해서 회로연결을 해준 후
실행시켜보면
이렇게 2초간격으로 값이 증가되어 값을 다르게 표시하는 모습을 볼 수 있다.
'컴퓨터 > 아두이노 라즈베리파이' 카테고리의 다른 글
[아두이노] 안드로이드와 BLE(Bluetooth4) 통신1 - 안드로이드 개발 (0) | 2021.11.30 |
---|---|
[아두이노] OLED에 온습도 센서값 출력하기 (0) | 2021.11.15 |
[아두이노] 토양습도센서 SoilMoisture (0) | 2021.11.15 |
[아두이노] DHT11 온습도 센서 + 타이머 기능 활용 (0) | 2021.11.15 |
임베디드시스템설계실험 텀프 - 손 크기에 따른 세정제 양 분출 조절기 (0) | 2021.11.14 |
댓글