読者です 読者をやめる 読者になる 読者になる

日々の記録

学習時の備忘録や思いついた事をダラダラ記載

TM1637Displayモジュールを試してみた

埃センサー(GP2Y1010AU)の出力先として、「TM1637Displayモジュール」を試してみた。 

 

GROVE - 7セグメント4桁ディスプレイ

GROVE - 7セグメント4桁ディスプレイ

 

  

回路図

f:id:gdb3288:20160815084804j:plain

 

スケッチ

/* GP2Y1010AU Setting */
int measurePin = 0;
int ledPower = 2; //Connect 3 led driver pins of dust sensor to Arduino D2

const int TBLNUM = 50;

int DustTBL[TBLNUM];
int cnt;

int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
int delayTime = 1000;

float sensorVal = 0;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
float dustDensitySum = 0;

bool AveOK = false;

/* TM1637Display Setting */
#include <TM1637Display.h>

const int CLK = 10; //Set the CLK pin connection to the display
const int DIO = 8; //Set the DIO pin connection to the display

TM1637Display display(CLK, DIO); //set up the 4-Digit Display.

void setup()
{
Serial.begin(9600);
pinMode(ledPower, OUTPUT);
display.setBrightness(0x0a); //set the diplay to maximum brightness
}

void loop()
{
int i;

dustDensitySum = 0;

for (i = 0; i < 10; i++)
{
digitalWrite(ledPower, LOW);
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin);
delayMicroseconds(deltaTime);
digitalWrite(ledPower, HIGH);
delayMicroseconds(sleepTime);

calcVoltage = voMeasured * (5.0 / 1024.0);

dustDensity = 0.17 * calcVoltage - 0.1;
dustDensity = dustDensity * 1000; // mgからugに変換

if (dustDensity < 0)
{
dustDensity = 0;
}

dustDensitySum = dustDensitySum + dustDensity;
}

dustDensitySum = dustDensitySum / 10;

int DustInt = (int)dustDensitySum;

if (DustInt < 0)
{
DustInt = 0;
}

if (cnt >= TBLNUM)
{
AveOK = true; // 全ての配列が埋まったので、移動平均値が算出可
cnt = 0;
}

DustTBL[cnt] = DustInt;
cnt++;

int DustSum = 0, DustAve;

for (i = 0; i < TBLNUM; i++)
{
DustSum += DustTBL[i];
}

DustAve = DustSum / TBLNUM; // 移動平均値を算出

if (AveOK)
{
display.showNumberDec(DustAve);
}
else
{
display.showNumberDec(-1);
}

delay(1000);
}

 

f:id:gdb3288:20160815091642j:plain

f:id:gdb3288:20160815091649j:plain

 

TM1637Displayモジュール」は、4ピンの接続のみで4桁7セグLEDが簡単に制御出来るので、非常に便利。

  

 

Arduinoをはじめよう 第3版 (Make:PROJECTS)

Arduinoをはじめよう 第3版 (Make:PROJECTS)