19. 颜色传感器

19.1. 概述

是指由于不同颜色对光线的反射系数不同,可根据接收到的反射光的强弱来判断。N+颜色循迹模块获取颜色HSV值也可以单独地获取颜色的H/S/V值。HSV指的是(色调,饱和度,亮度)

色调(H:hue):
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度(S:saturation):
取值范围为0.0~1.0,值越大,颜色越饱和。
亮度(V:value):
取值范围为0(黑色)~255(白色)
../../_images/11-1.jpg
技术规格
  • 工作电源:3.3V
  • 有效测距量程:1~8mm
  • 尺寸:20mm x 53.5mm
  • 接口类型 :I2C直插接口
  • 设备类型:输入设备
接口定义
  • V:电源正极
  • G:电源负极
  • SDA:双向数据线
  • SCL::时钟线

19.2. 案例程序

(1)识别RGB值

图形化:
../../_images/12-2.png
代码:
from mpython import *

from nplus import *

import time

color = Color()
color.setup()
color.turn_on()
oled.fill(0)
oled.DispChar('目前RGB值是:', 0, 0, 1)
while True:
    oled.fill_rect(0, 16, 128, 16, 0)
    oled.DispChar((str(color.getRGB())), 0, 16, 1)
    oled.show()
    time.sleep(1)

(2)识别HSV中H的颜色

图形化:
../../_images/12-3.png
代码:
from mpython import *

from nplus import *

color = Color()
color.setup()
color.turn_on()
oled.fill(0)
if color.discern_red():
    oled.DispChar('红', 0, 0, 1)
elif color.discern_green():
    oled.DispChar('绿', 0, 0, 1)
oled.show()