아두이노의 회로 구성 및 스케치 코드

즉, 버튼을 누를 때에만 전원을 공급하고 싶다(예를 들어, 선풍기, 전등)면 풀다운 저항이 필요하다. 평상시에는 전원을 공급하다가 버튼을 눌렀을 때는 전원 공급을 멈추고 싶다(예를 들어, 에스컬레이터 긴급 제동 버튼, 컴퓨터 파워 리셋 버튼)면 풀업 저항이 필요하다.
또한 하드웨어적 특성으로 인해 풀다운 저항을 사용할 때보,다 풀업 저항을 사용할 때 에너지를 절감할 수 있으므로 풀업 저항을 사용하는 경우도 있다.
// c# code
//
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
// 1초에 9600비트로 데이터 전송
pinMode(8, OUTPUT); // 8번 디지털 핀을 출력 모드로 설정
pinMode(7, INPUT); // 7번 디지털 핀을 입력 모드로 설정
}
// loop() 함수 :
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
int readValue = digitalRead(7); // 입력 핀의 값(HIGH 혹은 LOW)을 읽어 변수에 저장
Serial.println(readValue); // 변수값(1 혹은 0)을 직렬 모니터에 출력
if(readValue == HIGH) // 만약 읽은 값이 HIGH면
{
digitalWrite(8, HIGH); // digitalWrite() 메서드로 8번 핀에 HIGH 값을 써서 5V가 걸리게 하여 LED를 켜고,
}
else // 만약 읽은 값이 HIGH가 아니면
{
digitalWrite(8,LOW); // digitalWrite() 메서드로 8번 핀에 LOW 신호를 전달해 0V 전압이 걸리게 하여 LED를 끕니다.
}
}
코드 설명
아두이노에서 7번 디지털 핀의 입력 값에 따라 8번 디지털 핀에 연결된 LED를 제어하는 코드입니다.
푸시 버튼이 눌렸는지를 판단하는 핀은 INPUT(입력) 모드로, LED를 켜고 끄기 위해 전압 차이를 발생시키는 핀은 OUTPUT(출력)로 선언합니다.
Serial.begin(speed): 시리얼 통신을 초기화합니다. speed는 통신 속도를 지정합니다.
pinMode(pin, mode): 디지털 핀의 모드를 설정합니다. pin은 핀 번호를, mode는 INPUT 또는 OUTPUT을 지정합니다. INPUT(입력)은 외부에서 아두이노 보드로 신호가 들어올 때 사용하며, OUTPUT(출력)은 아두이노 보트에서 외부로 신호를 내보낼 때 사용합니다. 따라서 푸시 버튼이 눌렸는지를 판단하는 핀은 INPUT(입력) 모드로, LED를 켜고 끄기 위해 전압 차이를 발생시키는 핀은 OUTPUT(출력)로 선언합니다.
digitalRead(pin): 디지털 핀의 값을 읽어옵니다. 매개변수 pin은 디지털 핀 번호를 지정합니다. 즉, 해당 디지털 핀에 들어오는 신호를 읽어 디지털값 HIGH 또는 LOW로 반환합니다.
digitalWrite(pin, value): 디지털 핀(pin)에 디지털 값(value)를 씁니다(Write). pin은 핀 번호를, value는 HIGH 또는 LOW를 지정합니다. 해당 디지털 핀에 HIGH 값을 쓰면 5V 전압이 걸리고, LOW 값을 쓰면 0V의 전압이 걸립니다.
Serial.println(data): 데이터를 시리얼 모니터에 출력하고 줄 바꿈을 합니다. data는 출력할 데이터를 지정합니다.
setup() 함수
Serial.begin(9600): 시리얼 통신을 초기화합니다. 9600은 통신 속도를 의미하며, 1초에 9600비트의 데이터를 전송합니다. 이를 통해 아두이노와 컴퓨터 간에 데이터를 주고받을 수 있습니다.pinMode(8, OUTPUT): 8번 디지털 핀을 출력 모드로 설정합니다. 이 핀에 연결된 LED를 켜거나 끌 수 있습니다.pinMode(7, INPUT): 7번 디지털 핀을 입력 모드로 설정합니다. 이 핀을 통해 외부 센서나 스위치의 값을 읽어올 수 있습니다.loop() 함수
int readValue = digitalRead(7): 7번 디지털 핀의 값을 읽어와 readValue라는 정수형 변수에 저장합니다. digitalRead() 함수는 디지털 핀의 값을 읽어 HIGH 또는 LOW 값을 반환합니다.Serial.println(readValue): readValue 변수의 값을 시리얼 모니터에 출력합니다. Serial.println() 함수는 데이터를 시리얼 모니터에 출력하고 줄 바꿈을 합니다.if (readValue == HIGH): readValue 값이 HIGH이면, 즉 7번 디지털 핀에 HIGH 신호가 입력되면 digitalWrite(8, HIGH)를 실행합니다.digitalWrite(8, HIGH): 8번 디지털 핀에 HIGH 신호를 출력하여 LED를 켭니다. digitalWrite() 함수는 디지털 핀에 HIGH 또는 LOW 신호를 출력합니다.else: readValue 값이 HIGH가 아니면, 즉 7번 디지털 핀에 LOW 신호가 입력되면 digitalWrite(8, LOW)를 실행합니다.digitalWrite(8, LOW): 8번 디지털 핀에 LOW 신호를 출력하여 LED를 끕니다.
// c# code
//
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
// 1초에 9600비트로 데이터 전송
pinMode(8, OUTPUT); // 8번 디지털 핀을 출력 모드로 설정
pinMode(7, INPUT_PULLUP); // 7번 디지털 핀을 입력 모드로 설정
// 내부 풀업 저항을 사용하도록 설정
}
// loop() 함수 :
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
int readValue = digitalRead(7); // 입력 핀의 값(HIGH 혹은 LOW)을 읽어 변수에 저장
Serial.println(readValue); // 변수값(1 혹은 0)을 직렬 모니터에 출력
if(readValue == HIGH) // 만약 읽은 값이 HIGH면
{
digitalWrite(8, LOW);
}
else // 만약 읽은 값이 HIGH가 아니면
{
digitalWrite(8,HIGH);
}
}
pinMode(7, INPUT_PULLUP): 함수의 두 번째 매개변수 INPUT을 INPUT_PULLUP으로 수정하면 디지털 7번 핀에서 내부 풀업 저항을 사용할 수 있다.아두이노의 회로 구성 및 스케치 코드
아두이노 회로 구성

