畢竟物聯(lián)網(wǎng)專業(yè)赃春,不能忽略了原本應(yīng)該有的東西。
終于舍得翻開書看看Arduino的東西劫乱,做個(gè)小記錄织中。
呼吸燈最常見在智能手機(jī)上锥涕,主要是使用PWM實(shí)現(xiàn)。這是一種做到模擬輸出的方法狭吼。
1.模擬輸入
生活中的大多數(shù)信號都是模擬信號层坠,周圍的環(huán)境變化產(chǎn)生的物理量變化在Arduino中是采用0~5V電壓來表示的。
在Arduino上編號帶有A的引腳都是模擬輸入引腳刁笙,他們都具有ADC(這個(gè)不是MOBA的ADC破花,(lll¬ω¬) Analog-to-Digital Converter 數(shù)模轉(zhuǎn)換)功能,Arduino的模擬輸入功能可以將0~5V 電壓轉(zhuǎn)換為 0~1023范圍內(nèi)的整形
那么他主要是使用analogread(pin)函數(shù)來實(shí)現(xiàn)疲吸,read pin端口的模擬量來使用座每。
2.模擬輸出
顯而易見模擬輸出就是analogWrite()函數(shù),但這個(gè)函數(shù)并不能輸出真正的模擬值摘悴,而是通過PWM(脈沖寬度調(diào)制)來實(shí)現(xiàn)一個(gè)模擬的效果峭梳,也就是說在PWM端口輸出的電壓值可以經(jīng)過處理達(dá)到一定得起伏波形,實(shí)現(xiàn)近似模擬蹂喻。
主要寫法是analogWrite(pin,value)葱椭; pin是支持PWM的引腳,value是PWM脈沖寬度范圍為0~255口四。
一般的UNO的PWM引腳是3孵运,5,6窃祝,9掐松,10,11粪小,這些都會(huì)在板子上做標(biāo)注的大磺。
3.連接圖
VCC從9引腳發(fā)出到限流電阻,然后到發(fā)光二極管探膊,最終流入GND
4.程序源代碼
這個(gè)是在Arduino IDE實(shí)例里有的(Analog->Fading)
int ledPin = 9; // 使用引腳號
void setup() {
// nothing happens in setup
}
void loop() {
// fade in from min to max in increments of 5 points:
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
// fade out from max to min in increments of 5 points:
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
// sets the value (range from 0 to 255):
analogWrite(ledPin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
}
很簡單的使用analogWrite(ledPin, fadeValue)來控制引腳電壓杠愧,來實(shí)現(xiàn)漸變效果。
用delay來緩解肉眼的反應(yīng)速度逞壁,另外analogWrite內(nèi)部已經(jīng)實(shí)現(xiàn)了引腳初始化流济,因此直接在loop里運(yùn)行就行。