日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Arduino小白的学习历程

發(fā)布時間:2024/1/8 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Arduino小白的学习历程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Arduino小白的學(xué)習(xí)歷程

例7 溫度報警器

作為一名剛接觸Arduino的小白,覺得溫度報警器這個東西特別新鮮,先把它的效果描述一下:

效果一:打開串口監(jiān)視器(至于怎么理解串口監(jiān)視器,我來說說自己的想法,如果哪點說錯了,望各位大佬指證:串口監(jiān)視器,類似于c語言中,打開的那個CMD窗口,通過串口監(jiān)視器。可以debug自己的程序,同時,也能輸出一些信息到電腦屏幕上,總之,是個特別好用的東西),能看到室外溫度的變化情況。
效果二:當(dāng)溫度超過一定的閾值時(這里假定是20度)溫度報警器發(fā)出類似警笛的聲音,同時,紅燈閃爍。

廢話不說,直接上代碼

int val;//val變量用于讀取模擬端口A0的值,范圍是0-1023 int lightval;//lightval變量控制用于燈的閃爍 int toneval;//toneval變量用于報警器的聲音 double tempature;//tempature變量用來表示室外的溫度 double sinval;//sinval變量用于轉(zhuǎn)換成三角函數(shù)值 unsigned long tepTimer; void setup() {pinMode(A0,INPUT);pinMode(8,OUTPUT);pinMode(9,OUTPUT);//數(shù)字9號口輸出PWM信號,這是一個連續(xù)的信號。Serial.begin(9600);//建立串口通信}void loop() { val=analogRead(A0);//讀取模擬端口A0的數(shù)值 tempature=val*(5/10.23);//將A0口讀取到的數(shù)值轉(zhuǎn)換成溫度值 if(tempature>=20) {for(int x=0;x<180;x++) {sinval=sin(x*(3.1412/180));toneval=2000+(int)(sinval*1000);lightval=200+(int)(sinval*500);tone(8,toneval);//為蜂鳴器寫入tonevalHZ的頻率analogWrite(9,lightval);delay(2);}} //當(dāng)溫度大于20度時,蜂鳴器報警,同時燈閃爍 else { noTone(8); analogWrite(9,LOW);} //當(dāng)溫度小于20度時,蜂鳴器停止報警,同時燈熄滅 if(millis()-tepTimer>500) { tepTimer=millis(); Serial.print("tempature:"); Serial.print(tempature); Serial.println("℃");}} //設(shè)置系統(tǒng)時間,每隔500ms輸出一次溫度

代碼說明:簡單的 if-else判斷,唯一值得注意的是,如何讓蜂鳴器發(fā)出類似警笛的聲音。這一部分代碼樓主也不太清除其背后的道理,通過查閱網(wǎng)上資料找的

使蜂鳴器發(fā)出警笛聲音的代碼

for(int x=0;x<180;x++) {sinval=sin(x*(3.1412/180));toneval=2000+(int)(sinval*1000);tone(8,toneval);delay(2);}

按照下面的圖連接電路(別連接錯了,注意面包板的排線方式,同時一定要為LED燈加電阻,樓主總是忘記😭)

總結(jié)

以上是生活随笔為你收集整理的Arduino小白的学习历程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。