☛ 功能說明

使用 Arduino 開發板控制 LCD 1602 在第 0 行第 0 列顯示字元 “ Up Counter ”,在第 0 行第 1 列顯示 00 ~ 99 的計數值,每秒上數加 1。

☛ 使用材料

Arduino UNO R3 開發板 × 1、LCD 1602A 顯示器模組 × 1、可變電阻 20KΩ × 1、電阻 220Ω × 1 。

☛ 電路圖及麵包板接線圖

☛ 程式碼

#include<LiquidCrystal.h>               // 使用 LiquidCrystal.h 函式庫

LiquidCrystal lcd(12,11,5,4,3,2);       // 宣告 lcd 變數並定義使用接腳
int counts=0;                           // 計數值

void setup()
{
     lcd.begin(16,2);                   // 使用 16×2 LCD
     lcd.setCursor(0,0);                // 設定游標在第 0 行第 0 列
     lcd.print("Up Counter");           // 顯示字元 "Up Counter"
}

void loop()
{
     lcd.setCursor(0,1);                // 設定游標在第 0 行第 0 列
     if(counts<10)                      // 計數值小於 10
          lcd.print("0");               // 十位數補 0
     lcd.print(counts);                 // 顯示計數值
     delay(1000);                       // 延遲1秒
     counts++;                          // 計數值加 1
     if(counts==100)                    // 計數值等於 100
          counts=0;                     // 清除計數值為 0
}

 

☛ 練習

⑴ 設計 Arduino 程式,在第 0 行第 0 列顯示字元 “ Down Counter ”,在第 0 行第 1 列顯示 99 ~ 00 計數值,每秒下數加 1。

#include<LiquidCrystal.h>               // 使用 LiquidCrystal.h 函式庫

LiquidCrystal lcd(12,11,5,4,3,2);       // 宣告 lcd 變數並定義使用接腳
int counts=99;                          // 計數值

void setup()
{
     lcd.begin(16,2);                   // 使用 16×2 LCD
     lcd.setCursor(0,0);                // 設定游標在第 0 行第 0 列
     lcd.print("Down Counter");         // 顯示字元 "Down Counter"
}

void loop()
{
     lcd.setCursor(0,1);                // 設定游標在第 0 行第 0 列
     if(counts<10)                      // 計數值小於 10
          lcd.print("0");               // 十位數補 0
     lcd.print(counts);                 // 顯示計數值
     delay(1000);                       // 延遲1秒
     counts--;                          // 計數值減 1
     if(counts<0)                       // 計數值小於 0
          counts=99;                    // 清除計數值為 99
}

 

⑵ 設計 Arduino 程式,在第 0 行第 0 列顯示字元 “ Up Counter ”,在第 0 行第 1 列顯示 0000 ~ 9999 計數值,每秒上數加 1。

#include<LiquidCrystal.h>               // 使用 LiquidCrystal.h 函式庫

LiquidCrystal lcd(12,11,5,4,3,2);       // 宣告 lcd 變數並定義使用接腳
int counts=0;                           // 計數值

void setup()
{
     lcd.begin(16,2);                   // 使用 16×2 LCD
     lcd.setCursor(0,0);                // 設定游標在第 0 行第 0 列
     lcd.print("Up Counter");           // 顯示字元 "Up Counter"
}

void loop()
{
     lcd.setCursor(0,1);                // 設定游標在第 0 行第 0 列
     if(counts<10)                      // 計數值小於 10
          lcd.print("000");             // 十位數至千位數補 0
     if(counts>=10 && counts<100)       // 計數值大於等於 10 小于 100
          lcd.print("00");              // 百位數至千位數補 0
     if(counts>=100 && counts<1000)     // 計數值大於等於 100 小于 1000
          lcd.print("0");               // 千位數補 0
     lcd.print(counts);                 // 顯示計數值
     delay(1000);                       // 延遲1秒
     counts++;                          // 計數值加 1
     if(counts>9999)                    // 計數值大於 9999
          counts=0;                     // 清除計數值為 0
}