wvogel日記

自分用の技術備忘録が多めです.

和表示

LCD処理の続き


下のプログラムによって、2段目に、足し算の結果が表示されていく

void setup()
{
  lcd.begin(2,16);
  lcd.clear();
  lcd.print("hello w-vogel");
  lcd.setCursor(2,1);
  lcd.print("Studierst Deutsch!");
  delay(2000);
}

void loop()
{
  int  i = 10;
  int  j;
  int  sum = 1;
  
  for(j = 1; j <= 30; j++){
    lcd.clear();
    delay(800);
    lcd.setCursor(2,1);
    lcd.print(sum ,DEC);
    lcd.print("+");
    lcd.print( j ,DEC);
    lcd.print("=");
    sum = sum + j;
    lcd.print(sum,DEC);
    delay(3000);
  }
}


最初、for文の中でlcd.clear();
としたら、文字化けして数値が表示されなかった。
どうやっても巧く行かず、なぜだろう、と考えていたら、答えは上のソースコードの中に
lcd.clear();
の処理に時間がかかるためでした。
これを処理するのに十分な時間、delay関数を使って待ってやるとうまく動作しました。
今displayには211+21=232と表示されてた笑
なんか、これ見てると携帯電話が普及し始めたころのこと思い出す


for文を

  for(j = 1; j <= 30; j++){
    if(j % 2 == 1){
      lcd.clear();
      delay(800);
      lcd.setCursor(0,0);
    }
    lcd.print(sum ,DEC);
    lcd.print("+");
    lcd.print( j ,DEC);
    lcd.print("=");
    sum = sum + j;
    lcd.print(sum,DEC);
    delay(2000);
    lcd.setCursor(0,1);

とすることで、より見やすくなった