iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
自我挑戰組

硬體學習日記系列 第 22

Day-22 arduino介紹-4 setup、 loop

  • 分享至 

  • xImage
  •  

介紹了關於寫arduino的IDE以及他的開發模擬器,今天要來介紹的是開啟新檔案後,就已經存在的setup及loop~還有一些functions的介紹。

void setup()

這邊是用來設定初始狀態的地方,例如設定pin腳的mode(屬於input還是output)、LCD板子顯示器的狀態、一開始的電位狀態、時間的設定等其他需要在程式執行前完成的設置。

setup只會執行一次,執行好後就會開始執行loop的部分。

void loop()

這裡是寫主程式的地方,且會一直重複執行。在setup()執行完後,就會開始執行loop,一直執行直到關閉arduino。

這裡寫個簡單的範例。

int ledPin = 1; //使用1號pin腳的LED

void setup() //初始設置,一開始執行或重置時執行一次
{
	pinMode( ledPin, OUTPUT ); //將ledPin設置為輸出模式
}

void loop() //主程式,會不斷重複執行,直到關閉檔案
{
	digitalWrite( ledPin, HIGH ); //ledPin亮燈
	delay( 300 ); //持續這個狀態0.3秒
	digitalWrite( ledPin, LOW ); //ledPin關燈
	delay( 300 ); //持續此狀態0.3秒
}

上面這個例子,輸出結果為1號pin腳的led會亮0.3秒後暗0.3秒再繼續亮0.3秒,這樣不斷亮暗重複。

那在這個例子中,使用了幾個functions:pinMode()、digitalWrite()、delay()。
稍稍介紹一下這幾個function的功能:

  1. pinMode(pin,Mode):屬於數位IO,用來設定pin腳為輸入(INPUT)或是輸出(OUTPUT)。
  2. digitalWrite(pin,value):屬於數位IO,其中value為HIGH或LOW,用來改變pin腳的狀態。
  3. delay(ms):時間的延遲,暫停程式執行。要注意的是,delay的單位是毫秒,所以如果要暫停1秒,即為delay(1000)。在上述例子中,就是依靠delay的使用來讓LED持續亮0.3秒。

那如果是使用類比元件,就會是使用analogWrite。

好啦,那在上一篇有提到,IDE裡面就有提供很多不同功能的sample code,如果有興趣的話,可以點開來看看~

那寫arduino跟寫C真的很像,除了在loop寫入主程式,我們也可以自己寫function,寫法都跟C一模一樣,只是main變成loop而已XD
那arduino在開發的過程中,通常也不會像我的舉例一樣那麼簡單只有一個燈的開關XD遇到很多功能結合在一起的時候,使用function會比較好~

這邊舉個使用function的例子:

int ledPin = 1; //使用1號pin腳的LED
int buzzer_pin = 11; //蜂鳴器的腳位

void setup() //初始設置,一開始執行或重置時執行一次
{
	pinMode( ledPin, OUTPUT ); //將ledPin設置為輸出模式
  pinMode( buzzer_pin, OUTPUT ); //將蜂鳴器設為輸入模式
}

void loop() //主程式,會不斷重複執行,直到關閉檔案
{
	initial(); //初始化,把所有元件功能都關掉
  light(); //控制LED燈
  buzzer(); //控制蜂鳴器
}

void initial()
{
  digitalWrite(ledPin,LOW); //關燈
  noTone(buzzer_pin); //關蜂鳴器
}

void light() //燈光閃爍
{
  digitalWrite(ledPin,HIGH);
  delay(300);
  digitalWrite(ledPin,LOW);
  delay(300);
  digitalWrite(ledPin,HIGH); //除非執行到initial,除非一直開
}

void buzzer() //打開蜂鳴器
{
  tone(buzzer_pin,1046,500);
  delay(1000);
}

https://ithelp.ithome.com.tw/upload/images/20240830/20168362voEefagPRp.png
在這裡使用了LED燈及蜂鳴器,蜂鳴器的使用之後會再介紹。執行好setup後loop就不斷的執行,所以LED跟蜂鳴器就會先被關掉、然後跑到他們的function後被啟動、再被關掉、再啟動這樣不斷地執行,直到關掉。

今天就先到這邊~


上一篇
Day-21 arduino介紹-3 模擬器
下一篇
Day-23 arduino介紹-5 元件屬性&接線
系列文
硬體學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言