arduino用串口控制LGB

int redPin = 11;
int greenPin = 10;
int bluePin = 9;
char rgb[18];
int ra[3];
int p=0;
void setup()
{
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);  
}
void loop()
{
  if (Serial.available()>0)
  {
    delay(100);
    int i=0;
    int mao=Serial.available();
    if (mao>15) mao=15;
    while (mao!=0)
    {
      rgb[i]=Serial.read();
      i++;
      mao--;
    }
    rgblight(rgb);
  }
}

void rgblight(char* dota2)
{
  Serial.print("This is:");
  Serial.println(dota2);
  char* lol;
  lol=strtok(dota2," ");
  while (lol!=NULL) {
    Serial.println(atoi(lol));
    lol=strtok(NULL," ");
    ra[p]=atoi(lol);
    p++;
  }
  RGB(ra[0],ra[1],ra[2]);
  ra[0]=0;
  ra[1]=0;
  ra[2]=0;
  for (int i=0;i<=17;i++){
    rgb[i]='\0';
  }
}
void RGB(int red, int green, int blue)
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}

### Arduino 使用串口通信控制 LED 点亮与熄灭 #### 1. 硬件准备 为了实现通过串口命令控制LED的点亮和熄灭,需要准备以下材料: - Arduino 开发板(如 Uno 或 Mega) - USB 数据线用于连接电脑和Arduino - 一个LED - 电阻(通常为220欧姆) 将LED的正极(较长的一端)连接到Arduino的一个数字引脚(例如D13),负极则通过电阻接地。 #### 2. 软件设置 使用Arduino IDE作为开发工具,在其中编写并上传代码至Arduino。确保已安装最新版本的Arduino IDE,并选择了正确的开发板型号以及COM端口号。 #### 3. 示例代码解析 下面给出一段完整的Arduino程序,该程序能够接收来自计算机或其他设备发出的字符串指令并通过串行接口响应这些请求以操作指定管脚上的LED状态变化[^1]。 ```cpp int LED = 13; // 定义使用的LED引脚编号 String buff = ""; void setup() { Serial.begin(9600); // 初始化串行通讯波特率为9600bps pinMode(LED, OUTPUT); // 设置LED引脚模式为输出 } void loop() { while (Serial.available()>0) { buff += char(Serial.read()); // 将收到的数据累加到缓冲区变量中 delay(3); } if (buff == "ON") { // 如果接收到的是'ON' digitalWrite(LED, HIGH); // 执行高电平动作使能LED发光 Serial.println("LED IS ON"); buff = ""; } else if (buff == "OFF"){ // 若接收到‘OFF’ digitalWrite(LED, LOW); // 则执行低电平让LED熄灭 Serial.println("LED IS OFF"); buff = ""; } delay(50); // 延迟一段时间防止误触发 } ``` 这段代码实现了基本的功能需求:当从串口中读取到特定字符序列时改变相应GPIO的状态从而达到控制外设的目的;同时向发送方反馈当前的操作结果以便确认命令已被成功处理。 #### 4. 测试验证 完成上述配置之后就可以测试整个系统的运行情况了。打开Arduino IDE中的串行监视器窗口,输入`ON`按下回车键后应该可以看到LED被点亮;同样地,再输入`OFF`再次按Enter,则会观察到LED熄灭的现象。这证明了通过串行数据流可以有效地遥控物理世界里的元件行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值