Arduino語言介紹

Arduino語言介紹git

 

Arduino語言是創建在C/C++基礎上的,其基礎是C語言,Arduino語言只不過把AVR單片機(微控制器)相關的一些參數設置都函數化,不用咱們去了解他的底層,讓不瞭解AVR單片機(微控制器)的朋友也能輕鬆上手。數組

 


 

基礎C語言app

 

關鍵字:dom

  • if              條件選擇語句
  • if...else       條件選擇語句
  • for             for 循環語句
  • switch case     並行多分支選擇
  • while           循環語句
  • do... while     循環語句
  • break           強制跳出循環
  • continue        繼續   
  • return          返回
  • goto            無條件轉移 

 

變量的做用範圍(做用域):ide

    做用範圍與該變量在哪兒聲明有關,大體分爲以下兩種。函數

一、全局變量:若在程序開頭的聲明區或者是在沒有大括號限制的聲明區,所聲明的變量的做用域爲整個程序。oop

二、局部變量:若在大括號內的聲明區所聲明的變量,其做用域將受限於大括號。若在主程序與各函數中都聲明瞭相同名稱的變量,則離開主程序或函數,該變量將自動消失。ui


語法符號:spa

  • ;     每一個語句和數據定義的最後必須有一個分號,這個千萬不要漏寫了。
  • {}    大括號內的內容是函數體,即{......}。
  • / *  * /   C語言的註釋以 / * 開始,以 * / 結束,註釋能夠跟在指令以後,也能夠在獨立一行中。
  • //   註釋也能夠用 「//」開頭,該符號右邊整行都是註釋。 

 

賦值運算符:線程

  • =     (指定)    例如:A=x    將x變量的值放入A變量;
  • +=   (加入)   例如:B+=x  將B變量的值與x變量的值相加,其和放入B變量,與B=B+x相同。
  • -=   (減去)   例如:C-=x  將C變量的值減去x變量的值,其差放入C變量,與C=C-x相同。
  • *=   (乘入)   例如:D*=x  將D變量的值與x變量的值相乘,其積放入D變量,與D=D*x相同。
  • /=   (除)     例如:E/=x  將E變量的值除以x變量的值,其商放入E變量,與E=E/x相同。
  • %=   (取餘)   例如:F%=x  將F變量的值除以x變量的值,其他數放入F變量,與F=F%x相同。
  • &=   (或運算) 例如:G&=x  將G變量的值與x變量的值相AND運算,其結果放入G變量,與G=G&x相同。
  • |=    (或運算) 例如:H|=x  將H變量的值與x變量的值相OR運算,其結果放入H變量,與H=H|x相同。
  • ^=    (互斥或)  例如:I^=x  將I變量的值與x變量的值相XOR運算,其結果放入I變量,與I=I^x相同。
  • <<=   (左移)    例如:J<<=n  將J變量的值左移n位,與J=J<<n相同。
  • >>=   (右移)    例如:K>>=n  將K變量的值右移n位,與K=K>>n相同。

 

算數運算符:

  •     (加) 例如:A=x+y 將x與y變量的值相加,其和放入A變量;
  •     (減) 例如:B=x-y 將x變量的值減去y變量的值,其差放入B變量;
  • *     (乘)例如:C=x*y 將x與y變量的值相乘,其積放入C變量;
  • /     (除)例如:D=x/y 將x變量的值除以y變量的值,其商放入D變量;
  • %    (取餘)例如:E=x%y 將x變量的值除以y變量的值,其他數放入E變量;

 

關係運算符:

  • ==   (相等)例如:x==y  比較x與y變量的值是否相等,相等則其結果爲1,不相等則爲0;
  • !=   (不等)例如:x!=y  比較x與y變量的值是否相等,不相等則其結果爲1,相等則爲0;
  • <   (小於)例如:x<y   若x變量的值小於y變量的值,其結果爲1,不然爲0;
  • >    (大於)例如:x>y   若x變量的值大於y變量的值,其結果爲1,不然爲0;
  • <=   (小等於)例如: x<=y  若x變量的值小等於y變量的值,其結果爲1,不然爲0;
  • >=  (大等於)例如: x>=y  若x變量的值大等於y變量的值,其結果爲1,不然爲0;

 

邏輯運算符:

  • &&  (與運算) 
  • 例(x>y)&&(y>z)若x變量的值大於y變量的值,且y變量的值大於z變量的值,則其結果爲1,不然爲0。
  • ||  (或運算)
  • 例(x>y)||(y>z)若x變量的值大於y變量的值,或y變量的值大於z變量的值,則其結果爲1,不然爲0。
  •   (非運算)例 !(x>y)   若x變量的值大於y變量的值,則其結果爲0,不然爲1。

遞增/減運算符:

  • ++     (加1)   例如:x++  將x變量的值加1;(在使用i以後,再使i值加1)
  • --    (減1)  例如:x--  將x變量的值減1。(在使用i以後,再使i值減1)

 

