[Arduino文件]-KT0021 UNO R3 初學套件配套教程\Arduino語言說明.pdf
[Arduino文件]-KT0021 UNO R3 初學套件配套教程\Arduino語言說明.pdf
常量:
• HIGH | LOW 表示數字IO 口的電平,HIGH 表示高電平(1),LOW 表示低電平(0)。
• INPUT | OUTPUT 表示數字IO 口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出
(AVR 能提供5V 電壓 40mA 電流)。
• true | false true 表示真(1),false 表示假(0)。
結構
• 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 下降沿中斷。
strong>
• 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