0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样使用RGB LED进行颜色检测

454398 来源:wv 2019-10-17 10:00 次阅读

步骤1:所需零件

我使用了PIC 16F887单片机,但几乎具有脉冲宽度调制功能的设备将起作用。

1 RGB LED

1微处理器

1标准红色LED

1 1k欧姆电阻器

1光敏电阻(根据其上照射的光量来改变电阻

某些电线

》我只需要微控制器和RGB LED即可拥有广泛的颜色检测器,但是如果您只想检测一种颜色的电路,则不需要微控制器-您只需要一个想要的颜色的明亮LED检测。标准的红色LED是“指示灯LED”-在检测到正确的颜色时会点亮。

步骤2:构建电路

原理图非常简单,下面以一般形式显示。 RGB LED由PWM信号从外部供电

我将胶带缠在光敏电阻上,这样环境光就不会进入-仅能检测到正上方的光。

第3步:代码

该代码是为Microchip PIC 16F887编写的,但希望您能得到大致的认识。我使用了开发板上的内置电位计来改变RGB LED的光谱(由于没有3个PWM模块,所以它无法遍历整个光谱,但这已经足够了)

评论包括在内。

#include 《16F887.h》

#include

#include“ delay.c”

#include

#include

#use delay(时钟= 4000000)

#FUSES INTRC,NOWDT,NOPUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP

#byte CCP1CON = 0x17

#byte CCP2CON = 0x1D

#byte PWM1CON = 0x9B

int值= 128;

int p1 = 0;

int p2 = 0;

void my_setup_ccp1(int8值)

{

output_low (PIN_C2);

CCP1CON =值;

PWM1CON = 0;

}

void my_setup_ccp2(int8值)

{

output_low(PIN_C1);

CCP2CON =值;

}

//=================================

void main( )

{

//A4 =光电二极管电源

output_high(PIN_A4);

output_high(PIN_B1);

setup_adcADC_CLOCK_INTERNAL);

set_adc_channel(0);

》 setup_adc_ports(sAN0);

//定时器/中断设置

enable_interrupts(INT_TIMER2);

my_setup_ccp1(CCP_PWM);

my_setup_ccp2(CCP_PWM);

setup_timer_2(T2_DIV_BY) ;

//setup_compare(2,COMPARE_PWM | COMPARE_TIMER2);

while(1){//防止PI

//设置PWM占空比

output_high(PIN_A5);

//Pin A3是光电二极管连接

if(input(PIN_A3)== 1)

output_high(PIN_A4);

else

output_low(PIN_A4);//读取电位器的值以更改LED的颜色

value = read_adc();

开关(值){

case 0:

p1 =值;

output_low(PIN_C0);

p2 =值;

break;

case 50:

p1 =值;

output_high(PIN_C0 );

p2 =值;

break;

情况100:

p1 =值;

output_high(PIN_C0);

p2 =值;

break;

情况150:

output_high(PIN_C0);

p1 = 50;

p2 =值;

break;

情况200:

output_low(PIN_C0);

p1 = 0 ;

p2 =值;

break;

case 250:

p1 = 0;

p2 =值;

output_low(PIN_C0);

break;

}

p1 =值;

p2 = 128-p1;

set_pwm1_duty(p1);

set_pwm2_duty(p2);

}

}

第4步:应用程序!

像这样的简单颜色检测器可以用于机器人技术,也可以用于很酷的项目,例如用col分隔legos。或对M&M进行分类,或作为色盲的辅助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23128

    浏览量

    658284
  • PIC16F887
    +关注

    关注

    1

    文章

    17

    浏览量

    6746
