 驾驶的RGB LED PICAXE-08M 我工作的一个新的RTFMs情节,涉及包装成一个非常狭小的空间,一个RGB LED和微控制器。 我决定使用的微控制器是PICAXE-08。 我选择它的原因有三: - 我有一个盒子 - 我有没有其他的计划,因为它似乎不是很适合我(高海拔气球项目) - 用它来昏暗的RGB LED是一个挑战
我GOOGLE了一会儿,没有发现任何解决方案的RGB LED和PICAXE,08M工作在一起,我计划。 虽然三种不同颜色的LED之间切换,是不是所有的问题,混合颜色是不是这个芯片的琐碎。 我想分别控制各256色阶,亮度/调光,因此LED可以产生真正的RGB混合色。 这通常是脉冲宽度调制(PWM),而不是一个Arduino的问题,例如实现。 ATMega328有6个PWM通道,因此它可以驱动两个RGB LED。 但PICAXE08只有一个PWM通道,这样的任务似乎是不可能的。 我解决的问题,通过实施软件PWM的效果出奇的好,给PICAXE08性能有限。 这里是我的代码: #REM 简单的PICAXE08米基本程序,随机和独立控制 所有3种颜色在RGB LED的亮度 创造平静patterms(如在心情灯)。 详情请参阅我的博客http://andrey.mikhalchuk.com 你做任何你想要用此代码,只是提到我的博客http://andrey.mikhalchuk.com 的意见,使人们可以找到更新的代码。 谢谢! 这是我的第一个PICAXE方案,我道歉,如果这个代码不符合您的质量 期望和伤害你的感情有多好代码应该看起来像:) #endrem #PICAXE08米 setfreq M4 ;配置 象征速度= 3;值越小颜色变化速度越高 的象征SPEED_VARIATIONS = 7;定义应该使用多少个不同的颜色变化速度 ;地图上的标签 象征RED0_PIN = 0 象征GREEN0_PIN = 1 象征BLUE0_PIN = 2 ;地图引脚值,以MEM ;针值是目前的LED亮度 象征red0 = B0 象征green0 = B1 象征blue0 = B2 ;地图pin_deltas到Mem 三角洲是亮度变化的速度 象征red0_delta = B3 象征green0_delta = B4 象征blue0_delta = B5 ;子程序的温度值 象征delta_w = W3 象征TMP = B7 ;子程序参数 符号引脚= B8 符号值= B9 象征三角洲= B10 ;初始化一切 red0 = 0 green0 = 70 blue0 = 200 red0_delta = 1 green0_delta = 5 blue0_delta = 9 ,启动伺服模式 ;注意“servopos RED0_PIN,255”呈现LED熄灭!! ;的“servopos RED0_PIN,0”使得它真的暗淡,但点燃。 是,PICAXE错误,? 伺服RED0_PIN,255 伺服GREEN0_PIN,255 伺服BLUE0_PIN,255 这个代码是像循环(在阿尔杜伊诺) 主要有: ;模拟功能,减少环境中的函数调用 引脚= RED0_PIN:VAL = red0:三角洲= red0_delta:GOSUB set_color_val:red0 = VAL:red0_delta三角洲 引脚= GREEN0_PIN:VAL = green0:三角洲= green0_delta:GOSUB set_color_val:green0 = VAL:green0_delta三角洲 引脚= BLUE0_PIN:VAL = blue0:三角洲= blue0_delta:GOSUB set_color_val:blue0 = VAL:blue0_delta三角洲 转到主 本次调整亮度的LED和三角洲 set_color_val: 值= VAL +三角洲 如果三角洲<128和val <三角洲然后FWD 随机delta_w 三角洲=的三角洲%SPEED_VARIATIONS + 1个 三角洲= 255 - 三角洲 值= 255 ELSEIF三角洲> = 128和val> =三角洲然后反向 随机delta_w 三角洲=的三角洲%SPEED_VARIATIONS + 1个 值= 0 ENDIF TMP = VAL - 1; servopos错误的解决方法 ;啊,servopos只需要常数作为第一个参数:( 如果针= RED0_PIN然后 servopos RED0_PIN,TMP ELSEIF针= GREEN0_PIN然后 servopos GREEN0_PIN,TMP ELSEIF针= BLUE0_PIN然后 servopos BLUE0_PIN,TMP ENDIF 暂停速度 返回 YouTube上看到我的其他博客http://rtfms.com的和视频博客RTFMs的用于演示 ,这是覆盖在情节#7:微控制器会见珠宝 这段代码有几个注意事项: - 它实现了“RGB心情灯”。 随意更改您的需求 - PICAXE不断循环的时间,因为我怀疑是可怕的功耗。 它仍然是良好小时至少由两个微型电池电源时在RTFMs视频博客情节#7所示 - 性能的PICAXE08是马马虎虎。 正如你可以看到上RTFMs视频光略有波光粼粼。 你可能不会注意到,而在人的LED,但摄像头的效果明显。 事实上,情绪的灯,我什至喜欢它:) - 程序的大小是146字节(256 08)。 你也许可以优化一点。 - 关于这里提到的心情灯项目RTFMs视频稍后被释放 这篇文章发表在硬件 , 如何 , 其他 。 |