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;
}
//밝으면 전류 증가 커패시터에 저장된 전력사용 증가 시간차가 줄어든다.
//어두우면 전류 감소 커패시터에 저장된 전력사용 감소 시간차가 증가한다.
반응형
'IT Info' 카테고리의 다른 글
마리아DB - error 1698 (칼리리눅스, php, mariadb) (0) | 2017.09.24 |
---|---|
AdBlock for youtube - 유튜브 광고차단(애드블록) (0) | 2017.07.29 |
아두이노 - 밝은 빛에서 주행 멈추기 (0) | 2017.04.22 |
아두이노 - 포토트랜지스터 수신 광을 전압으로 (0) | 2017.04.22 |
Arduino - 아두이노 IDE(소프트웨어) 설치 (0) | 2016.10.10 |