Ardunio控制RGB的LED灯显示彩虹渐变色.

由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下.

其他没什么不同

//定义RGB色彩的输出I/O
int redPin = 11;
int greenPin = 10;
int bluePin = 9;

//标记颜色变化的方式,增加值还是减小值
bool redBool =false;
bool greenBool=true;
bool blueBool=false;
//颜色值,初始化为0,127,255
int redVal =0;
int greenVal=127;
int blueVal=255;

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

/**
 * 改变颜色的增减顺序
 */
void changeStatus()
{
   if (redVal==0)
  {
    redBool=true;
  }
  else if (redVal==255)
  {
    redBool=false;
  }

  if (greenVal==0)
  {
    greenBool=true;
  }
  else if (greenVal==255)
  {
    greenBool=false;
  }

  if (blueVal==0)
  {
    blueBool=true;
  }
  else if (blueVal==255)
  {
    blueBool=false;
  }
}

/**
 * 改变颜色的变化量,增加还是减少
 */
void changeColorVal()
{
    if (redBool)
  {
    redVal++;
  }
  else
  {
    redVal--;
  }
  if (greenBool)
  {
    greenVal++;
  }
  else
  {
    greenVal--;
  }
  if (blueBool)
  {
    blueVal++;
  }
  else
  {
    blueVal--;
  }
}
/**
 * 设置led灯颜色
 */
void setColor(int red, int green, int blue)
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}
void loop()
{
  //更新颜色变化状态
  changeStatus();
  //更新颜色值
  changeColorVal();
  //设置颜色
  setColor(redVal, greenVal, blueVal);
  delay(50);
}
时间: 2024-10-08 06:05:56

Ardunio控制RGB的LED灯显示彩虹渐变色.的相关文章

nodejs和树莓派开发以及点亮RGB的LED灯代码

前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ssh [email protected](ip)密码:raspberry 设置显示设备 推荐选购3.5吋或者5吋的HDMI显示设备,我第一次买的3.2吋的串口显示器,占用了我20个串口的针脚. 设备链接见这里 使用3.5吋显示器 cd /boot/LCD-show/./LCD35-show使用HDMI

STM32 用c语言控制4个LED灯从左向右无限流动

在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了, 想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数 无限循环. #include "stm32f10x_conf.h"#include "led.h"#include "delay.h" int main(void){ LED_Init(); delay_init(); int i; for(i=0;;i++) { if(i%5==1) { LED

单片机远程控制步进电机、LED灯和蜂鸣器

通过采用C#语言实现的上位机控制单片机的步进电机模块.LED灯和蜂鸣器模块,使步进电机进行正.反转和停止并控制转速:LED灯模块进行有选择的呼吸式表达:蜂鸣器模块的开始和终止. 上位机通过串口和自定义的通信协议(8字节)控制单片机的步进电机.LED灯和蜂鸣器模块.其中在控制步进电机的过程中,为了使操作能够及时响应,使用了INT0中断来进行及时性速度响应:LED灯使用位运算控制灯的闪烁位置,合理利用了单片机的模块和操作. 注意:由于定时器个数的限制,没能控制更多的模块. #include<reg5

用 BerryClip - 6 LED Board 显示树莓派的温度

用 BerryClip - 6 LED Board 显示树莓派的温度 BerryClip - 6 LED Board 是一个学习GPIO的开发板,适合我这样不懂硬件的童鞋,用python 控制6个LED灯,一个蜂鸣器,和一个开关 文档在这里 https://bitbucket.org/MattHawkinsUK/rpispy-berryclip/downloads/BerryClip%20User%20Guide.pdf 示例代码在这里 https://bitbucket.org/MattHaw

[51单片机] nRF24L01 无线模块 串口法命令 通过无线控制另一个的灯

>_<!概述: 这是在上一个的基础上通过按键发送4种不同命令来控制接收端的LED灯亮的改进版(上一个:http://www.cnblogs.com/zjutlitao/p/3840013.html),这里俺把按键发命令给去掉,然后加入一个串口通信的功能,PC通过串口给发送端发送命令,然后发送端通过无线将命令发给接收端来实现控制,这里接收端和上一个例程中的一样,只是在发送端的代码里去除了按键控制,变成了串口控制. >_<!发送端电路: >_<!接收电路图: >_&l

1.2.第一个实验——点亮LED灯

1.2.第一个实验--点亮LED灯 预备知识: (1)位.字节.IO端口.IO口 字节是内存管理的最小单位,一个字节是八位,每一位可以存放一个二进制位(0或者1).一个IO端口包括一组IO口,一般一组是八个,一个端口就是一组IO引脚.一个IO口对应一个二进制位,一个IO端口对应一个字节. (2)二进制和十六进制的转换 一个十六进制位等于四个二进制位,比如0xff对应二进制是1111 1111 实验目的:点亮八颗LED灯 实验过程分析: (1)八颗LED分别由八位二进制位来控制,二进制位是1时LE

74HC595点亮8个LED灯

一.原理介绍 595有两个寄存器,都是8位的,如下所示: 595是串入并出带有锁存功能移位寄存器,它的使用方法简单: - -  在正常使用时 /SCLR接高电平,/G接低电平. - -  从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕 - - 输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端. 不同的595引脚名称会不一样,但是功能是一样的.大家看引脚序号即可.以下是595引脚图: 595具体使用的步骤:第一步:目的:将要准备输入的位数据移入74HC595

arduino入门学习实现语音控制LED灯

需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭. 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val int ledpin=10;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致.当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致. pinMode(ledpin,OUTPUT);//设置数字10

Beaglebone Black - 控制 BBB 板上的 LED 灯

BBB 的板上有五个 LED 灯,一个电源,四个其他指示灯,usr0 至 usr3 .这次学习是控制 usr0 至 3 让它们亮着,熄灭,闪.算是个 Hello World 实验.非常简单. 需要的材料: BBB 一台 购买BBB 自带的数据线一条 手提电脑或台式电脑,有 USB 插头的 首先用数据线把 BBB 和电脑连接,自动开机了之后,可以开始了. 这次三个做法都试试: Bonescript Python C++ Bonescript 操作 Bonescript 做法是用 Cloud9,假设