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

    关注

    237

    文章

    22350

    浏览量

    645538
  • PIC16F887
    +关注

    关注

    1

    文章

    17

    浏览量

    6722
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino控制RGB LED

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

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

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

    ZC-CLS381RGB颜色识别+8x8点阵指示—配置颜色识别寄存器组(上)

    在现代工业生产中,颜色识别技术已经成为了一个非常重要的技术。颜色识别可以用于产品质量检测、物料分类、机器视觉等领域。本文将介绍如何使用FPGA结合ZC-CLS381RGB
    的头像 发表于 11-03 17:40 933次阅读
    ZC-CLS381<b class='flag-5'>RGB</b><b class='flag-5'>颜色</b>识别+8x8点阵指示—配置<b class='flag-5'>颜色</b>识别寄存器组(上)

    为什么LED能够发出不同颜色的光

    LED(发光二极管)已经成为了现代照明和电子领域的主力军,因为它们不仅具有高效能、长寿命和低能耗等优点,还能够发出多种不同的颜色的光。本文将从LED的类型、工作原理以及其优点三个方面来探讨LE
    的头像 发表于 09-27 08:15 1340次阅读
    为什么<b class='flag-5'>LED</b>能够发出不同<b class='flag-5'>颜色</b>的光

    如何使用MS51 PWM来控制UART的RGB LED

    应用:本样本代码使用MS51 PWM来控制UART的RGB LED。 BSP 版本: MS51_Series_BSP_Keil_V1.00.004 硬件:NuTiny-MS51FB V1.1 此
    发表于 08-29 06:03

    颜色、色标模式于一身的ESE系列传感器

    什么是颜色传感器?颜色传感器(ColorSensor)是用来识别和比较物体表面颜色值的传感器,以红绿蓝三原色为基色将反射回来的信号与RGB三原色进行
    的头像 发表于 08-22 08:26 450次阅读
    集<b class='flag-5'>颜色</b>、色标模式于一身的ESE系列传感器

    利用OpenCV进行颜色检测

    关于利用OpenCV进行颜色分类,本文包含了HSV介绍及应用、cv2.inRange及应用、RGB与HSV通道的区别三个方面。
    的头像 发表于 08-18 10:32 809次阅读
    利用OpenCV<b class='flag-5'>进行</b><b class='flag-5'>颜色</b><b class='flag-5'>检测</b>

    如何利用OpenCV进行颜色分类 rgb和hsv的区别

    如果光源不稳定,光照变化较大(存在阴影或者亮斑),则利用HSV通道检测就比RGB检测高效得多。光照变化较大时,对RGB三个色道的参数影响都很大,在实际调参过程中会显得非常麻烦,而且效果
    发表于 08-07 09:52 749次阅读
    如何利用OpenCV<b class='flag-5'>进行</b><b class='flag-5'>颜色</b>分类 <b class='flag-5'>rgb</b>和hsv的区别

    使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色

    电子发烧友网站提供《使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色.zip》资料免费下载
    发表于 07-12 09:13 0次下载
    使用PWM或脉冲宽度调制管理<b class='flag-5'>LED</b>亮度和<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>颜色</b>

    Python OpenCV教程:特定颜色检测

    在这篇OpenCV Python文章中,我想展示OpenCV中的基本颜色检测示例。 我们用颜色空间或颜色模型来表示计算机上的颜色,该模型基本
    的头像 发表于 07-03 10:30 596次阅读

    颜色传感器的原理

    颜色传感器 何谓颜色传感器? 感光传感器(光传感器)中,检测R(红色)、G(绿色)、B(蓝色)3原色的叫作颜色传感器。 颜色传感器通过光电二
    的头像 发表于 06-30 10:18 1541次阅读
    <b class='flag-5'>颜色</b>传感器的原理

    如何使用ESP8266和MQTT消息进行WIFI颜色检测

    之前 WIFI 颜色检测的实现是通过一个临时消息系统完成的。现在,最划算的是集成 MQTT,因为它在消息格式和内容方面更加灵活。 我得到了颜色检测,它涉及对 R、G、B 和无滤波器的每
    发表于 05-24 08:52

    如何通过MQTT控制RGB LED

    IDE 进行编程的。所有这些都 100% 有效。我可以通过 OpenHAB 的用户界面打开/关闭灯。现在这是我有问题的地方。 我还有一台 WeMos D1 Mini。我制作了一个定制的 RGB LED
    发表于 05-23 06:44

    量产最小尺寸1010RGB 0402RGB共阳LED灯珠规格书

    量产最小尺寸1010RGB 0402RGB共阳LED灯珠规格书外观尺寸( L/W/H ) : 1.0 x 1.0 x 0.4 mm 颜色: 高亮度
    发表于 04-14 18:06 3次下载

    多色照明采用RGB LED大功率驱动器

    LED驱动器为正向电压范围高达2V的多芯片LED模块提供36A电流。该电路仅驱动一种颜色RGB LED,因此需要三个这样的驱动器来驱动所
    的头像 发表于 04-13 10:25 1038次阅读
    多色照明采用<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>大功率驱动器