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
    +关注

    关注

    243

    文章

    24437

    浏览量

    687461
  • PIC16F887
    +关注

    关注

    1

    文章

    17

    浏览量

    7021
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ‌LP5861 18通道RGB LED驱动器技术解析与应用指南

    Texas Instruments LP5861 18通道RGB LED矩阵驱动器设计用于使用LED矩阵以小尺寸解决方案来改善具有动画效果和指示功能的善用户体验。LP5861集成了18个具有N(N
    的头像 发表于 09-19 10:36 549次阅读
    ‌LP5861 18通道<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驱动器技术解析与应用指南

    ‌LP5520 RGB背光LED驱动器技术文档总结

    传感器,调整 RGB LED 电流以实现完美的白平衡,而不受亮度设置或温度的影响。用户可编程校准存储器具有每种颜色的强度与温度数据。该白平衡校准数据可以编程到背光模块生产线上的存储器中。
    的头像 发表于 09-05 15:16 738次阅读
    ‌LP5520 <b class='flag-5'>RGB</b>背光<b class='flag-5'>LED</b>驱动器技术文档总结

    N9H20如何将颜色格式从 RGB565 更改为 RGB888?

    N9H20如何将颜色格式从 RGB565 更改为 RGB888?
    发表于 09-05 06:06

    ‌LP55281 12通道RGB/白光LED驱动器技术文档总结

    可以驱动单个颜色 LED 或由升压输出或外部电源供电的 RGB LED。内置音频同步功能允许用户将趣光 LED 同步到音频输入。灵活的 SP
    的头像 发表于 09-04 14:15 700次阅读
    ‌LP55281 12通道<b class='flag-5'>RGB</b>/白光<b class='flag-5'>LED</b>驱动器技术文档总结

    嵌入式接口通识知识之RGB接口

    、绿、蓝三种颜色的信号,来实现彩色图像的显示。每一种颜色信号都独立地控制了显示设备上对应颜色的亮度和色彩深度。它可以通过不同的传输方式实现,包括模拟RGB和数字
    发表于 08-29 15:54

    如何使用 MS51 PWM 通过 UART 控制 RGB LED

    使用 MS51 PWM 通过 UART 控制 RGB LED
    发表于 08-20 07:24

    touchgfx4.25颜色错误是什么原因导致的?

    touchgfx4.25颜色错误 .紫色显示成了蓝色. 使用rgb888或者rgb565模式都试过结果一样.后方的红绿蓝紫是svg图片.非box控件的颜色.
    发表于 08-14 06:21

    LP5813同步升压4×3矩阵RGB LED驱动器技术解析与应用指南

    Texas Instruments LP5813 4 × 3矩阵RGB LED驱动器是一款同步升压RGB驱动器,具有自主动画引擎控制功能。该器件非常适合用于支持输入电压范围为0.5V至5.5V的电池供电应用,具有超低正常工作电流
    的头像 发表于 08-12 16:24 765次阅读
    LP5813同步升压4×3矩阵<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驱动器技术解析与应用指南

    RGB LED 时尚照明控制器 skyworksinc

    电子发烧友网为你提供()RGB LED 时尚照明控制器相关产品参数、数据手册,更有RGB LED 时尚照明控制器的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 07-28 18:34
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b> 时尚照明控制器 skyworksinc

    【BPI-CanMV-K230D-Zero开发板体验】02 按键中断切换彩色LED颜色

    , FPIOA.GPIO0) 2.3 machine.LED 用于访问板载 RGB LED。 支持颜色字符串 \"LED_RED\", \
    发表于 07-01 15:08

    请问v9版本的lvgl不能创建颜色为24bit的RGB888吗?

    v9版本的lvgl不能创建颜色为24bit的RGB888吗?
    发表于 03-21 07:47

    Melexis推出MLX80142双RGB LED驱动芯片

    Melexis宣布推出MLX80142双RGB LED驱动芯片(六通道),作为迈来芯智能状态机LED驱动芯片系列的最新成员,这是第一款支持MeLiBu® 2.0协议的产品。该芯片不仅搭载迈来芯成熟
    的头像 发表于 03-18 11:20 1226次阅读

    FRED应用:LED发光颜色优化

    在本例中, LED红光、绿光、蓝光发射通过优化其各个功率在屏幕上特定区域产生特定的颜色(色坐标值)而目标面上总的功率保持固定不变。LED光源使用任意平面发射光源(Random Plane
    发表于 01-17 09:39

    FRED应用:LED发光颜色优化

    在本例中, LED红光、绿光、蓝光发射通过优化其各个功率在屏幕上特定区域产生特定的颜色(色坐标值)而目标面上总的功率保持固定不变。LED光源使用任意平面发射光源(Random Plane
    发表于 01-07 08:51

    如何用SS1系列颜色传感器示教多通道颜色

    基于白色LED光源的特性,深视智能SS1系列颜色传感器突破了传统单色RGB、融合光RGB的波长限制,将发射波长的范围覆盖到整个可见光谱,最大支持检测
    的头像 发表于 12-23 08:17 1063次阅读
    如何用SS1系列<b class='flag-5'>颜色</b>传感器示教多通道<b class='flag-5'>颜色</b>?