국내 최초 국가기술자격증 전문 사이트! - 올배움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,378

번호 강좌명 제목
2918 식품안전기사(박대준) 919페이지 84번 (1)
2917 건축기사 한국사 서양건축 (1)
2916 식품안전기사(박대준) 파이프 문제 (1)
2915 콘크리트기사(김현우) 경량골재 콘크리트 질문 입니다 (1)
2914 품질경영기사(이정훈) 2011년 2회 기출문제 (1)
2913 공조냉동기계기사(임종현) 유온의 상승 원인 (1)
2912 건축기사 건축구조 설계인장강도 문의 (1)
2911 산림기사(권현준) 2014년 3회 시행-5 질문입니다. (1)
2910 식품안전기사(박대준) 농도 및 함량계산 (1)
2909 콘크리트기능사(김현우) 현장배합문제 문의드립니다 (1)
   136  137  138  139  140  141  142  143  144  145  146  147  148  149  150