附錄 Arduino 開發板驅動程式碼如下:
#include
//引用程式庫
LiquidCrystal_I2C lcd(0x27, 20, 3); //16列4行
byte potPin = A0; //analog腳位
byte ledPin = 5; //nano可以PWM的腳位
int potValue = 0; //設定A0讀取變數為potValue,類比輸出值
byte analog = 0; //儲存轉換範圍值
double V = 0; //全部都能用double來,可以取很多小數點
boolean state = 0; //宣告一個按鈕狀態的變數
void setup()
{
pinMode(4,INPUT_PULLUP); //特定輕觸型按鈕要打INPUT_PULLUP
///////////////////////////////////////////////
lcd.begin(); //開始
lcd.home(); //游標設定在原點
lcd.setCursor(0,0); //游標設定在(0列,0行),可選擇一個用就好
lcd.print("Hello"); //標好游標後輸出文字
delay(500);
lcd.setCursor(1,1); //游標設定在(1列,1行)
lcd.print("Wellcome to System"); //接再"hello world"後輸出文字
delay(800);
lcd.clear(); //lcd螢幕清除
///////////////////////////////////////////////
pinMode(ledPin, OUTPUT); //led腳位輸出
Serial.begin(9600); //讀取數值速度(鮑率)
//////////////////////////////////////////////
}
void loop()
{
potValue = analogRead(potPin); //讀取A0的值代入
analog = map(potValue, 0, 1023, 0, 255); //0~1023是Arduino輸入的範圍,
0~255是調整範圍
Serial.print("analog="); //電腦監控視窗跑的數字
Serial.println(analog); //電腦監控視窗跑的數字
/////////////////////////////////////////////////////////
analogWrite(ledPin, analog); //給led輸出多少
/////////////////////////////////////////////////////////
lcd.setCursor(0,0); //lcd游標再(0列,0行)
lcd.print("analogRead="); //lcd顯示"analog="
lcd.print(int(analog)); //lcd在"analog="後顯示變數analog,記得用
double之類的
/////////////////////////////////////////////////
V =(double(analog))*5/255; //要把0~255數值轉換成輸出電壓0~5V
lcd.setCursor(0,1); //lcd在(0列,1行)
lcd.print("Output V="); //lcd顯示"Output V="
lcd.print(V); //在"Output V="後顯示V的數值
Serial.print("V="); //電腦監控視窗跑的數字
Serial.println(V); //電腦監控視窗跑的數字
delay(50);
lcd.clear();
////////////////////////////////////////////////
boolean state = digitalRead(4); //設定一個變數測量狀態
Serial.print("state="); //顯示變數結果
Serial.println(state); //顯示變數結果
if (state == 0)
{
lcd.setCursor(1,2);
lcd.print("push!");
}
/////////////////////////////////////////////////////
}
張敏娟
指導教授 輔仁大學物理系 副教授
吳翼翀
學生 輔仁大學物理系 光電物理組 四年級