Menu
CoddyTech

남은 숫자 지우기

Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 9번째.

숫자를 덮어 써도 새 숫자의 자릿수만큼만 문자가 바뀝니다. 10을 출력하고, 뒤로 돌아가서 9를 출력하면 화면에 90이 표시됩니다. 9가 1을 덮었지만, 0은 건드리지 않았기 때문입니다.

해결 방법은 두 가지입니다. 간단한 방법은 숫자 뒤에 공백을 몇 개 출력해 더 긴 숫자가 남긴 자릿수까지 덮는 것입니다.

lcd.setCursor(0, 1);
lcd.print(reading);
lcd.print("    ");   // 이전에 표시된 숫자를 최대 네 자리까지 덮어씀

다른 방법은 lcd.clear()입니다. 이 함수는 화면 전체를 지우고 커서를 왼쪽 위에 놓습니다. 출력한 다른 내용도 모두 지워지므로 전부 다시 출력해야 하며, 초당 여러 번 화면을 지우면 깜박입니다. 바뀌는 숫자 하나만 표시할 때는 공백을 사용하는 편이 낫습니다.

challenge icon

챌린지

쉬움

아래쪽 행에는 노브 값이 표시되지만, 노브를 1023보다 낮추면 이전 숫자가 남아 있습니다. 이를 수정하세요:

  • 값을 출력한 뒤, 남은 숫자를 덮도록 공백을 출력하세요
  • 위쪽 행에는 Knob:를 유지하세요

실행을 누르고 노브를 위아래로 돌린 다음 확인을 누르세요.

직접 해보기

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Knob:");
}

void loop() {
  int reading = analogRead(A0);
  lcd.setCursor(0, 1);
  lcd.print(reading);
  // 자릿수가 적은 숫자를 표시하면 이전 숫자의 일부가 남습니다. 여기서 수정하세요.
  delay(100);
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

디스플레이와 센서의 모든 레슨

직접 연습해 보세요: Arduino 플레이그라운드