查看: 4132|回复: 4

pcDuino运行LED strip driver

[复制链接]
  • TA的每日心情
    郁闷
    2013-6-3 09:22
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-5-13 09:30:09 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 pcduino 于 2013-5-13 10:21 编辑

    想在室内营造一点小氛围否,话说工程师工作繁忙也得自己造些情调不是。这我是在pcDuino上做的,接一个灯带驱动模块LED strip driver,链接文章里用的Arduino,附有程序代码,在pcDuino上点亮的话程序代码我也会附上的。为了使效果更好,LED灯带我设计的是呼吸灯哦!

    LED strip driver模块
    图片1.jpg


    LED灯带(5m
    图片2.jpg
    接线很简单,LED strip driver这里接了12V直流电源
    CLK --> pcDuino D2
    DIN --> pcDuino D3
    GND --> pcDuino GND
    图片3.jpg
    打开ubuntu编译运行程序代码
    图片4.jpg
    点亮后的5m灯带效果,这里是拍出来的照片灯带亮度逐渐变化的效果看不很明显,但是它是会“呼吸”的

    图片5.jpg

    图片6.jpg

    程序代码:
    1. #include "core.h"
    2. #define uint8_t unsigned char
    3. #define uint32_t unsigned long

    4. uint8_t Clkpin;
    5. uint8_t Datapin;

    6. void RGBdriver(uint8_t Clk, uint8_t Data)
    7. {
    8. Clkpin = Clk;
    9. Datapin = Data;
    10. pinMode(Datapin, OUTPUT);
    11. pinMode(Clkpin, OUTPUT);
    12. }

    13. void ClkRise(void)
    14. {
    15. digitalWrite(Clkpin, LOW);
    16. delayMicroseconds(1);
    17. digitalWrite(Clkpin, HIGH);
    18. delayMicroseconds(1);
    19. }

    20. void Send32Zero(void)
    21. {
    22. unsigned char i;

    23. for (i=0; i<32; i++)
    24. {
    25. digitalWrite(Datapin, LOW);
    26. ClkRise();
    27. }
    28. }

    29. void begin(void)
    30. {
    31. Send32Zero();
    32. }

    33. void end(void)
    34. {
    35. Send32Zero();
    36. }

    37. uint8_t TakeAntiCode(uint8_t dat)
    38. {
    39. uint8_t tmp = 0;

    40. if ((dat & 0x80) == 0)
    41. {
    42. tmp |= 0x02;
    43. }

    44. if ((dat & 0x40) == 0)
    45. {
    46. tmp |= 0x01;
    47. }

    48. return tmp;
    49. }

    50. // gray data
    51. void DatSend(uint32_t dx)
    52. {
    53. uint8_t i;

    54. for (i=0; i<32; i++)
    55. {
    56. if ((dx & 0x80000000) != 0)
    57. {
    58. digitalWrite(Datapin, HIGH);
    59. }
    60. else
    61. {
    62. digitalWrite(Datapin, LOW);
    63. }
    64. dx <<= 1;
    65. ClkRise();
    66. }
    67. }

    68. // Set color
    69. void SetColor(uint8_t Red,uint8_t Green,uint8_t Blue)
    70. {
    71. uint32_t dx = 0;

    72. dx |= (uint32_t)0x03 << 30; // highest two bits 1锛宖lag bits
    73. dx |= (uint32_t)TakeAntiCode(Blue) << 28;
    74. dx |= (uint32_t)TakeAntiCode(Green) << 26;
    75. dx |= (uint32_t)TakeAntiCode(Red) << 24;

    76. dx |= (uint32_t)Blue << 16;
    77. dx |= (uint32_t)Green << 8;
    78. dx |= Red;

    79. DatSend(dx);
    80. }

    81. void setup()
    82. {
    83. RGBdriver(2,3);
    84. }

    85. void loop()
    86. {
    87. unsigned int i;
    88. while(1)
    89. {
    90. for(i = 0;i < 256;i ++)
    91. {
    92. begin(); // begin
    93. SetColor(0,0,i); //Blue. First node data. SetColor(R,G,B)
    94. end();
    95. //delay(1);
    96. }

    97. for(i = 255;i > 0;i --)
    98. {
    99. begin(); // begin
    100. SetColor(0,0,i); //Blue. first node data
    101. end();
    102. //delay(1);
    103. }
    104. }
    105. }
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-5-13 09:37:57 | 显示全部楼层
    学习了。我知道接线是很简单的,可是接完了,脑子就大了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2013-6-3 09:22
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

     楼主| 发表于 2013-5-13 10:25:15 | 显示全部楼层
    XM明 发表于 2013-5-13 09:37
    学习了。我知道接线是很简单的,可是接完了,脑子就大了

    好吧 我附上LED strip driver的引脚示意图
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-5-14 09:20:49 | 显示全部楼层
    pcduino 发表于 2013-5-13 10:25
    好吧 我附上LED strip driver的引脚示意图

    呵呵  谢谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020-9-10 08:39
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-5-17 00:52:43 | 显示全部楼层
    套件就是强大啊!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 14:45 , Processed in 0.164735 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.