XIAOBAI 发表于 2014-10-28 16:00:11

业余小玩家 发表于 2014-10-28 15:53 static/image/common/back.gif
你现在做到哪一步了?

可以用遥控器让灯亮!但不会改变亮度!

zoologist 发表于 2014-10-28 18:43:03

我写了一个程序你可以参考一下,LED接在Pin6上

参考 http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1054&highlight=pwm

打开串口,使用 + 和 - 来控制亮度

intn=100;
void setup()

{
    Serial.begin(9600);
    pinMode(6,OUTPUT);      //该端口需要选择有#号标识的数字口
}

void loop()
{
charc;


    while (Serial.available() > 0)
    {
      c=Serial.read();
      if ('+'==c)
          {
            n=n+5;
          }
      if ('-'==c)
          {
            n=n-5;
          }
       if (n>255) {n=0;}
       if (n<0) {n=255;}   
       analogWrite(6,n);
       Serial.println(n);
      
    }
}

XIAOBAI 发表于 2014-10-28 19:35:44

zoologist 发表于 2014-10-28 18:43 static/image/common/back.gif
我写了一个程序你可以参考一下,LED接在Pin6上

参考 http://www.geek-workshop.com/forum.php?mod=viewth ...

非常感谢!

XIAOBAI 发表于 2014-10-28 20:00:48

zoologist 发表于 2014-10-28 18:43 static/image/common/back.gif
我写了一个程序你可以参考一下,LED接在Pin6上

参考 http://www.geek-workshop.com/forum.php?mod=viewth ...

#include <IRremote.h>

int RECV_PIN = 11;   //红外线接收器OUTPUT端接在pin 11
int LED1 = 6;      // 定义LED引脚为10
IRrecv irrecv(RECV_PIN);   // 定义IRrecv 对象来接收红外线信号
decode_results results;   //解码结果放在decode_results构造的对象results里
void irdisplay(unsigned long value)//按下按键后,显示本遥控对应的按键
{
switch(value){         //判定按下的是哪个按键,串口显示按钮名称
case 0xFFA25D:
    Serial.println("POWER");
    digitalWrite(LED1, LOW);    //电源键按下,执行关闭LED灯
    break;
case 0xFF629D:
    Serial.println("Mode");
    break;
case 0xFFE21D:
    Serial.println("MUTE");
    digitalWrite(LED1, HIGH);      //静音键按下,执行点亮LED灯
    break;
case 0xFFA857:
    Serial.println("-");

    break;
case 0xFF906F:
    Serial.println("+");
    break;
      }
}
intn=100;
void setup()
{
pinMode(LED1,OUTPUT);          // 定义LED为输出引脚
   Serial.begin(9600);          //开启串口通信,并设定波特率为9600
irrecv.enableIRIn();          //启动红外解码
pinMode(6,OUTPUT);      //该端口需要选择有#号标识的数字口
}
void loop() {
if (irrecv.decode(&results))
{
    //解码成功,收到一组红外线信号
    irdisplay(results.value);   
    irrecv.resume();         
}
charc;


    while (Serial.available() > 0)
    {
      c=Serial.read();
      if ('+'==c)
          {
            n=n+5;
          }
      if ('-'==c)
          {
            n=n-5;
          }
       if (n>255) {n=0;}
       if (n<0) {n=255;}   
       analogWrite(6,n);
       Serial.println(n);
      
    }
}


这样写为什么不行?

zoologist 发表于 2014-10-28 21:07:15

XIAOBAI 发表于 2014-10-28 20:00 static/image/common/back.gif
#include

int RECV_PIN = 11;   //红外线接收器OUTPUT端接在pin 11


呃我是因为没有红外线遥控器 所以才用串口接收的啊

你的话,直接写在按键控制里面就可以了

你先想办法看懂程序吧

XIAOBAI 发表于 2014-10-28 21:11:41

zoologist 发表于 2014-10-28 21:07 static/image/common/back.gif
呃我是因为没有红外线遥控器 所以才用串口接收的啊

你的话,直接写在按键控制里面就可以了


谢谢!:handshake
页: 1 [2]
查看完整版本: 求助