2013年6月14日 星期五

Arduino 程式語法

語法結構

#include <avr pgmspace.h="">

//define and const 都是常數定義,如Array一定要用const,且優先使用const。
#define ledPin 3
const int buttonPin = 10;

void setup()
{
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  // ...
}
  • pinMode(pin, mode)︰指定某DIGITAL腳位為INPUT/OUTPUT
    • Parameters
      • pin: 指定作用的DIGITAL腳位PIN
      • mode:
        INPUT(輸入)  高電壓為HIGH,低電壓為LOW。下拉電阻接地。
        OUTPUT(輸出)  輸出5v 40mA
        INPUT_PULLUP(輸入-啟用內建上拉電阻)  讓PIN腳維持在HIGH。上拉電阻接電源。狀態會與INPUT相反。
    • Returns
      None
  • digitalWrite(pin, value)︰數位寫入
    • Parameters
      • pin: 指定作用的數位腳位PIN
      • value: HIGH or LOW
    • Returns
      • none
  • digitalRead(pin)︰數位讀取
    • Parameters
      • pin: 指定作用的數位腳位PIN
    • Returns
      • HIGH or LOW 高電壓為HIGH,低電壓為LOW
  • analogRead(pin)︰類比讀取,調用時不需設定pinMode IN,只隻持Analog Pin腳使用。
    • Parameters
      • pin: 指定作用的類比腳位PIN
    • Returns
      • int (0 to 1023階) 10bit
  • analogWrite(pin, value)︰類比寫入,調用時不需設定pinMode Out,只支持PWM~ Pin腳使用。
    • Parameters
      • pin: 指定作用的類比腳位PIN
      • value: (0 to 255階) 8bit
    • Returns
      • none
  • map(value, fromLow, fromHigh, toLow, toHigh)︰將一個數值從一個範圍映射到另外一個範圍。
    • Parmeters
      • value︰需要映射的值
      • fromLow︰來源範圍值的下限
      • fromHigh︰來添範圍值的上限
      • toLow︰目標範圍值的下限
      • toHigh︰目標範圍值的上限
    • Returns
      • 被眏射的值
    • 範例︰
      • Q︰從analogRead(x)取得一個值。要輸出到PWM。
      • A︰
        int a = analogRead( x );
        int b = map( a, 0, 1023, 0, 255 );
        analogWrite( y, b );
      • Q︰從analogRead(x)取得一個值,要轉換成0~9的值。
      • A︰
        int a = analogRead( x );
        int b = map( a, 0, 1023, 0, 9 )
  • tone(pin, frequency, duration) ︰控制產生特定頻率方波。
    • Parmeters
      • pin︰產生頻率的PIN
      • frequency︰產生的頻率,單位Hz。無符號的整數int。
      • duration︰(可選),持續的時間,單位ms,無符號的長整數long。
    • Returns
      • none
  • Serial.print(val, format)︰列印資料到serial port
    • Parameters
      • val: the value to print - any data type
      • format: specifies the number base (for integral data types) or number of decimal places (for floating point types)
    • Returns
      • size_t (long): print() returns the number of bytes written, though reading that number is optional
    • Example︰
      • Serial.print(78) gives "78"
      • Serial.print(1.23456) gives "1.23"
      • Serial.print('N') gives "N"
      • Serial.print("Hello world.") gives "Hello world." 
      • -------------------------------------------------------------
      • Serial.print(78, BIN)  二進位 gives "1001110"
      • Serial.print(78, OCT)  8進位 gives "116"
      • Serial.print(78, DEC)  10進位 gives "78"
      • Serial.print(78, HEX)  16進位 gives "4E"
      • Serial.println(1.23456, 0) 小數點0位 gives "1"
      • Serial.println(1.23456, 2) 小數點2位 gives "1.23"
      • Serial.println(1.23456, 4) 小數點4位 gives "1.2346"
  • ss
  • dd

沒有留言:

張貼留言