MCU 에서 HIGH 와 LOW 의 경계 값에 대하여
http://www.alldatasheet.com/datasheet-pdf/pdf/163111/ATMEL/ATTINY25.html
MCU 는 ATTINY25를 사용하고있습니다.
초음파 거리센서의 값이 자꾸 튀어서 질문올립니다ㅎㅎ;;
전체 회로도도 첨부합니다.
MCU 에서 클럭을 주기적으로 발생시켜서LS1에서 송신합니다.
송신한 음파를 다시 LS2로 수신해서 동그라미로 표시된 부분(AIN1,AIN0)에 0~5V 구형파 파형이 발생합니다.
거리가 가까우면 AIN0이 LOW로 트리거되고 멀면 AIN1이 LOW로 트리거 되는것같습니다.
AIN1 과 AIN0 부분을 다시 MCU 로 받아서 0인지 1인지를 판단하게 됩니다.(0이면 수신이 된것입니다)
만약 두개다 레벨이 1값이면(AIN1 과 AIN0 에서 모두 수신을 못하면)
최종거리값은 거리값은 0 이됩니다. 문제는 사람이 가까이있는데도 0이 된다는 점이 문제입니다.
제가 의심되는 부분은 AIN0과 AIN1이 0~5V 구형파긴 하지만 어쨌든 아날로그 값이기 떄문에 중간에 애메한값
예를 들면 2.6 V 같은 값들 떄문에 인식을 잘못하는것 아닌지 하는 의심이듭니다.
혹시 대부분의 MCU 칩에는 슈미트 트리고 회로가 있어서 정확한 0과1을 만들수있나요?(위의 MCU는 ATTINY25
입니다. 데이터시트상에서는 슈미트트리거라는 말은 찾지 못했습니다)
아니면 1로 확실히 값을 정할수가 있나요?
만약있다면 어디서부터 어디까지가 0이고 1인지 알수있을까요??
제가 생각한 문제 말고도 혹시 다른 문제가 있나요?ㅜㅜ
답변부탁드립니다. 감사합니다!
얼마나 가까이에서 실험을 하고 있는지 모르겠군요.
로직 레벨의 문제가 아니고 다중 반사에 의한 문제일 수 있습니다.
그리고 일반적으로 수신 신호는 검파해서 검출합니다.
또 AIN0는 아무런 의미가 없습니다.
로직 레벨의 문제인지는 신호를 오실로스코프로 확인하면 되겠지요.