当前位置:  开发笔记 > 开发工具 > 正文

在不同的arduinos上闪烁的指示灯

如何解决《在不同的arduinos上闪烁的指示灯》经验,为你挑选了1个好方法。

我想将LED连接到不同的arduino板并创建一个闪烁它们的功能.让我更清楚地分享我的代码:

#define ARDUINO_MEGA
//#define ARDUINO_UNO
//#define ARDUINO_NANO
#ifdef ARDUINO_MEGA
#define R 22 // Red led attached to pin 22
#define G 25 // Green led attached to pin 25
#define B 23 // Blue led attached to pin 23
#endif
#ifdef ARDUINO_UNO
#define R 2 // Red led attached to pin 2
#define G 3 // Green led attached to pin 3
#define B 5 // Blue led attached to pin 5
#endif
#ifdef ARDUINO_NANO
#define R 7 // Red led attached to pin 7
#define G 8 // Green led attached to pin 8
#define B 9 // Blue led attached to pin 9
#endif
void setup(){
    pinMode(R, OUTPUT);
    pinMode(G, OUTPUT);
    pinMode(B, OUTPUT);
}
void loop(){
    blink('R', 5, 100);
    blink('G', 3, 300);
    blink('B', 10, 80);
}
void blink(byte ledColor, int howManyTimes, int duration){
    for (int x=0; x

我想要的眨眼功能是:

如果我取消注释#define ARDUINO_MEGA并将草图上传到Arduino Mega,它应该闪烁连接到引脚22,25和23的LED

如果我取消注释#define ARDUINO_NANO并将草图上传到Arduino Nano,它应该闪烁连接到引脚7,8和9的LED

如果我取消注释#define ARDUINO_UNO行并将草图上传到Arduino Uno,它应该闪烁连接到引脚2,3和5的LED

谢谢.



1> Gerald Schne..:

您的代码有些问题:

#不是C中的注释.例如,它启动编译器指令#define.如果你想评论一个,请在它之前添加注释//:

#define ARDUINO_MEGA
// #define ARDUINO_UNO
// #define ARDUINO_NANO

如果没有注释,则定义所有三个值,因此最后一个定义块将覆盖先前的定义块.定义块本身应该可以工作,但文档建议使用const而不是#define如果它不直接与编译器相关.

这意味着定义块应如下所示:

#ifdef ARDUINO_NANO
const int R 7 // Red led attached to pin 7
const int G 8 // Green led attached to pin 8
const int B 9 // Blue led attached to pin 9
#endif

这是下一个错误:您提供的是char而不是预期的整数.编译器将char转换为预期的字节,但为此使用ASCII值.一个R82,而不是22你期望的Arduino的兆.

void loop(){
    // blink('R', 5, 100);
    blink(R, 5, 100);
    blink(G, 3, 300);
    blink(B, 10, 80);
}

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有