아두이노 매트릭스 코딩 매트릭스 기본 명령어 실습 01차시 ㈜헬로앱스 김영준
준비하기
아두이노 실습 준비물 준비 또는 SPL-Duino V2 보드 아두이노 시뮬레이터 (v2.41.0 이상 버전 필요) LED 도트 매트릭스
도트 매트릭스 연결하기 준비하기 다음과 같이 I2C 핀에 연결합니다. 이곳 4개의 핀에 도트 매트릭스를 연결합니다. 검정색 선이 GND에 오도록 연결합니다.
도트 매트릭스 연결하기 준비하기 다음과 같이 I2C 핀에 연결합니다. 이곳 4개의 핀에 도트 매트릭스를 연결합니다. 검정색 선이 GND에 오도록 연결합니다.
시뮬레이터에서의 도트 매트릭스 준비하기 도트 매트릭스 재료가 없는 경우에는 아두이노 시뮬레이터를 활용합니다. 아두이노 시뮬레이터에서 아두이노 창작을 선택합니다.
시뮬레이터에서의 도트 매트릭스 준비하기 도트 매트릭스 재료가 없는 경우에는 아두이노 시뮬레이터를 활용합니다. 이 영역이 8x8 도트 매트릭스 입니다.
도트 매트릭스 기본 명령어
도트 매트릭스 명령어 구성 기본 명령어 [2] 내장 명령어 의 맨 아래에 명령어가 있습니다.
도트 매트릭스 명령어 구성 기본 명령어 매트릭스의 모든 LED를 끕니다. X, Y 위치의 LED를 지정된 색상으로 설정합니다.
도트 매트릭스 명령어 구성 기본 명령어 [스크립트 모드] 매트릭스의 모든 LED를 끕니다. MatrixClear() MatrixDrawPixel(0, 0, LED_RED) MatrixWriteDisplay() X, Y 위치의 LED를 지정된 색상으로 설정합니다. 설정된 색상을 LED에 반영합니다.
기본 실습 기본 명령어 아래의 코드를 작성한 후 실행시켜 봅니다.
스크립트로 프로그램 만들기 동일한 기능을 블록이 아닌 스크립트나 C언어로도 입력할 수 있습니다. 1 2
기본 실습 기본 명령어 [스크립트 모드] 아래의 코드를 작성한 후 실행시켜 봅니다. void setup() { } void loop() MatrixClear() MatrixDrawPixel(0, 0, LED_RED) MatrixWriteDisplay() Delay(1000)
C언어로 프로그램 만들기 C언어로 입력하는 경우에도 SPL 스크립트를 선택해 줍니다. 1 2
기본 실습 기본 명령어 [스크립트 모드에서 C언어 입력] 아래의 코드를 작성한 후 실행시켜 봅니다. void setup() { } void loop() MatrixClear(); MatrixDrawPixel(0, 0, LED_RED); MatrixWriteDisplay(); Delay(1000);
블록과 스크립트, C언어 블록과 스크립트, C언어 중에서 본인의 학습 수준에 맞추어 사용합니다. 스크립트 블록 void loop() { MatrixClear() MatrixDrawPixel(0, 0, LED_RED) MatrixWriteDisplay() Delay(1000) } 스크립트 블록 void loop() { MatrixClear(); MatrixDrawPixel(0, 0, LED_RED); MatrixWriteDisplay(); Delay(1000); } 어느 방식으로 입력해도 결과는 동일합니다. C언어
기본 실습 기본 명령어 다음과 같이 0, 0 번째 LED가 RED 색상으로 켜졌습니다.
도트 매트릭스 명령어 구성 기본 명령어 LED의 위치는 0번 째 부터 시작합니다. (0 ~ 7) X 0 1 2 3 4 5 6 7 X:0, Y:0 1 2 3 4 5 6 7 Y
응용 실습 기본 명령어 다음과 같이 LED가 켜지도록 프로그램을 작성해 봅니다.
응용 실습 기본 명령어
응용 실습 기본 명령어 [스크립트 모드] void setup() { } void loop() MatrixClear() MatrixDrawPixel(0,0,LED_RED) MatrixDrawPixel(2,0,LED_RED) MatrixDrawPixel(4,0,LED_RED) MatrixDrawPixel(6,0,LED_RED) MatrixWriteDisplay() Delay(1000)
색상 변경하기
색상 변경 색상 도트 매트릭스는 다음과 같이 3가지 색상을 가집니다. LED_RED (숫자 1을 사용해도 됩니다) LED_YELLOW (숫자 2를 사용해도 됩니다) LED_GREEN (숫자 3을 사용해도 됩니다) LED_OFF (숫자 0을 사용해도 되며, LED를 끕니다)
색상 변경 색상 아래 코드는 이전 코드와 동일하게 실행됩니다.
색상 변경 색상 [스크립트 모드] 아래 코드는 이전 코드와 동일하게 실행됩니다. void setup() { } void loop() MatrixClear() MatrixDrawPixel(0,0,1) MatrixDrawPixel(1,1,2) MatrixDrawPixel(2,2,3) MatrixWriteDisplay() Delay(1000)
색상 변경 색상 실행 결과
응용 실습
자신만의 작품 만들기 실습 자신만의 패턴을 설계하여 LED 매트릭스로 표현해 봅니다. 예)
LED 점멸시키기
LED 점멸 LED 점멸 0, 0 위치의 LED를 1초 간격으로 점멸시켜 봅니다. RED -> 꺼짐 -> RED -> 꺼짐 -> RED -> 꺼짐
LED 점멸 LED 점멸 0, 0 위치의 LED를 1초 간격으로 점멸시켜 봅니다.
LED 점멸 LED 점멸 [스크립트 모드] 0, 0 위치의 LED를 1초 간격으로 점멸시켜 봅니다. void setup() { } void loop() MatrixClear() MatrixDrawPixel(0,0,1) MatrixWriteDisplay() Delay(1000) MatrixDrawPixel(0,0,0)
응용 실습 실습 자신만의 패턴을 1초 간격으로 점멸시켜 봅니다. 예)
순차적으로 LED켜기
LED를 하나씩 순서대로 켜기 LED 켜기 LED를 1개씩 다음과 같은 순서로 켜 봅니다.
LED를 하나씩 순서대로 켜기 LED 켜기 반복문을 이용하여 한 라인 씩 켜 봅니다. 반복문의 변수명에 모두 x를 사용해 줍니다.
LED를 하나씩 순서대로 켜기 LED 켜기 [스크립트 모드] 반복문을 이용하여 한 라인 씩 켜 봅니다. 반복문의 변수명에 모두 x를 사용해 줍니다. void setup() { } void loop() MatrixClear() for (x = 0; x <=7; x=x+1) MatrixDrawPixel(x,0,LED_RED) MatrixWriteDisplay() Delay(100)
LED를 하나씩 순서대로 켜기 LED 켜기 실행 결과
LED를 하나씩 순서대로 켜기 LED 켜기 반복문을 이용하여 세로 축으로도 이동시켜 봅니다.
LED를 하나씩 순서대로 켜기 LED 켜기 [스크립트 모드] 반복문을 이용하여 세로 축으로도 이동시켜 봅니다. void setup() { } void loop() MatrixClear() for (y = 0; y <=7; y=y+1) for (x = 0; x <=7; x=x+1) MatrixDrawPixel(x, y, LED_RED) MatrixWriteDisplay() Delay(100)
LED를 하나씩 순서대로 켜기 LED 켜기 실행 결과
응용 실습 실습 LED 전체를 1초 간격으로 점멸시켜 봅니다.
응용 실습 실습 LED 전체를 1초 간격으로 점멸시켜 봅니다.
응용 실습 실습 LED 전체를 1초 간격으로 점멸시켜 봅니다. [스크립트 모드] void loop() { MatrixClear() for (y = 0; y <=7; y=y+1) for (x = 0; x <=7; x=x+1) MatrixDrawPixel(x, y, LED_RED) } MatrixWriteDisplay() Delay(1000)
패턴 만들기
패턴 만들기 반복문을 이용하여 다음과 같이 패턴을 만들어 봅시다.
패턴 만들기
패턴 만들기 [스크립트 모드] void loop() { MatrixClear() for (x = 0; x <=7; x=x+1) MatrixDrawPixel(x, 1, LED_RED) MatrixDrawPixel(x, 6, LED_RED) } for (y = 0; y <=7; y=y+1) MatrixDrawPixel(1, y, LED_YELLOW) MatrixDrawPixel(6, y, LED_YELLOW) MatrixWriteDisplay() Delay(1000)
응용 실습 반복문을 이용하여 다음과 같이 패턴을 만들어 봅시다.
응용 실습
응용 실습 [스크립트 모드] void loop() { MatrixClear() for (y = 0; y <= 7; y=y+1) for (x = 0;x <= y; x=x+1) MatrixDrawPixel(x, y, LED_GREEN) } MatrixWriteDisplay() Delay(1000)
랜덤 함수
랜덤 함수 명령어 목록에 없는 기타 명령어나 수식은 Expression 블록을 이용합니다. 랜덤 함수는 임의의 값을 발생시키는 함수 입니다. A = random(100) A에는 0 부터 99까지의 숫자 중에서 임의의 숫자가 저장됩니다. B = random(10, 50) B에는 10 부터 49까지의 숫자 중에서 임의의 숫자가 저장됩니다. 명령어 목록에 없는 기타 명령어나 수식은 Expression 블록을 이용합니다.
응용 실습 임의의 위치에 있는 LED 셀을 RED 색상으로 켜 봅니다.
응용 실습 임임의 LED 셀을 RED 색상으로 켜 봅니다.
응용 실습 [스크립트 모드] 임임의 LED 셀을 RED 색상으로 켜 봅니다. void loop() { x = random(0, 8) y = random(0, 8) MatrixDrawPixel(x, y, LED_RED) MatrixWriteDisplay() Delay(100) }
응용 실습 색상도 임의의 색상으로 표시해 봅니다.
응용 실습 색상도 임의의 색상으로 표시해 봅니다.
응용 실습 [스크립트 모드] 색상도 임의의 색상으로 표시해 봅니다. void loop() { x = random(0, 8) y = random(0, 8) c = random(1, 4) MatrixDrawPixel(x, y, c) MatrixWriteDisplay() Delay(100) }
응용 실습 임의의 LED 셀을 그릴 때 마다 전체 LED를 끄고 항상 하나의 임의의 위치에
응용 실습 임의의 LED 셀을 그릴 때 마다 전체 LED를 끄고 항상 하나의 임의의 위치에
응용 실습 [스크립트 모드] 임의의 LED 셀을 그릴 때 마다 전체 LED를 끄고 항상 하나의 임의의 위치에 void loop() { MatrixClear() x = random(0, 8) y = random(0, 8) c = random(1, 4) MatrixDrawPixel(x, y, c) MatrixWriteDisplay() Delay(100) }
응용 실습 자신만의 LED 작품을 설계하여 만들어 봅시다.