通过多次上机操作之后,可以更加深入的了解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 }