學習目標:
- 使用Arduino配置好藍牙或者wifi模塊
- 學習使用python配置好藍牙或者wifi模塊
學習內容(筆記):
一、 Arduino語法基礎
Arduino語法是基于C++的語法,C++又是c基礎上增加了面向對象思想等進階語言。那就只記錄沒見過的。
- 單多行注釋 // 和 /**/
- 變量(數字,字符串,布爾,對象)
- 條件語句 if-else,switch
- 循環語句 for while
- 單多維數組 int arr[5]={1,2,3,4,5};
- 函數 void
01、pinMode:設置引腳的輸入輸出狀態
pinMode(pin,Mode):
參數:
Pin:引腳號;
Mode:INPUT、OUTPUT
02、digitalWrite:設置輸出引腳的高低電平狀態
digitalWrite(pin,value)
參數:
Pin:引腳號 ;
value:HIGH LOW
03、digitalRead:讀取引腳的狀態,并返回HIGH 或LOW
int digitalRead(pin)
參數:
Pin:引腳號
返回值:
int:1/0
04、analogRead:讀出模擬引腳上的電壓,并以二進制數值返回(0-1023)對應為0~5v
int analogRead(pin)
參數:
Pin:引腳號
返回值:
二進制數值返回(0-1023)對應為0~5v
05、analogWrite:給PWM引腳輸出電壓值
analogWrite(pin,value)
參數:
pin:引腳號 ;
value:具體的pwm值,(0~255對應表示一個周期的高電平占空比)
06、shiftOut:將一個字節的數據通過移位的方式逐位的輸出
shiftOut(dataPin,clockPin,bitOrder,value)
參數:
dataPin:數據引腳
clockPin:時鐘引腳
bitOrder:移位順序(MSBFIRST-高;LSBFIRST-低)
value:需要進行移位傳輸的值
說明:
在輸出數據時,當一位數據寫入數據輸出引腳時,時鐘引腳將輸出脈沖信號,指示該位數據已被寫入數據輸出引腳等待外設讀取。并且在使用本函數之前datapin和clockpin引腳應該設置為輸出狀態。本函數一次只能輸出一個字節的內容,也就是說最大一次只能輸出255,如果大于255,就要多次調用這個函數。
07、mills:回傳單片機從開始執行到現在目前的時間(單位:ms)
unsigned long mills()
返回值:
unsigned long 單位:ms
08、delay:占用單片機的時間(即延時,單位:ms)
delay(number)
參數:
number:其代表占用單片機的時間長度
09、delay Microseconds:占用單片機的時間(單位:us)
delay Microseconds( number)
參數:
number:其代表占用單片機的時間
10、pulseIn:讀取脈沖寬度。 從脈沖狀態為state開始,到脈沖狀態為~state為止。當然是由時間限制的
pulseIn(pin,state,timeout)
參數:
pin:模擬引腳號
state:讀取脈沖的類型(高或者低)
timeout:等待脈沖讀取完成的最長時間,如果參數中沒有這一個,那么默認就是1min
11、map() 將數字從一個范圍重新映射到另一個范圍。
函數原型:
map(value, fromLow, fromHigh, toLow, toHigh)
value:要映射的數
fromLow:當前值范圍的下限
fromHigh:當前值范圍的下限
toLow:目標值范圍的下限
toHigh:目標值范圍的上限
返回值:映射后的值
eg: (讀取IO0的模擬電壓(01023),并將其設置到IO9(0255)(其實也就是PWM))
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
12、串口相關
設置串口波特率:
Serial.begin(9600);
讀取某IO口參數:
int buttonState = digitalRead(pushButton);
讀取A0腳輸入值大小(0-5V對應0~1023):
int sensorValue = analogRead(A0);
串口顯示器輸出:
Serial.println()
產生pwm信號:
analogWrite(pin, val)//val 是 0~255 的整數值,對應電壓從 0 到+5V
二、 面包板和杜邦線(了解)
面包板用來快速搭接電路的工具;
優點:提高實驗效率,減少實驗故障發生率。
杜邦線用來連接元件,分為母母線,公母線,公公線(我目前沒遇到過要使用公線的情況,所以買了一些母母線連接)
三、點亮LED測試板子
bug:
上傳失敗: 未提供上傳端口
拿捏,粉色運行燈,藍色是D2引腳的LED,板子上只有一個區,所以在代碼中直接寫整型即可。
//定義LED引腳
int LED_PIN=2;
void setup() {// 開發板通電或者復位后執行,通常用來初始化,只運行一次// 設定引腳為輸出模式pinMode(LED_PIN,OUTPUT);// 點亮LEDdigitalWrite(LED_PIN,HIGH);}void loop() {// put your main code here, to run repeatedly://一個死循環,不斷的重復運行
}