數據類型:

  • char                         字符                            8bit
  • unsigned char         無符號字符                  8bit                  
  • int                            整數                            16bit
  • unsigned int            無符號整數                  16bit
  • long                        長整數                          32bit
  • unsigned long         無符號長整數               32bit
  • float                        浮點數                          32bit
  • double                    雙倍精度浮點數            64bit
  • array                      數組
  • void                       無                                  0

    爲何要定義變量?定義變量就至關於給存儲地址取個名字。

數據類型轉換:

  • char()
  • byte()
  • int()
  • long()
  • float()

 

常量:

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

以上爲基礎c語言的關鍵字和符號


 

Arduino 語言

 

結構

  • void setup()   初始化變量,管腳模式,調用庫函數等
  • void loop()    連續執行函數內的語句

功能

數字 I/O

  • pinMode(pin, mode)    數字IO口輸入輸出模式定義函數,pin表示爲0~13, mode表示爲INPUT或OUTPUT。
  • digitalWrite(pin, value)    數字IO口輸出電平定義函數,pin表示爲0~13,value表示爲HIGH或LOW。好比定義HIGH能夠驅動LED。
  • int digitalRead(pin)    數字IO口讀輸入電平函數,pin表示爲0~13,value表示爲HIGH或LOW。好比能夠讀數字傳感器。

模擬 I/O

  • int analogRead(pin)    模擬IO口讀函數,pin表示爲0~5(Arduino Diecimila爲0~5,Arduino nano爲0~7)。好比能夠讀模擬傳感器(10位AD,0~5V表示爲0~1023)。
  • analogWrite(pin, value) - PWM     數字IO口PWM輸出函數,Arduino數字IO口標註了PWM的IO口可以使用該函數,pin表示3, 5, 6, 9, 10, 11,value表示爲0~255。好比可用於電機PWM調速或音樂播放。

擴展 I/O

  • shiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO擴展函數,一般使用帶SPI接口的74HC595作8個IO擴展,dataPin爲數據口,clockPin爲時鐘口,bitOrder爲數據傳輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要傳送的數據(0~255),另外還須要一個IO口作74HC595的使能控制。
  • unsigned long pulseIn(pin, value)    脈衝長度記錄函數,返回時間參數(us),pin表示爲0~13,value爲HIGH或LOW。好比value爲HIGH,那麼當pin輸入爲高電平時,開始計時,當pin輸入爲低電平時,中止計時,而後返回該時間。

時間函數

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

數學函數

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

三角函數

  • sin(rad)
  • cos(rad)
  • tan(rad)

隨機數函數

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

外部中斷函數

  • attachInterrupt(interrupt, , mode)    外部中斷只能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 降低沿中斷。
  • detachInterrupt(interrupt)    中斷開關,interrupt=1 開,interrupt=0 關。

中斷使能函數

  • interrupts()        使能中斷
  • noInterrupts()      禁止中斷

串口收發函數

  • Serial.begin(speed)       串口定義波特率函數,speed表示波特率,如9600,19200等。
  • int Serial.available()    判斷緩衝器狀態。
  • int Serial.read()         讀串口並返回收到參數。
  • Serial.flush()            清空緩衝器。
  • Serial.print(data)        串口輸出數據。
  • Serial.println(data)      串口輸出數據並帶回車符。

 

Arduino語言庫文件

官方庫文件

  • EEPROM         - EEPROM讀寫程序庫
  • Ethernet       - 以太網控制器程序庫
  • LiquidCrystal  - LCD控制程序庫
  • Servo          - 舵機控制程序庫
  • SoftwareSerial - 任何數字IO口模擬串口程序庫
  • Stepper        - 步進電機控制程序庫
  • Wire           - TWI/I2C總線程序庫
  • Matrix         - LED矩陣控制程序庫
  • Sprite         - LED矩陣圖象處理控制程序庫

非官方庫文件

  • DateTime   - a library for keeping track of the current date and time in software.
  • Debounce   - for reading noisy digital inputs (e.g. from buttons)
  • Firmata    - for communicating with applications on the computer using a standard serial protocol.
  • GLCD       - graphics routines for LCD based on the KS0108 or equivalent chipset.
  • LCD        - control LCDs (using 8 data lines)
  • LCD 4 Bit  - control LCDs (using 4 data lines)
  • LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.
  • LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
  • Messenger  - for processing text-based messages from the computer
  • Metro      - help you time actions at regular intervals
  • MsTimer2   - uses the timer 2 interrupt to trigger an action every N milliseconds.
  • OneWire    - control devices (from Dallas Semiconductor) that use the One Wire protocol.
  • PS2Keyboard - read characters from a PS2 keyboard.
  • Servo      - provides software support for Servo motors on any pins.
  • Servotimer1 - provides hardware support for Servo motors on pins 9 and 10
  • Simple Message System  - send messages between Arduino and the computer
  • SSerial2Mobile  - send text messages or emails using a cell phone (via AT commands over software serial)
  • TextString     - handle strings
  • TLC5940        - 16 channel 12 bit PWM controller.
  • X10            - Sending X10 signals over AC power lines
 

以上庫文件都須要下載到編譯環境(以下目錄:arduino-0022\hardware\libraries)中才能使用。

相關文章
相關標籤/搜索