Last modified date 2016-08-09
학교에서 라인트레이서를 만들게 된 적이 있는데, 당시 ST-7L, EL-7L을 가지고 발광부, 수광부를 따로 제작하였다.
당시 전자공학과로부터 SG-2BC 라는 제품을 제공받았으나, 어떠한 이유에서 인지 제대로 동작하지 않아 포기하였다.
그런데 오늘 다시 한번 도전을 하게 되었는데 매우 정상적이고 안정적으로 동작을 하는 것이 아닌가?!
그 이유를 알고 보니 정말 기초적인 문제여서 나를 엄청나게 당황하게 하였다.
당시 참고한 자료인데 댓글로 해당 소자의 사용법을 정확히 알려주신분이 계신다.
자료 - http://cafe.naver.com/carroty/196981
내가 당시 잘못 했던 문제는
데이터 시트의 이 사진에서 1, 2, 3, 4번의 위치를 잘못 보았기 때문이다. 위쪽에 판판한 면이 있는 것 까지는 인지하였으나,
R0.2 라고 써있는 저 점을 못봐서 위치를 거꾸로 했던 것이다.
즉, 저 사진의 1, 2 번은 소자를 밑에서 바라본 모습에서의 위치이다.
브레드보드에 꼽아서 사용 할 경우 1, 2 번이 우측에 위치하게 되는 것이다..........
따라서 우측이 발광부가 되겠고, 좌측이 수광부가 되겠다.
위 자료 링크의 사진을 퍼와서 설명하자면,
이렇게 핀이 매칭되는것이 맞는 것이다.
지난번에는 혼자 데이터시트 보고 하다가 실패했지만,
이번에는 위 브레드보드 사진을 보고 배선을 하였더니 아주 정상적으로 작동한다.
1번핀은 100옴 저항으로 GND에 연결
2번핀은 5V 또는 아두이노의 디지털 출력으로 전원 제어
(후자가 소자의 수명에 더 도움이 되겠으나, 디지털 출력 후 적당한 딜레이가 있어야 소자에 충분한 전류가 들어가는것 같다. 딜레이 없이 바로 값을 읽으면 너무 낮게 측정됨)
3번핀은 5V
4번핀은 10K옴 저항으로 GND에 연결, 저항과 핀 사이에 아두이노 입력으로 연결
테스트용 코드 (2번포트에 2번핀 연결, A0포트에 4번핀 연결)
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,1);
delay(10);
Serial.println(digitalRead(A0));
digitalWrite(2,0);
delay(100);
}
혹시나 나같이 별것도 아닌 것으로 헤메는 분이 있을까봐 포스팅하여 남긴다....;;
'개발 > Embedded' 카테고리의 다른 글
라즈베리파이에서 Node.js 시리얼 통신 하기 (0) | 2016.09.08 |
---|---|
라즈베리파이 Node.js 최신버전 설치 (0) | 2016.09.08 |
Fritzing 설치와 사용법 (0) | 2016.08.09 |
라즈베리파이 + 아두이노의 시리얼 통신 (4) | 2016.07.27 |
라즈베리파이 OS 설치부터 기본 설정까지 (4) | 2016.07.19 |