查看: 270|回复: 1

[项目] 7段RGB三色LED数码管数字屏-首创开源@青年创造工坊

[复制链接]

该用户从未签到

发表于 2019-8-14 00:01 | 显示全部楼层 |阅读模式
项目名称:
        7段RGB三色LED数码管数字屏-首创开源@青年创造工坊
                                                demo00.jpg
项目简介:
       以往的7段式数码管数字屏只有单色显示,难以显示不同状态的计数显示,现在用7颗LED方型255组成新的7段式RGB数码管,除了显示数字外,数码管的不同颜色和混色方式也可以直接反应当前的运行状态。

      引脚:10pin,间距:1.27mm,电压:3.3v-5v,阴极:r(红),g(绿),b(蓝)


图示:
         7-rgb1.png     7-rgb.png     7-rgb2.png


PCB信息:
             TIM截图20190813224916.jpg TIM截图20190813231815.jpg     背面                                              TIM截图20190813225202.jpg TIM截图20190813231759.jpg           正面


官方示例:
                  操控定时运动执行 - 副本_WPS图片.jpg

kittenblock中小学创客名师推荐的图形化编程软件

#define C1 262 
#define C2 294 
#define C3 330 
#define C4 350 
#define C5 393 
#define C6 441 
#define C7 495
int num = 0;
const int clkPin = 17; //CLK引脚17
const int dtPin = 15; //DT引脚连接到引脚15
const int swPin = 16; //SW引脚连接到引脚16
int n[10][7]=
  { {1,1,1,1,1,1,0},//0
    {1,1,0,0,0,0,0},//1
    {1,0,1,1,0,1,1},//2
    {1,1,1,0,0,1,1},//3
    {1,1,0,0,1,0,1},//4
    {0,1,1,0,1,1,1},//5
    {0,1,1,1,1,1,1},//6
    {1,1,0,0,0,1,0},//7
    {1,1,1,1,1,1,1},//8
    {1,1,1,0,1,1,1}//9
    };
void setup() 
{ 
int buzzer=10; //蜂鸣器引脚10
for(int i=2;i<=10;i++)//数字led占用引脚
{ pinMode(i,OUTPUT);}//定义输出
  pinMode(clkPin, INPUT);
  pinMode(dtPin, INPUT);
  pinMode(swPin, INPUT);
  digitalWrite(swPin, HIGH);
  Serial.begin(9600); 
}
void loop() {
 /* for(int i=0;i<=9;i++)
   {  for(int j=2;j<9;j++)
      digitalWrite(j,n[j-2]);
      digitalWrite(9,LOW);
      delay(2000);   }//测试*/
  int change = getEncoderTurn();
  num = num + change;
  //Serial.println(encoderVal);    //串口显示
  num = abs(num % 10);//只取个位信息
   for(int j=2;j<9;j++)
      digitalWrite(j,n[num][j-2]); digitalWrite(9,LOW);
   if (!digitalRead(swPin) && num != 0) //读取到按钮按下并且计数值不为0时把计数器清零
      { toon(); Serial.println("start");  }  
 /*switch (num) 
  { case 0:       Serial.println("0");      break;
    case 1:       Serial.println("1");      break;
    case 2:       Serial.println("2");      break;
    case 3:       Serial.println("3");      break;
    case 4:       Serial.println("4");      break;
    case 5:       Serial.println("5");      break;
    case 6:       Serial.println("6");      break;
    case 7:       Serial.println("7");      break;
    case 8:       Serial.println("8");      break;
    case 9:       Serial.println("9");      break;}
  delay(1);*/
 } 
int ton()      ////提示音
 {tone(10,C7);delay(100);noTone(10); }
int toon()      ////提示音
 {tone(10,C7);delay(100);tone(10,C1);delay(100);tone(10,C3);delay(100);noTone(10); }
int getEncoderTurn(void)   ////数字编码器部分
{ static int oldA = HIGH; 
  static int oldB = HIGH;
  int result = 0;
  int newA = digitalRead(clkPin);//读取旋转编码器的值
  int newB = digitalRead(dtPin);//读取旋转编码器的值
  if (newA != oldA || newB != oldB) //如果发生改变
  {  if (oldA == HIGH && newA == LOW)
    {  result = (oldB * 2 - 1);ton(); }    }
  oldA = newA;   oldB = newB;
  return result;
}

该用户从未签到

 楼主| 发表于 2019-8-15 00:15 | 显示全部楼层
PCB下载: 7段Gerber_up-down_20190725163451.zip (44.79 KB, 下载次数: 0)
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

Arduino lcd屏幕亮了但是不显示字符
Arduino lcd屏幕亮了但是
Arduino的lcd屏亮了但是上面没有字符显示,串进去的滑动变阻器也旋过了,但是还是没有
【原创】全球最小口袋3D打印机mini one直播教程贴
【原创】全球最小口袋3D打
最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
【Arduino】108种传感器模块系列实验(98)---L298N电机驱动板
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
两个ESP8266通过云端实现远程数据交互
两个ESP8266通过云端实现
原理简述:利用发布订阅模式。一个ESP8266作为消息发布者,另一个ESP8266作为消息订阅
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
快速回复 返回顶部 返回列表