01. 스마일팟 화분 작품에 사용할 화분통을 3D모델링하여 출력해보자.
02. 화분의 수분 정도에 따라 LED에 표정을 나타내보자.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
25
#include "LedControl.h"
LedControl lc=LedControl(12,10,11,1);
byte a[8]={
0b00000000,
0b00100100,
0b00100100,
0b00000000,
0b01111110,
0b01111110,
0b00111100,
0b00000000
};
byte b[8]={
0b00000000,
0b11100111,
0b01000010,
0b00000000,
0b00000000,
0b00111100,
0b01000010,
0b10000001
};
byte c[8]={
0b10000001,
0b01000010,
0b00100100,
0b00000000,
0b00111100,
0b01111110,
0b11111111,
0b00000000
};
void setup() {
Serial.begin(9600);
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
}
void loop() {
int value=analogRead(A0);
Serial.print("read sensor value:");
Serial.println(value);
if(value<300)
{
for(int i=0;i<8;i++){
lc.setRow(0,i,a[i]);
}
delay(1000);
}
else if(value<600)
{
for(int i=0;i<8;i++){
lc.setRow(0,i,b[i]);
}
delay(1000);
}
else
{
for(int i=0;i<8;i++){
lc.setRow(0,i,c[i]);
}
delay(1000);
}
}
01:LED매트릭스 라이브러리 호출
02:LED컨트롤 객체 이름인 IC에
DIN핀12, CLK핀 10, CS핀 11, 매트릭스 개수 1개 설정
03: 매트릭스 에디터에서 불러온 첫번째 표정에 대한 코드
04: 매트릭스 에디터에서 불러온 두번째 표정에 대한 코드
05: 매트릭스 에디터에서 불러온 세번째 표정에 대한 코드
06:setup 함수
07:시리얼통신 9600으로 설정
08:매트릭스를 일반모드(false)로 설정(0은 매트릭스번호)
09:도트매트릭스의 밝기를 0번째 매트릭스 밝기를 8로 설정(0~15까지)
10:장치초기화(0번째장치)
11:loop함수
12:value값에 아날로그 신호 A0 값 읽어서 저장
13:텍스트"read sensor value" 출력
14: value값 출력
15: 만약 value값이 300보다 작으면
16: i 값이 0부터 8보다 작을 동안 (8줄)
17:setRow 가로줄행 1줄 제어(0번째, i열, a[i]데이터를 출력)
18: 1초 대기
19: 그렇지 않고 만약 value값이 600보다 작으면
20: i값이 0부터 8보다 작을 동안 (8줄)
21 :setRow 가로줄행 1줄 제어(0번째, i열, a[i]데이터를 출력)
22:1초 대기
23: 그것도 아니면
24: i 값이 0부터 8보다 작을 동안 (8줄)
25:setRow 가로줄행 1줄 제어(0번째, i열, a[i]데이터를 출력)
16:1초 대기