- 작성자 : 상암고 교사 성원경
- 강의 : 영등포고등학교
- 작성일 : 24년 10월
서보모터
#include <Servo.h> // 서보 라이브러리 포함
Servo myServo; // 서보 객체 생성
void setup() {
myServo.attach(9); // 서보를 9번 핀에 연결
}
void loop() {
myServo.write(0); // 서보를 0도로 이동
delay(1000); // 1초 대기
myServo.write(90); // 서보를 90도로 이동
delay(1000); // 1초 대기
myServo.write(180); // 서보를 180도로 이동
delay(1000); // 1초 대기
}
DotMatrix
에듀이노
#include "LedControl.h"
LedControl lc=LedControl(12,11,10,4);
// DIN 핀을 12번에 CS 핀을 10번에 CLK핀을 11번에 연결해줌
// (DIN, CLK, CS, 연결할 도트 매트릭스의 개수)
#define A { \\
{0, 0, 0, 1, 1, 0, 0, 0}, \\
{0, 0, 1, 1, 1, 1, 0, 0}, \\
{0, 1, 1, 0, 0, 1, 1, 0}, \\
{0, 1, 1, 1, 1, 1, 1, 0}, \\
{0, 1, 1, 1, 1, 1, 1, 0}, \\
{0, 1, 1, 0, 0, 1, 1, 0}, \\
{0, 1, 1, 0, 0, 1, 1, 0}, \\
{0, 1, 1, 0, 0, 1, 1, 0} \\
}
#define B { \\
{0, 1, 1, 1, 1, 1, 0, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 1, 1, 1, 0, 0},\\
{0, 1, 1, 1, 1, 1, 0, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 1, 1, 1, 0, 0},\\
}
#define C { \\
{0, 0, 1, 1, 1, 1, 1, 0},\\
{0, 1, 1, 1, 1, 1, 1, 0},\\
{0, 1, 1, 0, 0, 0, 0, 0},\\
{0, 1, 1, 0, 0, 0, 0, 0},\\
{0, 1, 1, 0, 0, 0, 0, 0},\\
{0, 1, 1, 0, 0, 0, 0, 0},\\
{0, 1, 1, 1, 1, 1, 1, 0},\\
{0, 0, 1, 1, 1, 1, 1, 0},\\
}
#define D { \\
{0, 1, 1, 1, 1, 1, 0, 0},\\
{0, 1, 1, 1, 1, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 0, 0, 1, 1, 0},\\
{0, 1, 1, 1, 1, 1, 1, 0},\\
{0, 1, 1, 1, 1, 1, 0, 0},\\
}
byte patterns[4][8][8] = { A, B, C, D };
// 위에서 정의한 led 모양을 patterns에 입력해 주기
void setup()
{
for(int i=0; i<4; i++){ // 도트 매트릭스 0~3번
lc.shutdown(i,false); // 디스플레이 초기화
lc.setIntensity(i,1); // 도트 매트릭스 밝기 (매트릭스 번호, 밝기) 1~15
lc.clearDisplay(i); // led 를 전체 꺼주는 함수
}
}
void clean(){ // 전체led를 꺼주는 함수
for(int i = 0; i < 4; i++)
lc.clearDisplay(i);// clear screen
}
void loop(){
int pattern = 4;
int row, col, i;
for(i = 0; i < 4; i++){ // 총 4글자 반복
for (row = 0; row < 8; row++) { // row 출력
for (col=0; col < 8; col++){ // col 출력
if (patterns[i][7 - col][7 - row] == 1)
// 위의 배열에서 1일때 해당되는 위치 불빛 켜주기
lc.setLed(i, col, row, true);
else // 위 배열에서 0일때 해당되는 위치 불빛 꺼주기
lc.setLed(i, col, row, false);
}
}
delay(500); // 딜레이 500ms
}
clean(); // led 전체 꺼주기
delay(500); // 딜레기 500ms
}
LED Matrix Editor