국내 최초 국가기술자격증 전문 사이트! - 올배움kisa


저작권지킴이

저작권지킴이 캠페인안내

고객센터

고객센터

메뉴 바로가기

쇼셜 바로가기

평생교육이용권 안내

  • 유튜브-국가기술자격증TV
  • 올배움kisa 페이스북
  • 올배움kisa 인스타그램
  • kisa 블로그
  • 올배움kisa - 카카오톡 채널
  • 인터넷 원서접수 - 큐넷
  • 네이버카페-자격증 닷컴
  1. >
  2. 커뮤니티
  3. >
  4. 베스트 질문 답변

베스트 질문 답변

 
작성일 : 21-10-25 23:34
 
[전자산업기사(박성호)] 유형1번 질문

교수님 안녕하세요?

유형1번 작동 관련해서 궁금증 있어서 질문 드립니다.

U:값이 거리에 따라 증가 감소 하는 것 까지는 알겠으나, 가까운 물체가 없으면 가끔씩 (0,0)부분에 있는 T값이 막대모양으로 바뀌곤 합니다.

 

혹시 코드값이 문제가 있는지 알려주시면 감사하겠습니다.

참고하시라고 영상은 카톡방에 보냈습니다!

감사합니다!

 

void ultra_mode()

{

 digitalWrite(trig_pin,HIGH);

 delayMicroseconds(10);

 digitalWrite(trig_pin,LOW);


 duration = pulseIn(echo_pin,HIGH);

 distance = duration / 29 / 2;


 lcd.setCursor(0,1);

 lcd.print("U:");

 lcd.setCursor(2,1);

 lcd.print("              ");  <--------빈칸 총 14개

 int i = distance/5;

 int j = distance%5;

 Serial.print(distance);

 Serial.print(" ");  <------- 빈칸 1개

 Serial.print(i);

 Serial.print(" ");  <------- 빈칸 1개 

 Serial.print(j);

 lcd.setCursor(2,1);

 if(i>=14)

 {

  for(int k=0; k<14; k++)

  {lcd.write(5);}

  }

 else if(i<14)

 {

  for(int k=0; k<i; k++)

  {lcd.write(5);}

  }

 lcd.setCursor(i+2,1);

 lcd.write(j);

}


올배움 21-10-26 09:47
 
안녕하세요.

lcd.setCursor(0,1);
  lcd.print("U:");
  lcd.setCursor(2,1); 
  lcd.print("              "); 
  int i = distance/5;
  if(i>=14)
  {
    i=14;
  }
  int j = distance%5;

i 값은 칸 하나를 채워주는 수입니다.
해당 사항은 lcd에서 표시할 수 있는 최대치인 14를 넘어가게 되면서 발생하는 현상으로 보이는데요.
여기서 lcd에서 표시할 수 있는 14칸을 넘게되면 i값에 강제로 14를 넣어주면 제대로 표기 될 겁니다.
코드에
if(i>=14)
{
  i = 14 ;
}
이런식으로 추가를 해주시면 정상적으로 작동이 됩니다.

감사합니다.
 

Total 4,598

번호 강좌명 제목
3138 건설재료시험기사(김현우) 평판재하시험시 지지력 게수 변환 문제 (1)
3137 품질경영산업기사(이정훈) 제19강 공업통계 문제풀이(2) 질문입니다. (1)
3136 산림산업기사(권현준) 용어 (1)
3135 품질경영기사(이정훈) 제1장 공업 통계 P16~ (1)
3134 식품안전기사(박대준) 공전 질문이요 (1)
3133 건축기사 상담부탁드립니다 (1)
3132 산림기사(권현준) 입목도 정의 (1)
3131 산림기사(권현준) 방금 한 질문 재질문 드리는데요.. (1)
3130 산림기사(권현준) 임지평가방법(필답) (1)
3129 콘크리트기능사(김현우) 슬럼프 (1)
   136  137  138  139  140  141  142  143  144  145  146  147  148  149  150