BASIC4MCU | 센서 | 초음파센서 | 1채널 초음파센서 SRF04 and SRF05 -128 AVRStudio
페이지 정보
작성자 키트 작성일2017-08-23 14:41 조회2,171회 댓글0건본문
#include <avr/io.h>
#include <stdio.h>
#include <util/delay.h>//
#define Trigger_ON PORTC|=1 //초음파 트리거 PC0
#define Trigger_OFF PORTC&=~1
#define Echo (PINC&0x04) //초음파 에코 PC2
//
char s[50];
//void tx(char ch){ while(!(UCSR0A&0x20)); UDR0=ch; }
void serial_str(char *data){ while(*data)tx(*data++); }
//
unsigned int getEcho(){Trigger_ON; _delay_us(10); Trigger_OFF; // 10uS
while(Echo==0x00); TCCR1B=0x02; TCNT1=0x00;
while(Echo!=0x00); TCCR1B=0x08;
return (TCNT1/116); //cm
}//
int main(void){
unsigned int range;
DDRA=0xFF; // LED PORT
DDRC=0x03; // PC0,PC1 ouput Trigger, PC2,PC3 input Echo
TCCR1B=0x08; // Set timer up in CTC mode
UCSR0B=0x18; UBRR0L=103; // 9600 baud
while(1){
range=getEcho(); _delay_ms(100);//
if(range<50)PORTA|=1; // PA0 ON
else PORTA&=~1; // PA0 OFF
//
sprintf(s,"Sensor:%d \r\n",range); serial_str(s);
}
}
댓글 0
조회수 2,171등록된 댓글이 없습니다.