질문게시판 > atmega128 초음파 센서로 신호등 시간초 늘리기

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

atmega128 초음파 센서로 신호등 시간초 늘리기

페이지 정보

작성자 서동씨 작성일22-06-18 16:34 조회359회 댓글0건

본문

 

코드를 입력하고 연결을 하면 초음파 센서가 작동을 안하는지 if(dist > 50) 이부분이 안돌아 갑니다..ㅠㅠㅠ 

 

제가 if문을 잘못적은건지 핀을 잘못 꼽은 건지 이해가 안돼서 질문을 드려요 ..ㅠㅠ

 

 

#include <mega128.h>   //mega128보드 라이브러리

#include <delay.h> //시간지연 함수 라이브러리

#define TRIGGER PORTD.0  

#define Echo  

     

typedef unsigned char u_char;

unsigned char num[10] = {0x67, 0x7f, 0x27, 0x7d, 0x6d, 0x66, 0x4f, 0x5b, 0x06, 0x3f };

unsigned int dist = 0, cnt = 0; //거리 측정 변수

int i = 0;

 

 

void main(void)

{   

    // 초기화: LED

    DDRC = 0xFF;  

    DDRE = 0xFF;

      

    PORTC = 0xFF;  

    PORTE = 0xFF;  

    delay_ms(50);

    

    // 초기화 : 초음파

    TRIGGER = 0; //트리거 초기화

    TIMSK = 0x65;  //타이머카운터 함수 ↓      

    TCCR0 = 0x8;         

    TCNT0 = 176;    

    TCCR2=0x00;                                                                                       

    TCNT2 = 138;               

                                                                    

    SREG = 0x80; //전역 인터럽트 설정      

    delay_ms(50);

    

 

    

   

    

    while(1){

    

        

        cnt = 0;

        TRIGGER = 1; //ECHO 출력          

        delay_us(15);

        TRIGGER = 0;

        

        DDRC = 0xFF;

        PORTC = 0x0F;

        PORTE = num[i];

        delay_ms(1000);

        i++;

         if(i ==11){

            i=0;

            DDRC = 0xFF;

            PORTC = 0xF0;

            delay_ms(5000);

            }

     } 

        

        while(PIND.1 == 0);    

        TCNT2 = 138;

        TCCR2 = 0x03;    

        

        while(PIND.1 != 0){    

            if(cnt > 300) break; // 3m보다 크면 측정 불가

        }                                               

        

        TCCR2 = 0x00;   

        

        if(cnt > 2 && cnt < 300) dist = cnt;

        else dist = 300;     

        

        if(dist > 50)

        { 

                            

            PORTC = 0b11111101;

            PORTC = 0b11111111;

            for (i=0;i<11;i++)

            {

            PORTE = num[i];

            delay_ms(1000);

            }      

        }        

        delay_ms(50);

    } 

// 초음파 센서 거리 측정

// 1/16us * 8 * (256 -138) = 59us

interrupt [TIM2_OVF] void time2(void)

{

    TCNT2 = 138;

    cnt++;

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 359

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 PIC 블루투스 연결 댓글[18] 픽공부 새글 10:28
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴 새글 22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌 새글 22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥 새글 22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡 새글 22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이  22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
질문 아두이노 압력센서 연동 질문 댓글[4] dbice  22-07-23
질문 아두이노 버튼 누르기 문의 댓글[1] 김형근  22-07-23
질문 HM10 다중페어링 댓글[1] ㅎㅋㅎㅋㅎ  22-07-22
질문 모터드라이브 선정 댓글[6] 조숩인  22-07-22
질문 ad9850 sin파 2 댓글[6] 첨부파일opqr  22-07-21
질문 ad9850 sin파 합성 댓글[7] 첨부파일opqr  22-07-20
질문 특정값이 n초이상,n번 이상 연속될경우를 감지하는 함수… 댓글[4] 우수  22-07-17
질문 delay를 millis함수로 바꾸는데 질문있습니다. 댓글[12] 첨부파일뉴비에오  22-07-16
질문 피에조 부저로 맬로디 만들기인대 코딩 까지 했는데 아두… 댓글[2] 첨부파일mingu123  22-07-15
질문 블루투스와 안드로이드 연동관련 질문입니다! ㅎㅇㅎㅇ  22-07-14
질문 아두이노간 블루투스 통신에 대해서 질문있습니다 첨부파일뉴비에오  22-07-13
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전