GY-63_MS5611/libraries/HT16K33/examples/demo3/demo3.ino
2020-07-16 11:08:25 +02:00

150 lines
2.3 KiB
C++

//
// FILE: 4x7segmentI2C.ino
// AUTHOR: Rob Tillaart
// VERSION: 0.0.2
// PURPOSE: demo 3
// URL: http://www.adafruit.com/products/1002
// URL: https://github.com/RobTillaart/HT16K33
#include "HT16K33.h"
HT16K33 seg(0x70);
uint32_t start;
uint32_t stop;
uint8_t ar[4];
void setup()
{
Serial.begin(115200);
Serial.println(__FILE__);
seg.begin();
Wire.setClock(100000);
seg.displayOn();
seg.suppressLeadingZeroPlaces(0);
Serial.println("displayTest()");
seg.displayTest(10);
seg.displayOff();
delay(1000);
seg.displayOn();
seg.displayColon(false);
}
void loop()
{
// comment tests you do not want to see
test_elsa();
delay(100);
test_random();
delay(100);
test_VULeft();
delay(100);
test_VURight();
delay(100);
test_VUStereo();
delay(100);
}
void test_elsa()
{
ar[0] = 0x79;
ar[1] = 0x38;
ar[2] = 0x6D;
ar[3] = 0x77;
seg.displayRaw(ar);
}
void test_random()
{
for (uint8_t i = 0; i < 4; i++)
{
ar[i] = random(256);
}
seg.displayRaw(ar);
}
void test_VULeft()
{
int val = analogRead(A0);
val = val / 120; // 0..8
seg.displayVULeft(val);
}
void test_VURight()
{
int val = analogRead(A0);
val = val / 120; // 0..8
seg.displayVURight(val);
}
void test_VUStereo()
{
uint8_t left = analogRead(A0) / 240; // 0..4
uint8_t right = analogRead(A1) / 240; // 0..4
displayVUStereo(left, right);
}
void displayVUStereo(uint8_t left, uint8_t right)
{
switch (left)
{
case 0:
ar[0] = 0x00;
ar[1] = 0x00;
break;
case 1:
ar[0] = 0x00;
ar[1] = 0x06;
break;
case 2:
ar[0] = 0x00;
ar[1] = 0x36;
break;
case 3:
ar[0] = 0x06;
ar[1] = 0x36;
break;
case 4:
default:
ar[0] = 0x36;
ar[1] = 0x36;
break;
}
switch (right)
{
case 0:
ar[2] = 0x00;
ar[3] = 0x00;
break;
case 1:
ar[2] = 0x30;
ar[3] = 0x00;
break;
case 2:
ar[2] = 0x36;
ar[3] = 0x00;
break;
case 3:
ar[2] = 0x36;
ar[3] = 0x30;
break;
case 4:
default:
ar[2] = 0x36;
ar[3] = 0x36;
break;
}
seg.displayRaw(ar);
// sort of heartbeat
static bool t = false;
seg.displayColon(t);
t = !t;
}
// -- END OF FILE --