我有一个BLE屏蔽+ Arduino UNO,这是连接和我的IOS设备工作。我想要做的额外是显示与RGB LED的屏蔽连接状态。
我正在使用下面的代码,但不知怎么的,即使调用了函数,我也看不到颜色的变化。
int redPin = 13;
int greenPin = 12;
int bluePin = 11;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
// Init. and start BLE library.
ble_begin();
// Enable serial debug
Serial.begin(57600);
}
void loop()
{
Serial.println("Inside loop");
if ( ble_connected() )
{
setColor(200, 200, 200);
int sensorValue = analogRead(A0);
//Some code to write stuffs
}
ble_do_events();
delay(2000);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
Serial.println("Inside setcolor");
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}当我在没有BLE的情况下单独执行它时,LED代码工作得很好。下面的代码可以工作。上面放的同样的东西也没用。
int redPin = 13;
int greenPin = 12;
int bluePin = 11;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
setColor(20, 20, 20);
delay(2000);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}原因何在?它必须对AnalogRead和AnalogWrite做些什么吗?提亚
发布于 2015-10-07 14:25:59
正如“任择议定书”所问的,这是答案。
问题是Arduino UNO在引脚12和13上没有脉宽调制,所以这些引脚上的analogWrite什么也不做。
根据Arduino文档(这里),“在大多数Arduino板(带有ATmega168或ATmega328的板)上,该函数工作在引脚3、5、6、9、10和11上”。因此,改变R和G引脚解决了这个问题。
https://stackoverflow.com/questions/32945517
复制相似问题