18luck网站

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

Arduino編程語言教程,Arduino和單片機的區別

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-05-07

眾(zhong) 所周知,Arduino是一個(ge) 開放性源碼電子平台,擁有靈活、易用的硬件和軟件。Arduino作為(wei) 知名度很高的微控製器,已經融入到好多領域。現在很多中小學生、老師、創客們(men) 、設計師、藝術家等都在玩arduino。

Arduino可以接受各種傳(chuan) 感器的輸入信號從(cong) 而檢測出運行環境,並通過控製光源,電機以及其他驅動器來影響其周圍環境。板上的微控製器使用Arduino編程語言和Arduino開發環境,Arduino可以獨立運行也可以與(yu) 計算機進行通信。

那Arduino編程語言入門難嗎?很多朋友會(hui) 問,其實如果你會(hui) 編程語言C或者C++的話那一點都不難,如果您是小白用戶那估計要費點功夫學習(xi) 了。

Arduino使用C/C++編寫(xie) 程序,雖然C++兼容C語言,但這是兩(liang) 種語言,C語言是一種麵向過程的編程語言,C++是一種麵向對象的編程語言。早期的Arduino核心庫使用C語言編寫(xie) ,後來引進了麵向對象的思想,目前最新的Arduino核心庫采用C與(yu) C++混合編寫(xie) 而成。


通常我們(men) 說的Arduino語言,是指Arduino核心庫文件提供的各種應用程序編程接口(Application Programming Interface,簡稱API)的集合。這些API是對更底層的單片機支持庫進行二次封裝所形成的。例如,使用AVR單片機的Arduino的核心庫是對AVR-Libc(基於(yu) GCC的AVR支持庫)的二次封裝。
這些封裝好的API,使得程序中的語句更容易被理解,我們(men) 不用理會(hui) 單片機中繁雜的寄存器配置,就能直觀的控製Arduino,增強程序的可讀性的同時,也提高了開發效率,這也是arduino與(yu) 單片機的最大區別,使用更簡單,效率更高。


下麵我們(men) 就來學習(xi) 下arduino編程語言入門教程:


1. 關(guan) 鍵字
語法符號:
;
;是一條語句結束的標誌,供編譯器識別,必須得有。


{}
{}將多條語句合成一個(ge) 複合語句,能劃分語句的作用域,增強整體(ti) 整體(ti) 的可讀性。
//
//行注釋,該行//後的所有語句,文字將不被編譯器所編譯、執行。相似的,還有,在中的所有語句,文字將不被編譯器所編譯、執行。


if(表達式)
{
語句A;
}

if(表達式1)
{
語句1;
}
else if(表達式2)
{
語句2;
}
...
else if(表達式n)
{
語句n;
}
else
{
語句n+1;
}


for(初始表達式;條件表達式;循環變量表達式)
{
循環體(ti) 語句;
}


switch(表達式)
{
case 表達式常量1:語句序列1;
case 表達式常量2:語句序列2;
...
case 表達式常量i:語句序列i;
case 表達式常量n:語句序列n;
default:語句序列n+1;
}


while(條件表達式)
{
循環語句;
循環變量表達式;
}


do
{
循環體(ti) 語句;
}while(條件表達式);


break;


continue;


return x;


goto 語句標號;


2. 數據類型:

Arduino編程語言數據類型 

3. 常量
HIGH | LOW 表示數字IO口的高低電平。HIGH 表示高電(1),LOW 表示低電平(0)。
INPUT | OUTPUT 表示數字IO口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出(AVR單片機能提供5V電壓 40mA電流)。
true | false true 表示真(1),false表示假(0)。


4. 程序結構
聲明變量及接口名稱(例如:int i;int ledPin=13;)。
void setup() 函數在程序開始時使用,初始化變量,管腳模式,調用庫函數等(例如:pinMode(ledPin,OUTUPT);)。
void loop() 在void setup()函數之後,即初始化之後,loop() 讓你的程序循環地被執行。使用它來運轉Arduino。


5. 數字 I/O
以下型號為(wei) UNO
pinMode(pin, mode);
數字IO口輸入輸出模式定義(yi) 函數,pin表示為(wei) 0~13, mode表示INPUT或OUTPUT。
digitalWrite(pin, value) ;
數字IO口輸出電平定義(yi) 函數,pin表示為(wei) 0~13,value表示為(wei) HIGH或LOW。
必須先定義(yi) 為(wei) 輸入或輸出模式digitalWrite才能生效。
int digitalRead(pin);
數字IO口讀輸入電平函數,pin表示為(wei) 0~13,value表示為(wei) HIGH或LOW。比如可以讀數
字傳(chuan) 感器。


