日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 基礎入門 >> Arduino開發學習 >> 正文

Arduino學習記錄 基礎知識總結_arduino pullup

作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2025/3/14

一、INPUT和OUTPUT
1.當引腳設置為INPUT狀態時,引腳為高阻抗狀態(100兆歐)。此時引腳可以用于讀取傳感器信號或開關信號。
2.當引腳設置為OUTPUT狀態時,引腳為低阻抗狀態。這意味著Arduino可以向其它電路元器件提供電流。也就是說,Arduino引腳在輸出(OUTPUT)模式下可以電亮LED或者驅動電機。
3.INPUT_PULLUP模式:Arduino微控制器自帶內部上拉電阻。在該模式下可以使用該內部上拉電阻。

二、引腳的作用

 
1.數字引腳:
●引腳1-13用作數字輸入/輸出引腳。其中,引腳13連接到板載的LED指示燈;引腳 3、5、6、9、10、11具有PWM功能。
●數字引腳可以開啟或者關閉。打開時,處于5V的高電平狀態;關閉時,處于0V的低電平狀態。
●當數字引腳配置為輸出時,它們設置為0或5V。當配置為輸入時,電壓可以在0-5V之間變化, 并轉換為數字表示(0或1)。
●脈寬調制(PWM)是一種調制技術,用于將消息編碼為脈沖信號。pwm由兩個關鍵部分組成:頻率和占空比。頻率決定完成單個周期所需要的時間以及信號從高到低的波動速度。占空比決定信號在總時間段內保持高電平的時間。
2.電源:
●VIN引腳:使用外部電源為UNO開發板供電
●5V和3.3V:向外部組件提供穩壓的5V和3.3V
●RESET引腳:復位Arduino開發板
3.模擬輸入:
●A0-A5作為ADC(模數轉換器)。這些引腳用作模擬輸入,但也可以用作數字輸入或者輸出。
●模數轉換:ADC是用于將模擬信號轉換為數字信號的電子電路。引腳A0-A5能夠讀取模擬電壓。ADC可以通過1024個數字電平表示模擬電壓,將電壓轉換為微處理器可以理解的位。e.g IP語音(將聲波轉換為模擬電壓,通過設備的ADC,轉換成數字數據,通過互聯網傳輸到接收端。

三、PWM(方波控制信號)
1.工作原理:采用不同的占空比來模擬“模擬輸出”。
2.作用:
●提供模擬輸出;如果數字輸出被過濾,則其模擬電壓將介于0%-100%之間
●生成音頻信號
●控制燈光亮度,為電機提供變速控制
●生成調制信號,例如驅動用于遠程控制的紅外LED
3.使用:
●analogWrite(pin,dutyCycle)
pin值選擇(3,5,6,9,10,11),dutyCycle的值在0~255之間。這種方式pwm信號的頻率是固定的默認值(490Hz)。

# define analogPin 3
void setup()
{
 pinMode(analogPin,OUTPUT);
}
void loop()
{
 analogWrite(analogPin,100);  // 輸出PWM,占空比為 100/255
}

●delayMicroseconds()手動實現頻率可調的PWM
(1)兩次的digitalWrite輸出狀態必須相反;
(2)可以用delay()實現毫秒級延遲,用delayMicroseconds()實現微妙級延遲

(3)特點
1.pwm的比例可以更精確
2.周期和頻率可控制
3.所有pin腳都可以輸出,不僅局限于6個腳
4.缺點:CPU無法進行其他活動

void setup()
{
  pinMode(8, OUTPUT);    // 設置8號引腳為輸出模式
}
void loop()
{
  digitalWrite(8, HIGH);
  delayMicroseconds(100);    // 輸出PWM,占空比為100/1000=10%
  digitalWrite(8, LOW);
  delayMicroseconds(1000 - 100);  // 修改這里的1000可以調整頻率,總周期為1000us,所以頻率為1000Hz.
}

四、三段代碼的區別

 

●第一段代碼定義了一個布爾型變量pushButton,將2號引腳的電平狀態賦給pushButton,并直接根據pushButton的真假賦予1/0進入條件判定,同時在判定時加入了邏輯運算符!,使得判定的值相反。所以該代碼的運算結果為按下按鈕時LED燈亮,松開按鈕時LED燈不亮。
●第二段代碼定義了一個整形變量sensorVal,將2號引腳的電平狀態賦給sensorVal,在條件判定時,按鈕的邏輯狀態是反的,當按鈕沒有按下時,2號引腳為高電平狀態,在if語句中要使13號引腳為低電平狀態,LED燈不亮,當按鈕按下時則相反。同時該段代碼的第2行和第10行還啟動了串口通訊,并把速率調到9600,則用戶可以在串口中看到sensorVal的值。
●第三段代碼運用了兩個按鈕操作,因此定義了兩個boolean變量。但在if語句的判定中沒有使用!運算,即運行結果為當兩個按鈕都沒有按下時,13號引腳的狀態為高電平,LED燈亮;當按下了其中一個按鈕或者兩個按鈕時,13號引腳為低電平狀態,LED燈不亮。

五、邏輯運算符

●&&邏輯與:只有在兩個操作數都為真時才返回真。
●&:取地址的單目運算符;位運算符,表示“按位與”,是雙目運算符。
●||邏輯或:任意一個為真時返回真。
●!邏輯非:當操作數為假時返回真。

六、串口通訊

void setup(){
    Serial.begin(9600);
}
void loop(){
    if (Serial.available()){
        int value=Serial.read();
} 


1.Serial begin(9600)
設置串口通信波特比率為9600
2.if(Serial.avilable())
判斷Arduino串口是否收到數據,函數Serial.available()返回值為int型,不帶參數
3.int var=Serial.read()
將串口數據讀入到變量var中,函數Serial.read()也不帶參數,返回值為串口數據,int型

七、傳感器
1.主要參數
vcc:5V電源
Trig:控制端(觸發)
Echo:接收端(回聲)
Gnd:接地端
探測距離:2cm-450cm
感應角度:<15度
探測精度:0.3cm

2.工作原理

 
const int TrigPin=8;       //設置發射腳位
const int EchoPin=9;      //設置接收腳位
float cm;                 //浮點型數據類型(加小數點,提高精準度)
void setup() {
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
}
void loop() {
digitalWrite(TrigPin,LOW);        //用低高低電平發送脈沖給Trigpin引腳
delayMicroseconds(2);             //微秒級延時
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
cm=pulseIn(EchoPin,HIGH)/58.0;    //讀取脈沖寬度,換算成厘米
Serial.print(cm);                 //顯示距離
Serial.print("cm");               //顯示單位
Serial.println();                 //回車
delay(1000);
}

●const的作用是將定義的腳位存儲在只讀存儲器,即存儲在UNO板的硬盤當中,在運行過程中節約UNO板的資源。
在C語言中,關鍵字const用來定義常量,,如果一個變量被const修飾,那么它的值就不能再改變。
●pulseIn函數其實就是一個簡單的測量脈沖寬度的函數,默認單位是us=10^-6s。也就是說pulseIn測出來的是超聲波從發射到接收所經過的時間。對于除數58也很好理解,聲音在干燥、攝氏 20度的空氣中的傳播速度大約為343米/秒,合34,300厘米/秒。或者,我們作一下單位換算,34,300除以1,000,000厘米/微秒。即為:0.0343厘米/微秒,再換一個角度,1/(0.0343 厘米/微秒)即:29.15 微秒/厘米。這就意味著,每291.5微秒表示10CM的距離。1厘米就是29.15微秒。但是發送后到接收到回波,聲音走過的是2倍的距離呀。所以實際距離就是1厘米,對應58.3微秒。實際上整個測距過程是測的發出聲波到收到回波的時間,你的程序里的第一個distance實際上是時間us。所以換成距離cm,要除以58。當然除以58.3可能更精確。所以我們可以用 pulseIn(EchoPin, HIGH) / 58.00獲取測得的距離。

Tags:Arduino開發板,Arduino,入門教程  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 文化| 婺源县| 上栗县| 河西区| 永春县| 枣庄市| 光泽县| 海宁市| 襄垣县| 江口县| 京山县| 额尔古纳市| 桐乡市| 河北省| 临澧县| 成武县| 炉霍县| 青冈县| 巫溪县| 永登县| 西平县| 剑川县| 康乐县| 平定县| 大石桥市| 日土县| 肇源县| 中阳县| 沅江市| 莱芜市| 石狮市| 定襄县| 海口市| 随州市| 泽州县| 石棉县| 无为县| 财经| 贵州省| 万年县| 白朗县|