arduinoで7セグメントLED その2
2490 ワード
オークションで、手に入れた、QYF-TM1638をarduino unoにつないで見ました。
写真
回路図
サンプルコード
#include <TM1638.h>
#include <TM1638QYF.h>
TM1638QYF module(3, 2, 5);
word mode;
unsigned long startTime;
void update(TM1638QYF * module, word * mode)
{
word buttons = module->getButtons();
unsigned long runningSecs = (millis() - startTime) / 1000;
if (buttons != 0)
{
* mode = buttons >> 1;
if (* mode < 128)
{
module->clearDisplay();
delay(100);
}
}
switch (* mode)
{
case 0:
module->setDisplayToDecNumber(runningSecs, 1 << 6);
break;
case 1:
module->setDisplayToDecNumber(runningSecs, 1 << 5, false);
break;
case 2:
module->setDisplayToHexNumber(runningSecs, 1 << 4);
break;
case 4:
module->setDisplayToHexNumber(runningSecs, 1 << 3, false);
break;
case 8:
module->setDisplayToBinNumber(runningSecs, 1 << 2);
break;
case 16:
char s[9];
sprintf(s, "Secs %03d", runningSecs % 999);
module->setDisplayToString(s, 1 << 1);
break;
case 32:
if (runningSecs % 2 == 0)
{
module->setDisplayToString("TM1638QY", 1);
}
else
{
module->setDisplayToString(String("LIBRARY "), 1);
}
break;
case 64:
module->setDisplayToError();
break;
case 128:
module->setDisplayToDecNumber(* mode, 0);
break;
case 256:
module->setDisplayToString("ABCDE", 1 << (runningSecs % 8));
break;
default:
module->setDisplayToBinNumber(buttons & 0xF, buttons >> 8);
}
}
void setup()
{
startTime = millis();
module.setupDisplay(true, 7);
mode = 0;
}
void loop()
{
update(&module, &mode);
}
Author And Source
この問題について(arduinoで7セグメントLED その2), 我々は、より多くの情報をここで見つけました https://qiita.com/ohisama@github/items/76b37e9ad0a568ac942d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .