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

번호 강좌명 제목
2822 건축산업기사 안녕하세요 (1)
2821 건설재료시험기사(김현우) 슬럼프 자 (1)
2820 건설재료시험기사(김현우) 작업형 질문 드립니다 (1)
2819 식품기사(박대준) 식품기사 실기 실험 (1)
2818 측량및지형공간정보기사 B점은 프리즘이 아닌 말뚝의 못을 관측하는 할때 (1)
2817 산림기사(권현준) 인공림의 정의 (1)
2816 화약류관리기사(신) 진동측정기 아웃풋 해석 방법 (1)
2815 측량및지형공간정보기사 교수님 외업 질문 드려요 (1)
2814 건설재료시험기사(김현우) 질문드립니다. (1)
2813 건축기사 387p 35번 문제 (1)
   136  137  138  139  140  141  142  143  144  145  146  147  148  149  150