방범용 가로등을 만드는데요
아트메가로 제어할 부분이 적외선센서를 아트메가에 연결하고 사람이 감지되면 led에 불이 들어오게하는건데
이걸 아트메가로 제어하려고 합니다.
소스에대해 자세히는 몰라서 ,,,,
소스좀 도와주세요 ㅠㅠ
아트메가로 제어할 부분이 적외선센서를 아트메가에 연결하고 사람이 감지되면 led에 불이 들어오게하는건데
이걸 아트메가로 제어하려고 합니다.
소스에대해 자세히는 몰라서 ,,,,
소스좀 도와주세요 ㅠㅠ
하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.
사용하실 거에 대해서만 간단히 설명 올려봅니다.
적외선 센서 사용 하신다고 하셨으니 발광부랑 수광부에 전압을 인가해 주시면
중간에 사람(혹은 물체)가 없으면 수광부에 전압이 high, 있으면 전압이 low 일 겁니다.(혹은 반대)
그원리를 사용해서 ADC(PF)에서 수광부의 전압을 계속해서 체크 하시다가 큰변화가 발생 하였을때
행동을 하게 하면 되겠네요.
main에서
DDRF = 0x00;//ADC로 사용 선언
DDRC = 0xFF;// io port로 사용선언
PORTC = 0xff;//led 꺼져 있음
ADMUX = 0x0;//ADC0 번 사용
ADCSRA = 0x87;//ADC범위 설정
delay_ms(5);
while(1){
ADCSRA = 0xC7; // 변환시작
while(ADCSRA & 0x10) == 0);
ad_val = (int)ADCL + ((int)ADCH<<8); // 변환값 저장
if(ad_val >615){
PORTC = 0x00;//led 켜짐
delay_ms(1500); // 1.5초 유지
PORTC = 0xff; // led 꺼짐
}//if end
}//while end
이 정도하면 될듯.. 막쓴거라 회로랑 연결하셔도 동작 확인하시고
거기에 맞쳐 프로그랩 조정하시면 (책을 참조하시는게 빠름)
원하는 결과를 얻을 수 있을 거라 생각합니다. ^^