스케치 코드
// c# code
//
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
// 1초에 9600비트로 데이터 전송
pinMode(8, OUTPUT); // 8번 디지털 핀을 출력 모드로 설정
pinMode(7, INPUT); // 7번 디지털 핀을 입력 모드로 설정
}
// loop() 함수 :
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
int readValue = digitalRead(7); // 입력 핀의 값(HIGH 혹은 LOW)을 읽어 변수에 저장
Serial.println(readValue); // 변수값(1 혹은 0)을 직렬 모니터에 출력
if(readValue == HIGH) // 만약 읽은 값이 HIGH면
{
digitalWrite(8, HIGH);
}
else // 만약 읽은 값이 HIGH가 아니면
{
digitalWrite(8,LOW);
}
}

아두이노의 회로 구성 및 스케치 코드

// c# code
//
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
// 1초에 9600비트로 데이터 전송
pinMode(8, OUTPUT); // 8번 디지털 핀을 출력 모드로 설정
pinMode(7, INPUT); // 7번 디지털 핀을 입력 모드로 설정
}
// loop() 함수 :
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
int readValue = digitalRead(7); // 입력 핀의 값(HIGH 혹은 LOW)을 읽어 변수에 저장
Serial.println(readValue); // 변수값(1 혹은 0)을 직렬 모니터에 출력
if(readValue == HIGH) // 만약 읽은 값이 HIGH면
{
digitalWrite(8, HIGH);
}
else // 만약 읽은 값이 HIGH가 아니면
{
digitalWrite(8,LOW);
}
}
PIR 센서가 움직임을 감지하면 디지털 7번 핀에 HIGH 신호가 전달되어 LED에 불이 켜진다. 그리고 움직임을 멈추고 기다리면 1초 뒤에 LED 불이 꺼진다.
움직임을 감지할 대상인 객체가 PIR 센서 범위 내에 있으면 readValue 값은 HIGH이고, 센서 범위에서 벗어나면 readValue 값이 LOW이다.
실행 결과
