狗趴(GodPub),开源硬件学习与实践

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6527|回复: 0
打印 上一主题 下一主题

【JoyTag香蕉派学习】Banana Pi 1602 LCD 模块RGB LED的使用

[复制链接]

84

主题

143

帖子

725

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
725
QQ
跳转到指定楼层
楼主
发表于 2015-1-27 23:21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
话说老邓的模块上还带一枚RGB三色LED
论坛上小伙伴已经点亮之,看了一下,有些迷糊。
http://www.52pi.net/forum.php?mod=viewthread&tid=1382

不过咱有咱的笨方法:
首先找到哪个IO控制小灯
  1.     #include <stdio.h>
  2.     #include <wiringPi.h>
  3.     #include <mcp23017.h>

  4.     #define EXTEND_BASE 100

  5.     int main (void)
  6.     {
  7.         wiringPiSetup( );
  8.         mcp23017Setup( EXTEND_BASE, 0x20 );

  9.         int i;
  10.         for ( i = 0 ; i < 16 ; i++ )
  11.         {
  12.             pinMode( EXTEND_BASE + i, OUTPUT );
  13.         }

  14.         for (;;)
  15.         {
  16.             for( i = 0 ; i < 16; i++)
  17.             {
  18.                 printf("%d\n", i);
  19.                 digitalWrite ( EXTEND_BASE + i, HIGH);
  20.                 delay (1000);
  21.                 digitalWrite ( EXTEND_BASE + i, LOW);
  22.                 delay (1000);
  23.             }
  24.         }
  25.         return 0 ;
  26.     }
复制代码
代码很简单,我依次给每个IO高电平,然后打印当前IO值,就知道小灯和IO的对应关系了。
通过观察,得出对应关系如下:
13 绿
14 红
15 蓝

然后,控制点灯是不是就很简单了?
下边一个简单的代码,同时控制RGB亮灭来调色(算黑色熄灭在内,8色)
  1.     #include <stdio.h>
  2.     #include <wiringPi.h>
  3.     #include <mcp23017.h>


  4.     #define EXTEND_BASE 100

  5.     int main (void)
  6.     {

  7.         wiringPiSetup( );
  8.         mcp23017Setup( EXTEND_BASE, 0x20 );

  9.         int i;
  10.         for ( i = 0 ; i < 16 ; i++ )
  11.         {
  12.             pinMode( EXTEND_BASE + i, OUTPUT );
  13.         }

  14.         for (;;)
  15.         {
  16.             for( i = 0 ; i < 8; i++)
  17.             {

  18.                 if(i&0b00000001)
  19.                         digitalWrite ( EXTEND_BASE + 15, HIGH);
  20.                 if(i&0b00000010)
  21.                         digitalWrite ( EXTEND_BASE + 13, HIGH);
  22.                 if(i&0b00000100)
  23.                         digitalWrite ( EXTEND_BASE + 14, HIGH);

  24.                 delay(2000);
  25.                 digitalWrite ( EXTEND_BASE + 13, LOW);
  26.                 digitalWrite ( EXTEND_BASE + 14, LOW);
  27.                 digitalWrite ( EXTEND_BASE + 15, LOW);

  28.             }
  29.         }
  30.     }
复制代码

好了,小灯会依次按如下顺序闪亮:
黑(灭),蓝,绿,青,红,粉,黄,白

顺便提醒一句,亮瞎双眼啊。
我这篇文章全是盲打的。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
天理路上甚宽,稍游心,胸中便觉广大宏朗;
人欲路上甚窄,才寄迹,眼前俱是荆棘泥涂。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|狗趴(GodPub) Arduino&Raspberry Pi开源硬件学习与实践[QQ群:20085629]  

GMT+8, 2024-4-28 18:52 , Processed in 0.035801 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表