completely rewrite the driver.

using one class to descripe two kinds of display.
add two displays used simultaneously example.
use : setTubeType() to select which type of display is going to be used.
add : add comment ,modify configuration files.
This commit is contained in:
downeyboy
2019-07-03 14:21:35 +08:00
parent 9f486dc735
commit 76fc3bab28
13 changed files with 394 additions and 571 deletions

View File

@@ -0,0 +1,51 @@
#include <Wire.h>
#include "grove_alphanumeric_display.h"
Seeee_Digital_Tube tube1;
Seeee_Digital_Tube tube2;
/**
* NOTICE:Every tubes display has the same default i2c address.
* if you want to combine two(or more)display in one project,you should change the i2c
* i2c address,by soldering the pad of display backside.
* please refer to our wiki to get more details.
* */
#define I2C_ADDR_AFTER_CHANGE_FOUR 0x75
#define I2C_ADDR_DEFAULT_FOUR 0x71
void setup()
{
Wire.begin();
// If using four digital tubes, use this configuration.
tube1.setTubeType(TYPE_4,I2C_ADDR_AFTER_CHANGE_FOUR);
tube1.setBrightness(15);
tube1.setBlinkRate(BLINK_OFF);
// If using four digital tubes, use this configuration.
tube2.setTubeType(TYPE_4,I2C_ADDR_DEFAULT_FOUR);
tube2.setBrightness(15);
tube2.setBlinkRate(BLINK_OFF);
}
void loop()
{
tube1.displayNum(1234);
delay(100);
tube2.displayNum(5678);
delay(100);
while(1);
}

View File

@@ -30,48 +30,39 @@
*/
#include <Wire.h>
#include "grove_alphanumeric_display.h"
//#define DUAL_NUMERIC
#ifdef DUAL_NUMERIC
#include "grove_dual_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x70
Digital_Tube2 tube;
#else
#include "grove_quad_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x71
Digital_Tube4 tube;
#endif
Seeee_Digital_Tube tube;
void setup()
{
Wire.begin();
tube.init(NUMERIC_I2C_ADDR);
// If using four digital tubes, use this configuration.
tube.setTubeType(TYPE_4,TYPE_4_DEFAULT_I2C_ADDR);
// If using two digital tubes, use this configuration.
// tube.setTubeType(TYPE_2,TYPE_2_DEFAULT_I2C_ADDR);
tube.setBrightness(15);
tube.setBlinkRate(BLINK_OFF);
}
void loop()
{
#ifdef DUAL_NUMERIC
tube.display_two_tube('.','C');
delay(1000);
tube.displayNum(23,0);
delay(1000);
tube.displayString("AB",0);
delay(1000);
#else
tube.displayNum(123);
delay(2000);
tube.displayNum(4567);
delay(2000);
tube.displayString("ABCD");
delay(2000);
tube.displayString("abcd");
tube.displayNum(12);
delay(2000);
#endif
tube.displayNum(4567,500);
delay(2000);
tube.displayString("AB",500);
delay(2000);
tube.displayString("abcd",500);
delay(2000);
}

View File

@@ -34,19 +34,26 @@
/*********************************************************/
/*****NOTICE : This example only for qual_alphanumeric****/
/*********************************************************/
#include "grove_quad_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x71
#include "grove_alphanumeric_display.h"
Digital_Tube4 tube;
Seeee_Digital_Tube tube;
void setup()
{
Wire.begin();
tube.init(NUMERIC_I2C_ADDR);
// If using two digital tubes, use this configuration.
// tube.setTubeType(TYPE_2,TYPE_2_DEFAULT_I2C_ADDR);
// If using four digital tubes, use this configuration.
tube.setTubeType(TYPE_4,TYPE_4_DEFAULT_I2C_ADDR);
tube.setBrightness(15);
tube.setBlinkRate(BLINK_1HZ);
}
@@ -55,9 +62,15 @@ void displayCustom()
tube.clearBuf();
tube.setTubeSingleChar(FIRST_TUBE,'t');
tube.setTubeSingleChar(SECOND_TUBE,'T');
//if using two digital tubes,there's no third&fourth channel.
tube.setTubeSingleNum(THIRD_TUBE,5);
tube.setTubeSingleNum(FOURTH_TUBE,5);
tube.setPoint(true,true);
// The location of point is different between two&four digital tubes.
tube.setPoint(true,false);
tube.display();
}

View File

@@ -29,24 +29,23 @@
* THE SOFTWARE.
*/
#include <Wire.h>
#include "grove_alphanumeric_display.h"
//#define DUAL_NUMERIC
#ifdef DUAL_NUMERIC
#include "grove_dual_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x70
Digital_Tube2 tube;
#else
#include "grove_quad_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x71
Digital_Tube4 tube;
#endif
Seeee_Digital_Tube tube;
void setup()
{
Wire.begin();
tube.init(NUMERIC_I2C_ADDR);
// If using two digital tubes, use this configuration.
// tube.setTubeType(TYPE_2,TYPE_2_DEFAULT_I2C_ADDR);
// If using four digital tubes, use this configuration.
tube.setTubeType(TYPE_4,TYPE_4_DEFAULT_I2C_ADDR);
tube.setBrightness(15);
tube.setBlinkRate(BLINK_OFF);
}

View File

@@ -29,24 +29,22 @@
* THE SOFTWARE.
*/
#include <Wire.h>
#include "grove_alphanumeric_display.h"
//#define DUAL_NUMERIC
Seeee_Digital_Tube tube;
#ifdef DUAL_NUMERIC
#include "grove_dual_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x70
Digital_Tube2 tube;
#else
#include "grove_quad_alphanumeric_display.h"
#define NUMERIC_I2C_ADDR 0x71
Digital_Tube4 tube;
#endif
void setup()
{
Wire.begin();
tube.init(NUMERIC_I2C_ADDR);
// If using two digital tubes, use this configuration.
// tube.setTubeType(TYPE_2,TYPE_2_DEFAULT_I2C_ADDR);
// If using four digital tubes, use this configuration.
tube.setTubeType(TYPE_4,TYPE_4_DEFAULT_I2C_ADDR);
tube.setBrightness(15);
tube.setBlinkRate(BLINK_OFF);
}
@@ -55,6 +53,6 @@ void setup()
void loop()
{
tube.displayString("ABCDEFGHJIYZ",500);
tube.displayString("ABCDEFGHIJK",500);
delay(1000);
}

View File

@@ -29,21 +29,23 @@
* THE SOFTWARE.
*/
#include <Wire.h>
#include "grove_dual_alphanumeric_display.h"
#include "grove_alphanumeric_display.h"
/*********************************************************/
/*****NOTICE : This example only for dual_alphanumeric****/
/*********************************************************/
#define NUMERIC_I2C_ADDR 0x70
Seeee_Digital_Tube tube;
Digital_Tube2 tube;
char hex_str[255] = {0};
char hex_str[10];
void setup()
{
Wire.begin();
tube.init(NUMERIC_I2C_ADDR);
// If using two digital tubes, use this configuration.
// tube.setTubeType(TYPE_2,TYPE_2_DEFAULT_I2C_ADDR);
// If using four digital tubes, use this configuration.
tube.setTubeType(TYPE_4,TYPE_4_DEFAULT_I2C_ADDR);
tube.setBrightness(15);
tube.setBlinkRate(BLINK_OFF);
@@ -79,6 +81,6 @@ void loop()
for(int i=0;i<0xff;i++)
{
tube.displayString(numToHexString(i),0);
delay(300);
delay(100);
}
}