IT Info
아두이노 - 커패시터 이용 빛 감지
로픽
2017. 4. 22. 10:07
300x250
커패시터 이용 빛 감지
* 커패시터는 전하를 충전하는 소자
* 전체적인 과정
1. 커패시터를 충전하기 위해 I/O핀을 HIGH로 놓는다.
2. 커패시터가 충분히 충전될 만큼 기다리고
3. I/O핀을 입력으로 전환하고
4. 시간을 체크
5. 전압이 2.1이하로 떨어지면 다시 시간을 체크하여 이전 시간 값과 차를 구한다.
long rcTime(int pin);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
tone(4,3000,1000);
delay(1000);
}
void loop() { //왼쪽 라이트 값을 출력한다.
long tLeft = rcTime(8);
long tRight = rcTime(6);
Serial.print("tLeft = ");
Serial.print(tLeft);
Serial.print(" us ");
Serial.print("tRight = ");
Serial.print(tRight);
Serial.println(" us");
delay(1000);
}
long rcTime(int pin)
{
pinMode(pin,OUTPUT); // 출력포트설정
digitalWrite(pin, HIGH); //0.001초 동안 HIGH신호 전기 공급
delay(1);
pinMode(pin, INPUT); //입력포트 설정
digitalWrite(pin, LOW); //전기 끊기
long time = micros(); //현재시간 마이크로단위로 체크
while(digitalRead(pin)); // 읽기를 통해서 전력 소모
time = micros() - time; //그 후 현재시간과 이전에 측정한 시간 체크 후 출력
return time;
}
//밝으면 전류 증가 커패시터에 저장된 전력사용 증가 시간차가 줄어든다.
//어두우면 전류 감소 커패시터에 저장된 전력사용 감소 시간차가 증가한다.
반응형