아까는 13번핀에 직접 led를 연결해서 불을 깜빡이도록 했는데, 이번에는 빵판을 이용해본다.
빵판을 이용하기 위해서는 먼저 GND(Ground)포트에 점퍼를 하나 연결하고 마이너스극에 하나 연결해두면 된다. 이렇게 마이너스가 완성된다.
그리고 13번 포트에서 +가 나오고 있기 때문에, 브레드보드의 +로 연결을 하면 5볼트의 전류가 현재 흐르게 된다.
그리고 +극 쪽에 긴다리, -극 쪽에 짧은 다리를 연결해주면 led가 깜빡거리는 것을 확인할 수 있다.
그런데 아두이노의 경우는 특정 포트에서 나오는 전원만을 요구할 때가 많은데,
그래서 이와 같이 연결을 한다.
위 사진에 그려놓은 화살표를 보면 브레드보드가 연결된 방향을 알 수 있다. 가로로는 연결이 되어 있지 않아 전기가 흐르지 않는데, led를 통해 연결된 상태라고 볼 수 있고, + -를 통해 전기가 통하고 있는 것이다.
그런데 그라운드 포트는 사용을 많이 하기 때문에, 전체를 연결할 수 있도록 아래에 꼽아준다.
그리고 그라운드된 곳에 점퍼선을 하나 연결하고 다시 led와 연결된 -극 쪽에 연결을 해주면, 불이 들어오는 것을 확인할 수 있다.
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
int led5 = 9;
void setup() {
pinMode(13, 1);
pinMode(12, 1);
pinMode(11, 1);
pinMode(10, 1);
pinMode(9, 1);
}
void loop() {
digitalWrite(13, 1);
digitalWrite(12, 1);
digitalWrite(11, 1);
digitalWrite(10, 1);
digitalWrite(9, 1);
delay(1000);
digitalWrite(13, 0);
digitalWrite(12, 0);
digitalWrite(11, 0);
digitalWrite(10, 0);
digitalWrite(9, 0);
delay(1000);
}
void setup() {
pinMode(13, 1);
pinMode(12, 1);
pinMode(11, 1);
pinMode(10, 1);
pinMode(9, 1);
}
void loop() {
digitalWrite(13, 1);
delay(1000);
digitalWrite(12, 1);
delay(1000);
digitalWrite(11, 1);
delay(1000);
digitalWrite(10, 1);
delay(1000);
digitalWrite(9 , 1);
delay(1000);
digitalWrite(13, 0);
delay(1000);
digitalWrite(12, 0);
delay(1000);
digitalWrite(11, 0);
delay(1000);
digitalWrite(10, 0);
delay(1000);
digitalWrite(9, 0);
delay(1000);
}
int time = 500;
void setup() {
pinMode(13, 1);
pinMode(12, 1);
pinMode(11, 1);
pinMode(10, 1);
pinMode(9, 1);
}
void loop() {
digitalWrite(13, 1);
delay(time);
digitalWrite(12, 1);
delay(time);
digitalWrite(11, 1);
delay(time);
digitalWrite(10, 1);
delay(time);
digitalWrite(9 , 1);
delay(time);
digitalWrite(13, 0);
delay(time);
digitalWrite(12, 0);
delay(time);
digitalWrite(11, 0);
delay(time);
digitalWrite(10, 0);
delay(time);
digitalWrite(9, 0);
delay(time);
}
이렇게 변수를 선언함으로써, 번거롭게 계속 수작업하는 것을 방지할 수 있다.
int time = 100;
void setup() {
for(int i=13;i>=9;i--){
pinMode(i, 1);
}
}
void loop() {
for(int i=13;i>=9;i--){
digitalWrite(i, 1);
delay(time);
}
for(int i=13;i>=9;i--){
digitalWrite(i, 0);
delay(time);
}
}
이렇게 for문을 활용해 동일한 코드를 깔끔하게 줄일 수 있었다.
int time = 200;
void setup() {
for(int i=13;i>=9;i--){
pinMode(i, 1);
}
}
void loop() {
for(int i=9;i<=13;i++){
digitalWrite(i, 1);
delay(time);
}
for(int i=13;i>=9;i--){
digitalWrite(i, 0);
delay(time);
}
}
이번에는 조금 다르게 동작하는 코드다.
콘솔창으로만 for문이 작동하는 것을 보다가, 아두이노를 통해서 실제로 코드가 어떻게 동작하는 지를 보면, 참 신기하다. 마치 디버깅을 하는 것처럼 코드 한 줄 한 줄이 작동하는 모습을 이렇게 확인할 수 있다.
'Programming > Embeded' 카테고리의 다른 글
How to learn Embedded (0) | 2022.04.22 |
---|---|
[2] 아두이노 첫 프로젝트 - LED 깜빡거리게 하기 (0) | 2022.04.14 |
[1] 아두이노 첫 프로젝트 - DHT22 센서를 사용한 토양습도 측정 (0) | 2022.04.14 |
아두이노 기초 (아두이노란? 아두이노 구성) (0) | 2022.04.14 |