공부중
[Arduino] PIN 출력 실습 본문
728x90
1. 아두이노 내장 13번 PIN LED 출력
#define LED_PIN 13 // LED가 연결된 핀 번호
void setup() {
pinMode(LED_PIN, OUTPUT); // LED 핀을 출력 모드로 설정
}
void loop() {
digitalWrite(LED_PIN, HIGH); // LED 켜기
delay(1000); // 1초 대기
digitalWrite(LED_PIN, LOW); // LED 끄기
delay(1000); // 1초 대기
}
딜레이안에 있는 숫자는 ms 단위이다.
13번 led가 켜지기는 하지만 13번 pin 출력이기 때문에 led를 연결해도 출력되는걸 확인할 수 있다.
2. pin 출력
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(1000);
}
3. LED 출력 예제
// • 시리얼 모니터 입력으로 LED 를 제어하는 프로그램 작성
// 시리얼 통신으로 1 을 보내면 첫번째 LED 가 켜짐
// 숫자 1~4 를 보내서 LED 4 개를 제어
// 숫자 5 를 보내면 4 개 다 켜지게 함
// 숫자 0을 보내면 모든 LED 끔.
|
#define PIN1 4 // LED가 연결된 핀 번호
#define PIN2 5 // LED가 연결된 핀 번호
#define PIN3 6 // LED가 연결된 핀 번호
#define PIN4 7 // LED가 연결된 핀 번호
void setup() {
// put your setup code here, to run once:
pinMode(PIN1, OUTPUT);
pinMode(PIN2, OUTPUT);
pinMode(PIN3, OUTPUT);
pinMode(PIN4, OUTPUT);
// 시리얼 통신 초기화
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0) {
char data = Serial.read();
if (data == '1') {
digitalWrite(PIN1, HIGH);
}
if (data == '2') {
digitalWrite(PIN2, HIGH);
}
if (data == '3') {
digitalWrite(PIN3, HIGH);
}
if (data == '4') {
digitalWrite(PIN4, HIGH);
}
if (data == '5') {
digitalWrite(PIN1, HIGH);
digitalWrite(PIN2, HIGH);
digitalWrite(PIN3, HIGH);
digitalWrite(PIN4, HIGH);
}
if (data == '0') {
digitalWrite(PIN1, LOW);
digitalWrite(PIN2, LOW);
digitalWrite(PIN3, LOW);
digitalWrite(PIN4, LOW);
}
}
}
* 실수들 정리
- Serial.read()는 ASCII 값을 반환합니다. 따라서 숫자 1, 2, 3 등과 비교하려면 문자 '1', '2', '3' 등으로 비교해야 합니다.
- data 변수를 if (Serial.available() > 0) 블록 안에서 선언했기 때문에, 그 외의 조건문에서는 접근할 수 없습니다. 전역 변수로 선언하거나, loop 함수 안에서 범위를 확장해야 합니다.
728x90
'프로그래밍 > Arduino' 카테고리의 다른 글
[Arduino] 조도센서 CDS 실습 (0) | 2025.01.23 |
---|---|
[Arduino] error 해결 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach? (0) | 2025.01.23 |
[Arduino] 가변저항 실습 (0) | 2025.01.22 |
[Arduino] 푸시 버튼 실습 (0) | 2025.01.22 |
[Arduino] 입출력 실습 (0) | 2025.01.21 |