专注电子技术学习与研究
当前位置:单片机教程网 >> Arduino >> 浏览文章

控制Arduino板子上的LDE灯(数字引脚)

作者:huqin   来源:本站原创   点击数:  更新时间:2014年04月03日   【字体:

  通过多次上机操作之后,可以更加深入的了解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.pdeAnalogInput.pdeBlink.pdeBlinkWithoutDelay.pdeButton.pdeCalibration.pdeDebounce.pdeKnock.pdeLoop.pdeMelody.pdePhysicalPixel.pdePing.pde.

在文件wiring_digital.c78行定义。(宏文件里面的语言格式)

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 }

关闭窗口

相关文章