질문게시판 > sht11 atmega16으로 질문했었던 사람입니다 궁금한게있습니다

TODAY1,573 TOTAL2,413,062
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | sht11 atmega16으로 질문했었던 사람입니다 궁금한게있습니다

페이지 정보

작성자 양동이 작성일2020-08-26 14:59 조회8,291회 댓글2건

첨부파일

본문

	

 

질문에 답변해주셔서 감사합니다

하지만 저는 오실로스코프를 이용할 환경이 되지 않아서 다시 물어보겠습니다ㅠㅠ

이번엔 궁금한 점만 집어서 물어보겠습니다

저는 avr studio환경에서 sht11과 atmega16으로 작업하고있습니다.

 

1. sht11 sample code를 보면 _nop_()라고 써진게 있는데 이걸 _delay_us()로 전부 바꾸어 주면 되나요?

_delay_us()를 쓰지않으면 문제가 생기나요?

 

2. sht11 datasheet를 보면 transmission start 후에 커맨드를 입력하고 ack가 있고 그 다음 측정하는거 같은데
ack부분에서 SCK는 atmega로 조절하고 DATA는 센서가 자동으로 low출력줬다가 high출력 준다고 하는데
센서가 이 동작을 수행하지 않아서 온,습도를 측정을 못하고 있는 것 같습니다

제가 따로 이 부분을 설정해야 하나요? 아니면 센서가 자동으로 DATA line을 변경하는건가요?

만약 센서가 자동으로 변경하는거라면 밑에서 어떤 부분이 잘못되었는지 한번만 봐주세요

그 부분만 가져왔습니다

부탁드립니다...

 

//SCK=portb,pin3  DATA=portb,pin2

#define DATA0   PORTB &= ~0x04

#define DATA1   PORTB |= 0x04

#define SCK0    PORTB &=~ 0x08

#define SCK1    PORTB |= 0x08

 

void s_write_mode(void)

{

    DDRB = 0x0c;

    PORTB = 0x0c;

}

 

void s_read_mode(void)

{

    DDRB = 0x08;

    PORTB = 0x0c;

}

 

 

char s_write_byte(unsigned char value) //이 value에는 습도cmd인 0x05와 온도 0x03을 썼습니다

{

    //s_write_mode(); 상태에서 시작

    unsigned char i, error = 0;

    for (i = 0x80;i>0;i/=2)

    {

        if (i&value)

        {

            DATA1;

        }

        else

        {

            DATA0;

        }

        SCK1;

        _delay_us(1);

        SCK0;

    }

 

    s_read_mode();

    DATA1;

    SCK1;

    SCK0;

    return error;

}

 

char s_read_byte(unsigned char ack)

{

    unsigned char i, val = 0;

 

    for (i = 0x80; i > 0; i /= 2)

    {

        SCK1;

        if ((PORTB&0x04)==~0)

            val = (val | i);

        SCK0;

    }

    if (ack == ACK)

    {

        DATA0;

        SCK1;

        _delay_us(1);

        SCK0;

    }

    else if (ack == noACK)

    {

        DATA1;

        SCK1;

        _delay_us(1);

        SCK0;

    }

    return val;

}

 

void s_transstart(void) //generates a transmission start

{

    // generates a transmission start 

    //           ____           ________

    // DATA:        |_____|

    //                 ___     ___

    // SCK : ___|   |___|   |______

    SCK0;   _delay_us(1);    

    SCK1;   _delay_us(1);

    DATA0;  _delay_us(1);    

    SCK0;   _delay_us(5);    

    SCK1;   _delay_us(1);    

    DATA1;  _delay_us(1);   

    SCK0;   _delay_us(1);   

}

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

댓글 2

조회수 8,291

master님의 댓글

master 작성일

sht11은 회로 연결에 문제가 있을 경우 고장이 잘 발생하기도 하고
통신은 오실로스코프나 로직아날라이저가 없이는 체크하기가 쉽지 않습니다.

양동이님의 댓글

양동이 작성일

답변 달아주셔서 감사합니다

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 14629
공지 사이트 이용 안내댓글[28] master 17-10-29 32549
질문 Atmega128 코드 질문댓글[2] 새글 이제막시작 16:56 24
질문 ATMEGA128a 스위치로 LED 제어 질문입니다.댓글[2] 새글첨부파일 야랙핑크 16:35 31
질문 Atmega128 온도센서 활용 재질문입니다.댓글[3] 새글첨부파일 donggle 16:24 26
답변 답변글 답변 : Atmega128 온도센서 활용 재질문입니다.댓글[1] 새글 master 17:31 25
질문 조도센서 재질문입니다.댓글[2] 새글 Tell 15:39 20
질문 stm32 tft(LCD) ILI9341 문제점 조언댓글[3] 새글첨부파일 지산동괴물쥐 13:54 20
질문 cds 센서 관련 질문입니다.댓글[1] 새글 Tell 13:42 21
질문 Atmega128 온도센서 활용 재질문입니다 새글 donggle 13:23 27
답변 답변글 답변 : Atmega128 온도센서 활용 재질문입니다 새글 master 13:51 22
질문 아두이노 모터 작동이 안합니다댓글[3] 이미지새글첨부파일 리셀 12:41 24
질문 현재 회로도에서 스위치를 달고싶습니다!댓글[4] 이미지새글 Ptype4 06:11 24
질문 dc모터 회전량을 늘리고 싶습니다 ㅠ댓글[9] 새글 승천 22-11-25 46
질문 아두이노 도움부탁드립니다!댓글[1] 새글첨부파일 리셀 22-11-25 24
질문 아두이노 로드셀 일정무게 초과 시 음성출력댓글[1] 새글 캡단일 22-11-25 27
질문 초음파 센서 2개를 이용한 카운트 새글 이이힝현 22-11-25 32
답변 답변글 답변 : 초음파 센서 2개를 이용한 카운트 새글 master 22-11-25 22
질문 ATmega128 7-Segment 푸시 스위치 제어댓글[1] 새글 At메가 22-11-24 68
질문 bwt61를 uart 통신으로 해보고싶은데댓글[1] 이미지 라칸 22-11-24 35
질문 LED, LCD, 버튼, 부저 0922tjdus 22-11-24 46
답변 답변글 답변 : LED, LCD, 버튼, 부저 master 22-11-24 29
질문 ATmega128 온도센서 활용 관련 질문입니다. donggle 22-11-24 69
질문 ATmega128 인터럽트를 이용한 타이머 카운터댓글[1] 코드비전 22-11-24 64
질문 아두이노 소프트웨어 시리얼 다수 사용 질문댓글[3] s은여우s 22-11-24 48
질문 초음파센서 거리를 인식해서 카운트댓글[6] 아독 22-11-24 57
질문 atmega128 버저 추가 초보중에최고 22-11-24 74
질문 버튼으로 외부인터럽트 동작구현 도움이 필요해요 비비빅 22-11-23 37
답변 답변글 답변 : 버튼으로 외부인터럽트 동작구현 도움이 필요해요 master 22-11-23 38
질문 제발 도와주세요 atmega128 오류입니다댓글[1] 코드비전 22-11-23 76
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기