收藏 人收藏

    评论

    相关推荐

    如何用SS1系列颜色传感器设置目标颜色

    基于白色LED光源的特性,深视智能SS1系列颜色传感器突破了传统单色RGB、融合光RGB的波长限制,将发射波长的范围覆盖到整个可见光谱,最大支持检测
    的头像 发表于 11-19 01:04 73次阅读
    如何用SS1系列<b class='flag-5'>颜色</b>传感器设置目标<b class='flag-5'>颜色</b>?

    常见视频高速接口MIPI,LVDS,RGB,HDMI分析

    一、RGB接口 (1)接口定义 RGB颜色是工业界的一种颜色标准,是通过对红、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得
    的头像 发表于 11-16 11:22 385次阅读
    常见视频高速接口MIPI,LVDS,<b class='flag-5'>RGB</b>,HDMI分析

    UART软件控制的RGB LED混色与MSP430™ MCU

    电子发烧友网站提供《UART软件控制的RGB LED混色与MSP430™ MCU.pdf》资料免费下载
    发表于 10-09 11:41 0次下载
    UART软件控制的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>混色与MSP430™ MCU

    如何选择RGB LED驱动器

    电子发烧友网站提供《如何选择RGB LED驱动器.pdf》资料免费下载
    发表于 09-25 14:29 0次下载
    如何选择<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驱动器

    基于LP50xx器件的全彩RGB LED矩阵系统设计指南

    电子发烧友网站提供《基于LP50xx器件的全彩RGB LED矩阵系统设计指南.pdf》资料免费下载
    发表于 09-25 11:52 0次下载
    基于LP50xx器件的全彩<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>矩阵系统设计指南

    RGB和XYZ颜色传感器之间进行选择,以实现自适应照明调节

    电子发烧友网站提供《在RGB和XYZ颜色传感器之间进行选择,以实现自适应照明调节.pdf》资料免费下载
    发表于 08-26 09:30 0次下载
    在<b class='flag-5'>RGB</b>和XYZ<b class='flag-5'>颜色</b>传感器之间<b class='flag-5'>进行</b>选择,以实现自适应照明调节

    LED透镜的颜色与透明度基本概念

    如果 LED灯 有透镜颜色,则无论透镜透明度如何,LED 在开和关时都会显示该颜色。如果透镜颜色为白色或无色,则
    的头像 发表于 07-25 09:34 361次阅读

    智能家居之旅(7):HomeAssistant开发板的RGB颜色

    怎么上HomeAssistant,然后控制Ai-M61开发板的 RGB 灯的颜色,感觉这个项目用来控制家里的灯条就挺不错的。 彩灯实体创建 1.彩灯实体资源启用 彩灯实体在 HomeAssistant
    的头像 发表于 07-03 16:39 442次阅读
    智能家居之旅(7):HomeAssistant开发板的<b class='flag-5'>RGB</b><b class='flag-5'>颜色</b>

    emWin转RGB565颜色失真怎么解决?

    我今天测试了一下一张纯色图片RGB24 的格式 颜色值:0xe9e9e9,用ST的BmpCvtST.exe转出来RGB565格式的 里面全是0xE75C。 用Img2Lcd转出来的是0xEF5D
    发表于 04-24 06:31

    5050RGB三合一LED WS2850B数据手册

    电子发烧友网站提供《5050RGB三合一LED WS2850B数据手册.pdf》资料免费下载
    发表于 03-07 18:16 1次下载

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LEDRGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您
    的头像 发表于 02-11 10:28 4525次阅读
    如何使用Arduino控制<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>

    在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

    在给核桃派开发板用OpenCV读取图像并显示到pyqt5的窗口上并加入颜色检测功能,尝试将图像中所有蓝色的东西都用一个框标记出来。颜色检测核心api按照惯例,先要介绍一下opencv中
    发表于 01-22 10:10

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验

    本文完成的实验为按键控制LED灯,通过对连接按键输入的IO电平进行检测,根据电平的状态来改变LED的亮灭。 实验要求和硬件概览 在【每周一练】小眼睛FPGA1K开发板硬件平台中使用的LED
    发表于 12-21 22:45

    影响LED透明屏清晰度的因素有哪些?怎样提高LED透明屏的清晰度?

    影响LED透明屏清晰度的因素有哪些?怎样提高LED透明屏的清晰度? 影响LED透明屏清晰度的因素包括像素密度、像素尺寸、亮度、对比度、颜色
    的头像 发表于 12-11 14:25 814次阅读

    树莓派Pico驱动RGB LED模块的方法

    RGB LED 模块内有红、绿、蓝三种颜色的灯丝。可以通过程序将其调制成丰富的色彩点亮。
    的头像 发表于 11-30 09:06 1323次阅读
    树莓派Pico驱动<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>模块的方法