首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BLE屏蔽读取时,RGB LED将无法工作

使用BLE屏蔽读取时,RGB LED将无法工作
EN

Stack Overflow用户
提问于 2015-10-05 09:45:24
回答 1查看 122关注 0票数 0

我有一个BLE屏蔽+ Arduino UNO,这是连接和我的IOS设备工作。我想要做的额外是显示与RGB LED的屏蔽连接状态。

我正在使用下面的代码,但不知怎么的,即使调用了函数,我也看不到颜色的变化。

代码语言:javascript
复制
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代码工作得很好。下面的代码可以工作。上面放的同样的东西也没用。

代码语言:javascript
复制
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做些什么吗?提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 14:25:59

正如“任择议定书”所问的,这是答案。

问题是Arduino UNO在引脚12和13上没有脉宽调制,所以这些引脚上的analogWrite什么也不做。

根据Arduino文档(这里),“在大多数Arduino板(带有ATmega168或ATmega328的板)上,该函数工作在引脚3、5、6、9、10和11上”。因此,改变R和G引脚解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32945517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档