通過多次上機操作之后,可以更加深入的了解Arduino。(PS:昨晚以為我的六足機器人改裝4足機器人計劃快完成了,想不到弄到半夜3點多后來還是功虧于潰!昨晚把六足機器人改裝成四足機器人后,想更美化機器人,隨之把電源接口換成金屬電源接口,上電之后把Arduino上的ATMEGA328芯片和一塊32路舵機控制板給燒壞了,在短短的幾秒時間里直接經濟損失幾百蚊。崩潰啊。)
范例:
void digitalWrite | ( | uint8_t | pin, | |
uint8_t | value | |||
) |
寫數字引腳 - digitalWrite
寫數字引腳, 對應引腳的高低電平. 在寫引腳之前, 需要將引腳設置為OUTPUT模式.
- 參數:
-
pin 引腳編號 value HIGH 或 LOW
int ledPin = 13; // 定義LED燈的引腳為pin 13 void setup() { pinMode(ledPin, OUTPUT); // 把ledPin設置為輸出數字管腳(OUTPUT為輸出/INPUT為輸入)
} void loop() { digitalWrite(ledPin, HIGH); // 設置數字管腳的ledPin為高電平,就是板子的5V電壓
delay(1000); // 時間間隔(毫秒),如果把1000改成更小的話LED燈閃爍得很快,比如:200
digitalWrite(ledPin, LOW); // 設置數字管腳的ledPin為低電平,電壓為0V
delay(1000); // 時間間隔(毫秒)
}
- 注解:
- 模擬引腳也可以當作數字引腳使用, 編號為14(對應模擬引腳0)到19(對應模擬引腳5).
- 示例:
- ADXL3xx.pde、AnalogInput.pde、Blink.pde、BlinkWithoutDelay.pde、Button.pde、Calibration.pde、Debounce.pde、Knock.pde、Loop.pde、Melody.pde、PhysicalPixel.pde及Ping.pde.
在文件wiring_digital.c第78行定義。(宏文件里面的語言格式)
00078 void digitalWrite(uint8_t pin, uint8_t val) //寫入數字管腳格式
00079 {
00080 uint8_t timer = digitalPinToTimer(pin);
00081 uint8_t bit = digitalPinToBitMask(pin);
00082 uint8_t port = digitalPinToPort(pin);
00083 volatile uint8_t *out;
00084
00085 if (port == NOT_A_PIN) return;
00086
00087
00088
00089 if (timer != NOT_ON_TIMER) turnOffPWM(timer); // 如果引腳支持PWM輸出,我們需要將其關閉
00090
00091 out = portOutputRegister(port); // 在此之前的寫入數字
00092
00093 if (val == LOW) *out &= ~bit;
00094 else *out |= bit;
00095 }
00096
00097 int digitalRead(uint8_t pin) //讀取數字引腳格式
00098 {
00099 uint8_t timer = digitalPinToTimer(pin);
00100 uint8_t bit = digitalPinToBitMask(pin);
00101 uint8_t port = digitalPinToPort(pin);
00102
00103 if (port == NOT_A_PIN) return LOW;
00104
00105
00106
00107 if (timer != NOT_ON_TIMER) turnOffPWM(timer); // 如果引腳,支持PWM輸出,我們需要將其關閉
00108
00109 if (*portInputRegister(port) & bit) return HIGH; // 得到一個數字,然后閱讀。
00110 return LOW;
00111 }