通過多次上機(jī)操作之后,可以更加深入的了解Arduino。(PS:昨晚以為我的六足機(jī)器人改裝4足機(jī)器人計(jì)劃快完成了,想不到弄到半夜3點(diǎn)多后來還是功虧于潰!昨晚把六足機(jī)器人改裝成四足機(jī)器人后,想更美化機(jī)器人,隨之把電源接口換成金屬電源接口,上電之后把Arduino上的ATMEGA328芯片和一塊32路舵機(jī)控制板給燒壞了,在短短的幾秒時(shí)間里直接經(jīng)濟(jì)損失幾百蚊。崩潰啊。)
范例:
void digitalWrite | ( | uint8_t | pin, | |
uint8_t | value | |||
) |
寫數(shù)字引腳 - digitalWrite
寫數(shù)字引腳, 對(duì)應(yīng)引腳的高低電平. 在寫引腳之前, 需要將引腳設(shè)置為OUTPUT模式.
- 參數(shù):
-
pin 引腳編號(hào) value HIGH 或 LOW
int ledPin = 13; // 定義LED燈的引腳為pin 13 void setup() { pinMode(ledPin, OUTPUT); // 把ledPin設(shè)置為輸出數(shù)字管腳(OUTPUT為輸出/INPUT為輸入)
} void loop() { digitalWrite(ledPin, HIGH); // 設(shè)置數(shù)字管腳的ledPin為高電平,就是板子的5V電壓
delay(1000); // 時(shí)間間隔(毫秒),如果把1000改成更小的話LED燈閃爍得很快,比如:200
digitalWrite(ledPin, LOW); // 設(shè)置數(shù)字管腳的ledPin為低電平,電壓為0V
delay(1000); // 時(shí)間間隔(毫秒)
}
- 注解:
- 模擬引腳也可以當(dāng)作數(shù)字引腳使用, 編號(hào)為14(對(duì)應(yīng)模擬引腳0)到19(對(duì)應(yīng)模擬引腳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) //寫入數(shù)字管腳格式
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輸出,我們需要將其關(guān)閉
00090
00091 out = portOutputRegister(port); // 在此之前的寫入數(shù)字
00092
00093 if (val == LOW) *out &= ~bit;
00094 else *out |= bit;
00095 }
00096
00097 int digitalRead(uint8_t pin) //讀取數(shù)字引腳格式
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輸出,我們需要將其關(guān)閉
00108
00109 if (*portInputRegister(port) & bit) return HIGH; // 得到一個(gè)數(shù)字,然后閱讀。
00110 return LOW;
00111 }