Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <inttypes.h>
- #include <avr/pgmspace.h>
- #ifndef NUMEROS10X16_H
- #define NUMEROS10X16_H
- #define NUMEROS10X16_WIDTH 10
- #define NUMEROS10X16_HEIGHT 16
- const static uint8_t Numeros10x16[] PROGMEM = {
- 0x0, 0x0, // size of zero indicates fixed width font, actual length is width * height
- 0x0A, // width
- 0x10, // height
- 0x30, // first char
- 0x0B, // char count
- // Fixed width; char width table not used !!!!
- // font data
- 0xF8, 0xFE, 0x06, 0x03, 0x03, 0x03, 0x03, 0x06, 0xFE, 0xF8, 0x1F, 0x7F, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x60, 0x7F, 0x1F, // 0
- 0x00, 0x00, 0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0x00, // 1
- 0x18, 0x1E, 0x06, 0x03, 0x03, 0x83, 0xC3, 0xE6, 0x7E, 0x38, 0xF0, 0xF8, 0xDC, 0xCE, 0xC7, 0xC3, 0xC1, 0xC0, 0xC0, 0x00, // 2
- 0x00, 0x03, 0x03, 0x03, 0x23, 0x73, 0xFB, 0xDF, 0x8F, 0x07, 0x18, 0x78, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1F, // 3
- 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x3C, 0xFF, 0xFF, 0x00, 0x00, 0x30, 0x3C, 0x3F, 0x33, 0x30, 0x30, 0xFF, 0xFF, 0x30, 0x30, // 4
- 0x00, 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0x83, 0x83, 0x03, 0x18, 0x78, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1E, // 5
- 0xF0, 0xF8, 0x9C, 0xCE, 0xC7, 0xC3, 0xC3, 0x83, 0x83, 0x00, 0x1F, 0x7F, 0x61, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1E, // 6
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC3, 0xF3, 0x3F, 0x0F, 0x00, 0x00, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x00, 0x00, 0x00, // 7
- 0x38, 0x7E, 0xE6, 0xC3, 0x83, 0x83, 0xC3, 0xE6, 0x7E, 0x38, 0x1E, 0x7F, 0x63, 0xC1, 0xC0, 0xC0, 0xC1, 0x63, 0x7F, 0x1E, // 8
- 0x78, 0xFE, 0x86, 0x03, 0x03, 0x03, 0x03, 0x86, 0xFE, 0xF8, 0x00, 0xC1, 0xC1, 0xC3, 0xC3, 0xE3, 0x73, 0x39, 0x1F, 0x07, // 9
- };
- #endif
- #include <angka.h>
- #include <angka6x13.h>
- #include <angka_2.h>
- #include <angka_besar_kuru.h>
- #include <Arial14.h>
- #include <Arial_black_16.h>
- #include <Arial_Black_16_ISO_8859_1.h>
- #include <DMD.h>
- #include <Droid_Sans_12.h>
- #include <FIXEDNUMS7x15.h>
- #include <Font3x5.h>
- #include <FONT_7X6.h>
- #include <MyBigFont.h>
- #include <SYSTEM3x5.h>
- #include <SystemFont5x7.h>
- #include <SPI.h> //SPI.h debe incluirse ya que DMD está escrito por SPI (el IDE se queja de lo contrario)
- #include <TimerOne.h>
- #include <SPI.h>
- #define pare 5
- #define star 4
- DMD display(2, 1); //Un panel horizontal
- //DMD display(2,1); //Descomente si va utilizar dos paneles horizontales
- //DMD display(3,1); //Descomente si va utilizar tres paneles horizontales
- char numero[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
- char num, num1;
- unsigned int mili = 0, mili2 = 3000, seg = 0, seg1 = 0, mili1 = 0, arranca = 0, para = 0, h = 0;
- void ScanDMD()
- {
- display.scanDisplayBySPI();
- mili = mili + 1;
- mili2 = mili2 + 1;
- if (mili == 1000)
- {
- seg = seg + 1;
- mili = 0;
- }
- }
- void setup() {
- Timer1.initialize( 1000 );
- Timer1.attachInterrupt(ScanDMD);
- Serial.begin(9600);
- pinMode(4, INPUT_PULLUP);
- pinMode(5, INPUT_PULLUP);
- display.clearScreen(true);
- dmd.selectFont(FIXEDNUMS7x15);//fuente para el mensaje
- display.drawString(5,4,"mensaje1",15,GRAPHICS_NORMAL);
- delay(3000);//tiempo que dura el mensaje
- display.drawString(0,4,"mensaje2",15,GRAPHICS_NORMAL);
- delay(3000);// tiempo que dura el mensaje
- }
- void loop() {
- /* if (digitalRead(star) == LOW)
- { arranca = 1;
- mili = 0;
- seg = 0;
- }
- if (arranca == 1)
- { para = 0;
- seg1 = seg;
- mili1 = mili;
- }
- if (digitalRead(pare) == LOW)
- para = 1;
- if (para == 1)
- {
- seg1 = seg1;
- mili1 = mili1;
- arranca = 0;
- }*/
- if ((digitalRead(star) == LOW) && (mili2 > 1000))
- { mili2 = 0;
- arranca = 1 - arranca;
- h = 0;
- }
- if ((digitalRead(pare) == LOW) && (mili2 > 1000))
- { mili2 = 0;
- arranca = 1 - arranca;
- h = 0;
- }
- if (digitalRead(star) == LOW)
- {
- if ((mili2 > 700) && (mili2 < 850)) {
- h = 1;
- mili2 = 0;
- mili = 0;
- seg = 0;
- seg1 = 0;
- mili1 = 0;
- arranca = 0;
- }
- }
- else if (digitalRead(pare) == LOW)
- {
- if ((mili2 > 700) && (mili2 < 850))
- {
- h = 1;
- mili2 = 0;
- mili = 0;
- seg = 0;
- seg1 = 0;
- mili1 = 0;
- arranca = 0;
- }
- }
- else h = 0;
- if (arranca == 1)
- {
- mili = 0;
- seg = 0;
- arranca = 2;
- }
- if (arranca == 2)
- {
- seg1 = seg;
- mili1 = mili;
- }
- else
- {
- seg1 = seg1;
- mili1 = mili1;
- arranca = 0;
- }
- if (h == 0)
- { display.selectFont(FIXEDNUMS7x15);
- display.drawChar( 28, 2 , ',', GRAPHICS_NORMAL );
- numeros(seg1, 5, 18);
- numeros1(mili1, 36, 49);
- }
- if(h==1)
- {
- display.drawString(0,4,"ERROR",15,GRAPHICS_NORMAL);
- }
- }
- void numeros(int palabra, int X1, int X2)
- {
- float palabra1;
- palabra1 = palabra;
- display.selectFont(Numeros10x16);
- num = palabra1 / 10;
- display.drawChar( X1, 0, numero[num], GRAPHICS_NORMAL );
- num = palabra1 - num * 10;
- display.drawChar( X2, 0, numero[num], GRAPHICS_NORMAL );
- }
- void numeros1(int palabra2, int X1_, int X2_)
- {
- float palabra3;
- palabra3 = palabra2;
- display.selectFont(Numeros10x16);
- num1 = palabra3 / 100;
- display.drawChar( X1_, 0, numero[num1], GRAPHICS_NORMAL );
- palabra3 = palabra3 - num1 * 100;
- num1 = palabra3 / 10;
- display.drawChar( X2_, 0, numero[num1], GRAPHICS_NORMAL );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement