예제의 결과물
준비물 & 결선 & 세팅하기
아래 링크를 참고해서 준비해주세요.
* 준비물 구입 링크
https://smartstore.naver.com/frontiers/products/5380911083
소스코드 다운
iotfrontiers/popsign_examples (github.com)
위 링크에 들어가셔서 연두색의 Code 버튼을 누르시고
Download ZIP 버튼을 누르면 전체 예제 파일을 다운 받을 수 있습니다.
업로드 준비
① 파일 - 열기 항목을 눌러서 현재 진행하고 있는 예제의 ino파일을 선택합니다.
② 보드와 PC를 USB C타입 케이블로 연결합니다.
③ 장치관리자에서 보드가 연결된 포트를 확인합니다. USB-SERIAL-CH340 이라는 이름으로 표시되어 있습니다.
④ 위에서 확인한 포트번호를 IDE에 설정합니다
⑤ ESP-32 Dev Module 보드를 선택합니다.
⑥ 업로드 준비가 다 되었습니다. 업로드 버튼을 눌러서 업로드 할 수 있습니다.
시리얼 모니터
스케치 우측상단 돋보기 모양을 선택하면 시리얼 모니터를 실행할 수 있습니다.
시리얼 모니터의 보드레이트를 코드상에서 설정한 보드레이트 (115200) 와 동일하게 설정해야 합니다.
시리얼 모니터를 통해 보드가 컴퓨터로 보내는 내용을 볼 수 있고
전송 버튼 왼쪽에 있는 입력 창에 텍스트를 입력한 후 전송 버튼을 눌러서 보드로 내용을 전송할 수도 있습니다.
switchColor 소스코드
#include <Adafruit_GFX.h>
#include <P3RGB64x32MatrixPanel.h>
P3RGB64x32MatrixPanel matrix(25, 26, 27, 21, 22, 0, 15, 32, 33, 12, 5, 23, 4);
int pin = 13;
int val = 0;
void setup(){
Serial.begin(115200);
matrix.begin();
pinMode(pin, INPUT);
}
bool reversPin = false;
void loop()
{
val = digitalRead(pin);
if(val == LOW && reversPin == false)
{
reversPin = true;
matrix.fillScreen(0);
matrix.setCursor(18, 12);
matrix.print("Color");
matrix.setTextColor(random(0,255));
Serial.println("low");
return;
}
if (val == HIGH) reversPin = false;
}
#include 아래에 모듈에 맞는 핀 번호가 있고( ※ ESP32-WROVER-E 모듈 적용 )
그 아래에는 변수가 선언되어 있습니다.
이처럼 전역 변수는 함수 안이 아닌 함수 바깥에 선언합니다.
pin, val은 함수 블록 바깥에 선언되어 있으므로 모든 함수에서 값을 가져오거나 저장할 수 있습니다. 또한, 파일 자체에 변수가 선언되어 있으므로 변수의 범위는 파일 범위입니다.
void setup(){
Serial.begin(115200);
matrix.begin();
pinMode(pin, INPUT);
}
bool reversPin = false;
■pinMode(핀번호, 모드)
사용할 디지털 핀의 모드(입력or출력)를 설정하기 위한 함수입니다.
매개변수
핀번호 - 모드를 설정할 디지털 핀 번호를 적어줍니다.
모드 - OUTPUT(출력)또는 INPUT(입력)을 적어줍니다.
특정 핀을 입력 또는 출력으로 동작하도록 설정합니다.
모드 변경 스위치를 제어하기 위해 true, false 값을 지원하는 bool 자료형을 사용합니다.
모드변경 스위치를 누른 상태는 13번 핀이 LOW 상태인 것과 같고,
모드변경 스위치를 땐 상태는 13번 핀이 HIGH 상태인 것과 같습니다.
val = digitalRead(pin);
if(val == LOW && reversPin == false)
■digitalRead(핀번호)
지정한 디지털 핀(13)에서 값(HIGH 또는 LOW)을 읽습니다.
loop() 함수를 통한 반복을 멈추기 위해 변수 reversPin을 false 상태로 만듭니다.
만약 스위치가 눌리면(LOW) 아래 내용들을 실행합니다.
matrix.fillScreen(0);
matrix.setCursor(18, 12);
matrix.print("Color");
matrix.setTextColor(random(0,255));
Serial.println("low");
matrix.fillScreen(0); // matrix 화면 깨끗하게(초기화) 설정
matrix.setCursor(15, 10); // 글자가 시작되는 위치 (x-15, y-10)
matrix.print("Color"); // "Color" 글자를 화면에 출력
matrix.setTextColor(random(0,255)); // 색상은 0 ~ 255까지의 랜덤값을 적용
Serial.println("low"); // 시리얼 모니터에는 "low"가 출력
댓글