본문 바로가기
공부,일/아두이노

아두이노 회로 실습 (1)

by fromnothing1 2021. 7. 16.

cds (조도 센서 실습)

 

void setup() {
 
 Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly
 int sensorValue = analogRead(A1);
 Serial.println(sensorValue);
 delay(100);
}

Interrupt

우노는 2 , 3 번 핀에만 interrup 생성 가능 

void setup() {
// put your setup code here, to run once:
	pinMode(13, OUTPUT);
	pinMode(2, OUTPUT);
	attachInterrupt(1, blink, CHANGE); // D3 핀에 인터럽트 설정
}
void loop() {
// put your main code here, to run repeatedly:
	digitalWrite(13, HIGH);
	delay(1000);
	digitalWrite(13, LOW);
	delay(1000);
}
void blink() {
	int button = digitalRead(3); // 버튼 상태 체크
	digitalWrite(2, button); // LED 제어
}

 

ch ) 인터럽트 사용중 delay 안먹힘 deleay 자체가 timer 인터럽트를 사용하기 때문에 

아두이노에서 인터럽트는 우선순위가 동등하기 때문에 delay의 tiemer 인터럽트가 작동되지 않는다. 

때문에 volatile 변수를 사용해서 가제적으로 for 문을 돌려서 delay 를 줘야한다. 

'공부,일 > 아두이노' 카테고리의 다른 글

아두이노 통신  (0) 2021.07.19
조이스틱  (0) 2021.07.19
초음파 센서  (0) 2021.07.19
아두이노 회로 실습 (by fritzing )  (0) 2021.07.15
아두이노 실습환경 구축  (0) 2021.07.14

댓글