Arduino的安裝和編譯

/*
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);           // 等待一秒鐘
}
第一個程序Blink

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;
}
main.cpp源碼分析

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++)
相關文章
相關標籤/搜索