这样连接ardunio为什么数码管不显示,-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 349|回复: 2

[未解决] 这样连接ardunio为什么数码管不显示,

[复制链接]
发表于 2022-7-6 11:54 | 显示全部楼层 |阅读模式
这样连接ardunio为什么数码管不显示,用的是进口芯片的磁力计
 楼主| 发表于 2022-7-6 13:23 | 显示全部楼层
#include <Wire.h>
#include <HMC5883L.h>
#include "TM1637.h"   // Подключаем библиотеку для работы с модулем

#define CLK 3
#define DIO 2

TM1637 tm1637(CLK, DIO);

HMC5883L compass;

int vol[18];  //создаём массив на 19.

void setup()
{
   
  tm1637.init(); //Инициализация модуля
  tm1637.set(0); //Установка яркости горения сегментов от 0 до 7
  
  // Установка диапазона измерения
  // +/- 0.88 Ga: HMC5883L_RANGE_0_88GA
  // +/- 1.30 Ga: HMC5883L_RANGE_1_3GA (по умолчанию)
  // +/- 1.90 Ga: HMC5883L_RANGE_1_9GA
  // +/- 2.50 Ga: HMC5883L_RANGE_2_5GA
  // +/- 4.00 Ga: HMC5883L_RANGE_4GA
  // +/- 4.70 Ga: HMC5883L_RANGE_4_7GA
  // +/- 5.60 Ga: HMC5883L_RANGE_5_6GA
  // +/- 8.10 Ga: HMC5883L_RANGE_8_1GA
  compass.setRange(HMC5883L_RANGE_0_88GA);

  // Установка режима работы
  // Спящий режим: HMC5883L_IDLE
  // Единое измерение: HMC5883L_SINGLE
  // Непрерывное измерение: HMC5883L_CONTINOUS (по умолчанию)
  compass.setMeasurementMode(HMC5883L_CONTINOUS);

  // Установка частоты измерения
  //  0.75Hz: HMC5883L_DATARATE_0_75HZ
  //  1.50Hz: HMC5883L_DATARATE_1_5HZ
  //  3.00Hz: HMC5883L_DATARATE_3HZ
  //  7.50Hz: HMC5883L_DATARATE_7_50HZ
  // 15.00Hz: HMC5883L_DATARATE_15HZ (по умолчанию)
  // 30.00Hz: HMC5883L_DATARATE_30HZ
  // 75.00Hz: HMC5883L_DATARATE_75HZ
  compass.setDataRate(HMC5883L_DATARATE_30HZ);

  // Число усредненных выборок
  // 1 probka:  HMC5883L_SAMPLES_1 (по умолчанию)
  // 2 probki: HMC5883L_SAMPLES_2
  // 4 probki: HMC5883L_SAMPLES_4
  // 8 probki: HMC5883L_SAMPLES_8
  compass.setSamples(HMC5883L_SAMPLES_1);
  
    tm1637.display(0, "P");              // выводим raf
    tm1637.display(1, 10);
    tm1637.display(2, 15);
    delay(3000);
}

void loop()
{
label1:                     //метка начала программы
   
    for (int i = 0; i <= 14; i++) {
   
    Vector raw = compass.readRaw();  // Поучение необработанных значений
    vol[i] = (raw.XAxis);
    vol[15] = (raw.XAxis);
    delay(66);
    if ( vol[15] > 1900 || vol[15] < -950 )               // если значение больше 1900 или меньше 950
{   
    tm1637.display(0, 15);                  //выводим FUUL - полный
    tm1637.display(1, ">");
    tm1637.display(2, ">");
    tm1637.display(3, "8");
    delay(3000);
    goto label1;
}
    }
  
    vol[16] = (vol[0]+vol[1]+vol[2]+vol[3]+vol[4]+vol[5]+vol[6]+vol[7])/8;
    vol[17] = (vol[8]+vol[9]+vol[10]+vol[11]+vol[12]+vol[13]+vol[14])/7;
    vol[18] = max(vol[16],vol[17]);
   


    tm1637.display(vol[18]);

   
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 23:44 , Processed in 0.073267 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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