用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏
  • TA的每日心情
    开心
    2017-7-3 13:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    PUA 注册会员 2018-3-12 22:16 楼主
    本帖最后由 PUA 于 2018-3-12 22:20 编辑

    我想用Arduino,GPS,max7219制作一个车用HUD显示,但有个问题解决不了。

    无法实时调整MAX7219亮度,有没有大神指导一下,谢谢!

    还是MAX7219只能开机调整1次?


    #include <LedControl.h>
    byte algarism[11][5] = {B0111110, B1000001, B1000001, B1000001, B0111110, // 0
                            B0000000, B0000001, B1111111, B0100001, B0000000, // 1
                            B0110001, B1001001, B1000101, B1000011, B0100001, // 2
                            B0110110, B1001001, B1001001, B1000001, B0100010, // 3
                            B0000100, B1111111, B0100100, B0010100, B0001100, // 4
                            B1001110, B1010001, B1010001, B1010001, B1110010, // 5
                            B0100110, B1001001, B1001001, B1001001, B0111110, // 6
                            B1100000, B1010000, B1001111, B1000000, B1000000, // 7
                            B0110110, B1001001, B1001001, B1001001, B0110110, // 8
                            B0111110, B1001001, B1001001, B1001001, B0110010, // 9
                            B0000000, B0000000, B0000000, B0000000, B0000000
                           };//空
    LedControl mx = LedControl(5, 7, 6, 2); //DIN、CLK、CS、数量
    int val = 0;
    int i = 0;
    int y = 0;
    void mxConfig(void) {
      int devices = mx.getDeviceCount(); //查询连接MAX7219设备数量
      for (int matrix = 0; matrix < devices; matrix++) {
        mx.shutdown(matrix, false);      
        mx.setIntensity(matrix, y);         //设置MAX7219亮度
        mx.clearDisplay(matrix);            //清屏MAX7219
      }
    }
    void writeNumber(byte pos, byte number) {
      switch (pos) {
        case 1:
          mx.setColumn(1, 0, algarism[number][0]);
          mx.setColumn(1, 1, algarism[number][1]);
          mx.setColumn(1, 2, algarism[number][2]);
          mx.setColumn(1, 3, algarism[number][3]);
          mx.setColumn(1, 4, algarism[number][4]);
          break;
        case 2:
          mx.setColumn(1, 6, algarism[number][0]);
          mx.setColumn(1, 7, algarism[number][1]);
          mx.setColumn(0, 0, algarism[number][2]);
          mx.setColumn(0, 1, algarism[number][3]);
          mx.setColumn(0, 2, algarism[number][4]);
          break;
        case 3:
          mx.setColumn(0, 5, algarism[number][1]);
          mx.setColumn(0, 6, algarism[number][2]);
          mx.setColumn(0, 7, algarism[number][3]);
          break;
      }
    }
    void displayTemp(void) {
      //int i = random(0, 200);
      writeNumber(1, (i % 10));
      if ( i / 100 % 10 == 0 && i / 10 % 10 == 0) {
        writeNumber(2, 10);
      }
      else
      {
        writeNumber(2, (i / 10 % 10));
      }
      if (i / 100 % 10 == 1) {
        writeNumber(3, (i / 100 % 10));
      }
      else
      {
        writeNumber(3, 10);
      }
    }
    void setup() {
      Serial.begin(9600);
      mxConfig();
    }
    void loop() {
      displayTemp();
      val = analogRead(A0);
      i = map(val, 0, 1023, 0, 199);
      y = map(val, 0, 1023, 0, 15);
      Serial.println(val, DEC);
      delay(100);
    }

    回帖奖励 +5 金币

    虽然我不知道,但我要为了金币而奋斗

    回帖奖励 +5 金币

    直接调用  setIntensity  不行吗?
    本帖最后由 PUA 于 2018-3-13 21:38 编辑
    xvipservice 发表于 2018-3-13 15:35
    直接调用  setIntensity  不行吗?

    试过了不行,亮度没有变化!开机什么亮度一直是什么亮度,中途修改亮度无效!
    z2010012286 发表于 2018-3-13 14:26
    虽然我不知道,但我要为了金币而奋斗

    这样不好吧?

    回帖奖励 +5 金币

    m.setIntensity(8);  // 設定亮度
    用這一個指令
    括號中的數字越小亮度越暗
    抱歉我是繁體字
    易智洋 发表于 2018-3-14 20:32
    m.setIntensity(8);  // 設定亮度
    用這一個指令
    括號中的數字越小亮度越暗

    运行中更改亮度不会变化呀!我是想亮度实时变化
    发新帖
    发表评论
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  
    关闭

    推荐主题 上一条 /2 下一条