Arduino-Button
11/11
11/11
本次課程使用到的零件為按鈕,是在電路中相當重要的零件,介紹了其構造與功能並嘗試應用。
本次課程也對於撰寫程式有進一步的認識(鮑率、腳位、if與Serial.println)
按鈕的構造
Ex:
Serial.begin(9600);
//即為Arduino會以9600的鮑率傳送訊號
附註:電腦在序列埠也要選到跟Serial.begin相同的鮑率才可以接收到正確的訊號,不然會接收到亂碼
利用digitalRead來讀取Arduino該腳位獲得的訊號
Ex:
digitalRead(13);
//即利用電腦讀取Arudino 13腳位獲得的訊號
在序列埠監控視窗中 print 出你想要print的東西,若是想要print 完後不換行則是將 Serial.println() 更改為 Serial.print()
Ex:
//我們就會在序列埠監控視窗中看到14一行字,並且自動換行
如果符合所訂的條件則執行放在if 裡面的程式碼,在條件中會常常用到的符號為 不等於: != 、 等於: == (其他的請參閱Arduino 官方 文件)v
Ex:
int x=2;
int y=2;
if (x + y == 4){
Serial.println("國服賽恩")
}
//這段程式碼在if 內寫了如果x+y的值為4,則會在監控視窗內看到 Hello World 這一串文字
而這段程式碼的執行結果因為符合我們訂的條件所以會在監控視窗內看到 Hello World 這一串文字
附註:若你想要寫一個多段條件程式碼則可以在if 的下面加多個else if 或者是一個else,兩者差異為else if可以附加條件,而else不行,所以通常else會放在if 跟 else if 這些判斷式之後執行都不符合的結果
Ex:
int x=digitalRead(A0);
int y=2;
if (x + y == 4){
Serial.println("這波不活了")
}
else if (x + y == 5){
Serial.println("god bless you, You are so gorgeous")
}
else {
Serial.println("我還有殭屍")
}
int buttonState = 0;
void setup()
{
pinMode(13, OUTPUT); // 13pin是Arduino內建LED的顯示角位
pinMode(7, INPUT); // 設定7pin是讀取訊號的位置
}
void loop()
{
buttonState = digitalRead(7);
if (buttonState == HIGH)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
}
/*透過這個程式碼,讓我們來看看序列埠是怎麼運作的,同時也來看看你所設定的數位訊號被讀出來是什麼樣子吧*/
int buttonState = 0;
int pushButton = 7; // 定義PIN7為 pushButton
void setup()
{
Serial.begin(9600);
pinMode(pushButton, INPUT); // 設定PIN7為訊號接收腳位
}
void loop()
{
buttonState = digitalRead(pushButton);
Serial.println(buttonState); // 小提示!往後如果遇到不知道是什麼的變數,就試著把它print出來看看吧!
delay(1);
}
關於button的練習
題目:按下按鈕時LED亮起沒有按下時LED不會亮。
程式碼:
// 定義按鈕和 LED 的引腳
const int buttonPin = 2; // 按鈕連接到數字引腳 2
const int ledPin = 13; // LED 連接到數字引腳 13
// 變量存儲按鈕的狀態
int buttonState = 0;
void setup() {
// 設置按鈕引腳為輸入,使用內建上拉電阻
pinMode(buttonPin, INPUT_PULLUP);
// 設置 LED 引腳為輸出
pinMode(ledPin, OUTPUT);
}
void loop() {
// 讀取按鈕的狀態
buttonState = digitalRead(buttonPin);
// 如果按鈕被按下,打開 LED
if (buttonState == LOW) { // 修改條件:按鈕按下時狀態為 LOW
digitalWrite(ledPin, HIGH);
} else {
// 如果按鈕沒有被按下,關閉 LED
digitalWrite(ledPin, LOW);
}
}
// 接線說明:
// - 按鈕的一端連接到 Arduino 的數字引腳 2,另一端連接到 GND (負極)
// - LED 的正極 (長腳) 連接到 Arduino 的數字引腳 13,負極 (短腳) 連接到 GND (負極)
// 程式說明:
// 使用內建上拉電阻,因此按鈕未按下時默認為高電位 (HIGH),按下時為低電位 (LOW)。
// 當按下按鈕時,按鈕狀態會變為低電位 (LOW),這時 LED 引腳會被設置為高電位,使 LED 亮起。
// 當按鈕未按下時,按鈕狀態為高電位 (HIGH),此時 LED 引腳也會保持低電位,LED 不會亮起。