查看: 4106|回复: 7

pcDuino带动LED灯带

[复制链接]

该用户从未签到

发表于 2014-1-24 18:10:41 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 Cherish. 于 2014-1-24 18:13 编辑

在节日里面,人们总喜欢张灯结彩来庆祝一番。 这时候,自然少不了彩灯带了。 感谢LED技术的发展, 现在有了LED灯条。 高电流的LED灯条一般的单片机是不能直接驱动的,所以需要一个LED strip driver。 这里,我们来看看如何用pcDuino来驱动LED灯带。
实验元件:
pcDuino v2 实验套件
LED strip driver 一个
导线
12V/2A直流电源

灯带


接线图:

1.jpg

2.jpg

  • CLK –> pcDuino D2
  • DIN –> pcDuino D3
  • GND –> pcDuino GND
灯带的红线接+,黑线接B通道。
LED strip driver 在 DATA IN 这边接了12V/2A直流电源

输入代码
使用pcduino自带的Arduino IDE
  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,flag 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. }
复制代码
烧好程序后,如下图
3.jpg

4.jpg

LED Strip开始“呼吸”了,然后一直循环,输入ctrl+c则会退出循环。


回复

使用道具 举报

  • TA的每日心情
    开心
    2014-7-1 16:17
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-1-24 22:38:57 | 显示全部楼层
    沙发                                            
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-7-1 16:17
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-1-24 22:39:35 | 显示全部楼层
    支持支持                                       
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-7-1 16:17
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-1-24 22:40:43 | 显示全部楼层
                                              
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-4-25 10:29
  • 签到天数: 724 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-1-25 16:34:47 | 显示全部楼层
    LED灯带第一次看见,长知识啦!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-10-23 18:21
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-2-1 12:14:16 | 显示全部楼层
    好极了
      支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-4-9 11:17
  • 签到天数: 364 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-2-1 13:16:07 | 显示全部楼层
    给力 啊!!1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-2-8 08:53:28 | 显示全部楼层
    {:soso_e179:}{:soso_e179:}{:soso_e179:}必须赞
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 04:23 , Processed in 0.191873 second(s), 30 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.