Arduino入门:使用按键开关控制主电路的通断,当主电路接通时,有一个呼吸灯开始工作,同时RGB灯开始工作;RGB灯的颜色受电位计控制,最少显示三种颜色(红、绿、蓝);电位计的数值可以从串口读出来

电路连接如图所示:


 源代码如下:


int i;//i循环
int led=6;//led接口6
int potpin=0;//电位器接口0
int val=0;//暂存变量
int inpin=7;//接口7
int val3;//暂存变量
int R=11;//R接口11
int G=10;//G接口10
int B=9;//B接口9

void setup()
{
  pinMode(led, OUTPUT);//output led
  Serial.begin(9600);//波特率9600
  pinMode(inpin,INPUT);//按键接口为输入接口
  pinMode(R, OUTPUT);//output R
  pinMode(G, OUTPUT);//output G
  pinMode(B, OUTPUT);//output B
}

void loop()
{
  val3=digitalRead(inpin);//赋值
  //检测按键是否按下
  if(val3==LOW)
  {
    digitalWrite(led,LOW);
     //循环语句,控制PWM亮度增加
    for (i=0; i<=255; i++)
    {
      analogWrite(led,i);
      delay(5); //持续5ms
    }
    //循环语句,控制PWM亮度减小
    for (i=255; i>=0; i--)
    {
      analogWrite(led,i);
      delay(5); //持续5ms
    }
    delay(500); //延迟500ms
    
    val=analogRead(potpin);//赋值
    Serial.println(val);//显示
    analogWrite(R,val);//打开RGB并设置亮度
    analogWrite(G,val);//打开RGB并设置亮度
    analogWrite(B,val);//打开RGB并设置亮度
    if (val>=0&&val<300)
   {
     analogWrite(R,255);
     analogWrite(B,0);
     analogWrite (G,0);
    }
    else if (val>=300&&val<700)
   {
     analogWrite(R,0);
     analogWrite(B,0);
     analogWrite(G,255);
   }
   else
   {
     analogWrite(R,0) ;
     analogWrite (B,255) ;
     analogWrite(G,0) ;
   }
  delay(10);//延迟10ms
  }
  
  else
  {
    digitalWrite(led,HIGH);
  }
  
}

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
好的,我可以为您设一个简单的呼吸控制系统,该系统包含以下组件: 1. Arduino UNO控制器:作为控制器,控制呼吸的运行状态。 2. 电位器:用于调节呼吸的亮度。 3. 按键:用于手动控制呼吸开关。 4. LED:作为呼吸的输出设备,用于显示呼吸的运行状态。 下面是此系统的设流程: 1. 连接电位器 将电位器的三个引脚分别连接到 Arduino 的 5V、A0 和 GND 引脚上。 2. 连接LED 将 LED 连接到 Arduino 的数字引脚 9 上,其中正极连接到数字引脚 9,负极连接到 GND 引脚。 3. 连接按键按键的两个引脚分别连接到 Arduino 的数字引脚 2 和 GND 引脚上。 4. 编写Arduino程序 以下是简单的Arduino程序,实现呼吸呼吸效果和按键控制开关: ``` // 定义LED的引脚 int ledPin = 9; // 定义按键的引脚 int buttonPin = 2; // 定义电位器的引脚 int potPin = A0; // 定义呼吸的亮度值 int brightness = 0; // 定义呼吸的步长 int fadeAmount = 5; // 定义按键状态 int buttonState = 0; void setup() { // 初始化LED按键 pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); } void loop() { // 读取电位器的值 int potValue = analogRead(potPin); // 将电位器的值转换为呼吸的亮度值 brightness = map(potValue, 0, 1023, 0, 255); // 读取按键状态 buttonState = digitalRead(buttonPin); // 如果按键被按下 if (buttonState == LOW) { // 熄灭LED digitalWrite(ledPin, LOW); } else { // 使LED呼吸 analogWrite(ledPin, brightness); brightness = brightness + fadeAmount; if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } delay(30); } } ``` 5. 测试系统 将 Arduino 连接到电脑上,上传程序。然后,您可以旋转电位器,调整呼吸的亮度,按下按键控制开关。 希望这个设可以满足您的需求。如果您有任何问题,请随与我联系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某科学的初学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值