6. 模擬IO
int analogRead(pin);
模擬IO口讀函數,pin表示為(wei) 0~5(ArduinoDiecimila為(wei) 0~5,Arduino nano為(wei) 0~7)。比如可以讀模擬傳(chuan) 感器(10位AD,0~5V表示為(wei) 0~1023)。
analogWrite(pin, value) - PWM
數字IO口PWM輸出函數,Arduino數字IO口標注了PWM的IO口可使用該函數通常在引腳的旁邊標注~,pin表示3, 5, 6, 9,10, 11,value表示為(wei) 0~255。比如可用於(yu) 電機PWM調速或音樂(le) 播放。


7. 擴展 I/O
shiftOut(dataPin, clockPin, bitOrder,value);
SPI外部IO擴展函數,通常使用帶SPI接口的74HC595做8個(ge) IO擴展,dataPin為(wei) 數據口,clockPin為(wei) 時鍾口,bitOrder為(wei) 數據傳(chuan) 輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要傳(chuan) 送的數據(0~255),另外還需要一個(ge) IO口做74HC595的使能控製。


unsigned long pulseIn(pin, value);脈衝(chong) 長度記錄函數,返回時間參數(us),pin表示為(wei) 0~13,value為(wei) HIGH或LOW。比如value為(wei) HIGH,那麽(me) 當pin輸入為(wei) 高電平時,開始計時,當pin輸入為(wei) 低電平時,停止計時,然後返回該時間。


8. 時間函數
unsigned long millis();返回時間函數(單位ms),該函數是指,當程序運行就開始計時並返回記錄的參數,該參數溢出大概需要50天時間。
delay(ms);延時函數(單位ms)。
delayMicroseconds(us);延時函數(單位us)。


9. 數學函數
min(x, y) ;求最小值。
max(x, y) ;求最大值。
abs(x) ; 計算絕對值。
constrain(x, a, b) ; 約束函數,下限a,上限b,x必須在ab之間才能返回。
map(value, fromLow, fromHigh, toLow,toHigh);約束函數,value必須在fromLow與(yu) toLow之間和fromHigh與(yu) toHigh之間。
pow(base, exponent);開方函數,base的exponent次方。
sq(x); 平方。
sqrt(x);開根號。
三角函數:
sin(rad);
cos(rad);
tan(rad);


10. 隨機數函數
randomSeed(seed);隨機數端口定義(yi) 函數,seed表示讀模擬口analogRead(pin)函數 。
long random(max);隨機數函數,返回數據大於(yu) 等於(yu) 0,小於(yu) max。
long random(min, max);隨機數函數,返回數據大於(yu) 等於(yu) min,小於(yu) max。


11. 外部中斷函數
attachInterrupt(interrupt, , mode;外部中斷隻能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個(ge) 功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 下降沿中斷。
detachInterrupt(interrupt);中斷開關(guan) ,interrupt=1 開,interrupt=0 關(guan) 。
interrupts();中斷使能函數,用於(yu) 使能中斷。
noInterrupts();中斷禁止函數,禁止中斷。


12. 串口收發函數
Serial.begin(speed);串口定義(yi) 波特率函數,speed表示波特率(串行每秒傳(chuan) 輸數據位數的速率),如9600,19200等。
int Serial.available() 判斷緩衝(chong) 器狀態。
int Serial.read();讀串口並返回收到參數。
Serial.flush();清空緩衝(chong) 器。
Serial.print(data);串口輸出數據。Serial.print(數據,數據的進製) 默認為(wei) 十進製(DEC)
Serial.println(data);串口輸出數據並帶回車符。


13. 重要
以上列舉(ju) 了一些較常用的函數,事實上,在Arduino的安裝目錄下的libraries還有眾(zhong) 多函數可以根據需要進行調用和學習(xi) 。
也可以自己編寫(xie) 函數然後按照libraries目錄下其他函數的格式打包好。放置在libraries目錄下,然後自己就可以在IDE環境下調用自己編寫(xie) 的函數了。


Arduino編程語言庫 

 

通過以上介紹,其實大家可以看到arduino編程語言入門並不難,以上內(nei) 容分享出來給大家作為(wei) 參考,想要了解更多更專(zhuan) 業(ye) 的arduino編程語言教程收藏本站Arduino教程專(zhuan) 欄學習(xi) 。

 

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

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