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

电子说

1.3w人已加入

描述

步骤1:所需零件

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

1 RGB LED

1微处理器

1标准红色LED

1 1k欧姆电阻器

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

某些电线

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

步骤2:构建电路

PIC16F887

原理图非常简单,下面以一般形式显示。 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_adc(ADC_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进行分类,或作为色盲的辅助。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分