/* Blink 等待一秒鐘,點亮LED,再等待一秒鐘,熄滅LED,如此循環 */ // 在大多數Arduino控制板上 13號引腳都鏈接了一個標有「L」的LED燈 // 給13號引腳鏈接的設備設置一個別名「led」 int led = 13; // 在板子啓動或者復位重啓後, setup部分的程序只會運行一次 void setup(){ // 將「led」引腳設置爲輸出狀態 pinMode(led, OUTPUT); } // setup部分程序運行完後,loop部分的程序會不斷重複運行 void loop() { digitalWrite(led, HIGH); // 點亮LED delay(1000); // 等待一秒鐘 digitalWrite(led, LOW); // 經過將引腳電平拉低,關閉LED delay(1000); // 等待一秒鐘 }
0.安裝python
1.安裝IDE(官網下載,下一步,下一步,下一步) 2.安裝驅動(下一步,下一步,下一步)
1.什麼是Arduino語言git
Arduino使用C/C++編寫程序,雖然C++兼容C語言,但這是兩種語言,C語言是一種面向過程的編程語言,C++是一種面向對象的編程語言。早期的Arduino核心庫使用C語言編寫,後來引進了面向對象的思想,目前最新的Arduino核心庫採用C與C++混合編寫而成。
一般咱們說的Arduino語言,是指Arduino核心庫文件提供的各類應用程序編程接口(Application Programming Interface,簡稱API)的集合。這些API是對更底層的單片機支持庫進行二次封裝所造成的。例如,使用AVR單片機的Arduino的核心庫是對AVR-Libc(基於GCC的AVR支持庫)的二次封裝。
傳統開發方式中,你須要釐清每一個寄存器的意義及之間的關係,而後經過配置多個寄存器來達到目的。編程
pinMode(13,OUTPUT); //pinMode(13,OUTPUT)便是設置引腳的模式,這裏設定了13腳爲輸出模式; digitalWrite(13,HIGH);//讓13腳輸出高電平數字信號;
最重要最必須的兩個函數數組
void setup() { // 只需運行一次的代碼,如設置板子: //Arduino控制器通電或復位後,即會開始執行setup() 函數中的程序,該部分只會執行一次。
一般咱們會在setup() 函數中完成Arduino的初始化設置,如配置I/O口狀態,初始化串口等操做 } void loop() { // 重複運行的代碼,,如燈光閃爍: //注:在setup() 函數中的程序執行完後,Arduino會接着執行loop() 函數中的程序。而loop()函數是一個死循環,其中的程序會不斷的重複運行。
一般咱們會在loop() 函數中完成程序的主要功能,如驅動各類模塊,採集數據等 }
底層原理(main()函數去哪裏了)編程語言
int main(void){ init(); setup(); for(;;) loop(); return 0;
}
#include <Arduino.h> // Declared weak in Arduino.h to allow user redefinitions. int atexit(void (* /*func*/ )()) { return 0; } // Weak empty variant initialization function. // May be redefined by variant files. void initVariant() __attribute__((weak)); void initVariant() { } void setupUSB() __attribute__((weak)); void setupUSB() { } int main(void) { init(); initVariant(); #if defined(USBCON) USBDevice.attach(); #endif setup(); for (;;) { loop(); if (serialEventRun) serialEventRun(); } return 0; }
Arduino程序中編寫的setup和loop函數,都在main函數中調用了。loop的循環執行,是經過for循環實現的,且每次loop結束後,都會進行串口事件判斷,也正是由於這種設計,串口事件不能實時響應。ide
2.程序語言入門函數
一.使用變量oop
特色:單個數值源碼分析
int整形 long長整型 float浮點型 double浮點型(同float(在arduino中!)) boolean(布爾值(false(0)或true(1))) char字符型 -128~127之間的有符號值 Byte比特型(相似於char,只是無符號值)
二.使用數組ui
特色:一組數值,從索引0開始
0.建立數組
用{}表示如:int balabala~[]={1,2,3,4,5}表示一個[1,2,3,4,5]的列表 int balabala~[4]表示[0,0,0,0]的列表
1.讀取數組
for(int index=0;index<4;index++){
pinMode(balabala[index],OUTPUT)表明索引的引腳進行的操做
}
2.將數組元素數目定義爲常量來避免訪問的實際大小超過數組長度
const int PIN_COUNT = 4;
int balabala~[]={1,2,3,4}
for(int index=0;index<PIN_COUNT;index++){pinMode(balabala[index],OUTPUT)
三.字符串
1.使用arduino的String字符串
加載Basic_Strings程序並查看輸出內容
2.使用C字符串
四.數字與字符串的轉換
1.數字轉換爲字符串,爲了在LCD或者其餘顯示器顯示這個數字
String變量能夠自動將數字轉換爲字符串 例如: String myNumber = 123456;
2.字符串轉換爲數字
String aNumber = "1234" int value = aNumber.toInt();
五.函數
1.不帶參數 void blink1(){} 2.帶一個參數 viod blink(int count){} 3.帶一個參數並返回一個值 int blink(int period)
4.返回多個值
改變全局變量從而改變多個值
六.流程控制
if條件語句 if(條件){執行代碼}
else{執行代碼}//else不然執行這一行代碼
switch語句
switch(條件)
case:分支條件
while循環 while(條件){執行代碼} do..while循環相似於while循環 do{}//先執行do再執行while while()
跳出循環
break;
for循環 for(int i=0;i<4;i++)