/* ... www.nyebarilmu.com ... */
#include <TM1637Display.h>
#include <Arduino.h>
//waktu tunda yang digunakan 3 detik
#define TEST_DELAY 3000
//Pin yang digunakan
#define CLK 2
#define DIO 3
//format inisialisasi pin
TM1637Display display(CLK, DIO);
//fungsi untuk pemanggilan tulisan "sip"
const uint8_t SEG_sip[] = {
SEG_A | SEG_F | SEG_G | SEG_C | SEG_D, // s
SEG_F | SEG_E, // i
SEG_B | SEG_A | SEG_F | SEG_G | SEG_E // p
};
void fungsi_utama(){
int h;
//data untuk menghidupkan led
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
// pemanggilan nilai "data" menghidupkan semua led 7segment
display.setSegments(data);
delay(TEST_DELAY);
// Selectively set different digits
data[0] = 0b01001001;
data[1] = display.encodeDigit(1);
data[2] = display.encodeDigit(2);
data[3] = display.encodeDigit(3);
for(h = 3; h >= 0; h--) {
display.setSegments(data, 1, h); //format perubahan data led 1
delay(TEST_DELAY);
}
display.setSegments(data+2, 2, 2);
delay(TEST_DELAY);
display.setSegments(data+2, 2, 1);
delay(TEST_DELAY);
display.setSegments(data+1, 3, 1);
delay(TEST_DELAY);
// mendisplay nilai desimal dengan maupun tanpa leading zeros
bool lz = false;
for (uint8_t z = 0; z < 2; z++) {
for(k = 0; k < 10000; k += k*4 + 7) {
display.showNumberDec(k, lz);
delay(TEST_DELAY);
}
lz = true;
}
// Tampilkan angka desimal yang panjangnya lebih kecil dari 4
for(k = 0; k < 4; k++)
data[k] = 0;
display.setSegments(data);
// Jalankan melalui semua dot
for(k=0; k <= 4; k++) {
display.showNumberDecEx(0, (0x80 >> k), true);
delay(TEST_DELAY);
}
display.showNumberDec(153, false, 3, 1);
delay(TEST_DELAY);
display.showNumberDec(22, false, 2, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 3);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 1);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 0);
delay(TEST_DELAY);
// Brightness Test
for(h = 0; h < 4; h++)
data[k] = 0xff;
for(h = 0; h < 7; h++) {
display.setBrightness(k);
display.setSegments(data);
delay(TEST_DELAY);
}
// On/Off test
for(k = 0; k < 4; k++) {
display.setBrightness(7, false); // Turn off
display.setSegments(data);
delay(TEST_DELAY);
display.setBrightness(7, true); // Turn on
display.setSegments(data);
delay(TEST_DELAY);
}
//jika sudah selesai akan tertampil tulisan "sip"
display.setSegments(SEG_sip);
while(1);
}
void setup()
{
}
void loop()
{
//pemanggilan fungsi
fungsi_utama();
}