#include <TM1637.h>
#include "TM1637Display.h"
#include <Arduino.h>
int CLK = 2;
int DIO = 3;
TM1637Display display(CLK,DIO);
const uint8_t line_to_print[] = {B00000000, B01100111, B00111110,
B01111001, B00111110, B01111001,
B00000000, B01110001, B00111110,
B00111000, B00111000};
void task1()
{
int _delay = 100;
int step = 1;
int len = 0;
bool sign;
for(int i = -100; i <= 100; i+=step)
{
sign = i < 0 ? true: false;
int abs_i = abs(i);
if (abs_i == 100)
len = 3;
else if ( abs_i < 100 && abs_i > 9)
len = 2;
else if ( abs_i < 10 && abs_i >= 0)
len = 1;
len += sign;
display.showNumberDec(i, false, len, 0);
delay(_delay);
display.clear();
}
}
void task2()
{
int _delay = 500;
int whole, decimal, temp;
float step = 0.25;
bool sign;
uint8_t minus[] = {0b01000000};
for(float i = -3; i <= 3; i+=step)
{
sign = i < 0 ? true: false;
temp = abs(i) * 100;
whole = temp / 100;
decimal = temp % 100;
if(sign)
display.setSegments(minus, 1, 0);
display.showNumberDec(whole, false, 1, 1);
display.showNumberDecEx(decimal, 0b01000000, true, 2, 2);
delay(_delay);
display.clear();
}
}
void task3(uint8_t * str, size_t size)
{
int _delay = 800;
int i = 0;
while(true)
{
display.setSegments(&str[i], 1, 0);
display.setSegments(&str[(i + 1) % size], 1, 1);
display.setSegments(&str[(i + 2) % size], 1, 2);
display.setSegments(&str[(i + 3) % size], 1, 3);
i = ( i + 1 ) % size;
delay(_delay);
}
}
void setup() {
display.setBrightness(0xff);
//task1();
task2();
//task3(line_to_print, 11);
}
void loop() {
}