BASIC4MCU | 질문게시판 | avr 아트메가 초음파 , 부저 센서 코딩 질문입니다.
페이지 정보
작성자 홍길동홍길동 작성일2020-11-08 23:04 조회6,189회 댓글1건본문
초음파센서 한개로 부저 한개를 울리게하는건 성공했지만
초음파센서 두개로 부저 한개를 울리게하는걸 실패했습니다.
초음파 센서 두개에 물체가 모두 닿으면 부저 소리가 안나고
아예 닿지 않거나 한개만 닿을 경우 부저가 울리는 것을 개인공부를 위해 도전하고있는데 잘안되네요 어떤것이 문제인지 모르겠습니다.ㅠㅠ
아래 코딩은 현재 진행중인 코딩이고, AVR PE6, PE7 포트에 초음파센서를 2개 모두 꽂아서 따로 포트추가는 안했습니다.
#include <avr/io.h>
#define F_CPU 16000000UL // 16 MHz
#include <util/delay.h>
#include <stdio.h>
//
#define TRIG 6 //TRIG: 출력 PE6
#define ECHO (PINE&0x80) //ECHO: 입력 0x80 : PE7
//
void buz(int c){
int i;
for(i=0; i<c; i++){ PORTB^=0x10; _delay_ms(1); } // 500Hz
}
//
int main(void){
unsigned int distance;
DDRB=0x10; //피에조 부저: 출력 // DDRB : PB4
DDRE=0x40; //TRIG=출력,ECHO=입력 //DDRE: PE6 : 0x40 에코
while(1){
PORTE|=0x40; _delay_us(10); PORTE&=~0x40; //TRIG //PE6
while(!ECHO); TCCR1B=2; TCNT1=0;
while( ECHO); TCCR1B=0; distance=TCNT1/116;
//
if (distance< 50){ buz( 0); } //5cm 이내 접근 // 0ms
else if (distance> 50){ buz( 10); } //5cm 이내 접근 // 10ms
//
_delay_ms(100);
}
}
댓글 1
조회수 6,189master님의 댓글
master 작성일
초음파센서 2개는 각각의 핀에 따로 꼽아야 합니다.
https://cafe.naver.com/circuitsmanual/41217
이 예제 참고하세요