Advertisement
Iperezsu

Untitled

Sep 16th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.64 KB | None | 0 0
  1.  
  2. #include <inttypes.h>
  3. #include <avr/pgmspace.h>
  4.  
  5. #ifndef NUMEROS10X16_H
  6. #define NUMEROS10X16_H
  7.  
  8. #define NUMEROS10X16_WIDTH 10
  9. #define NUMEROS10X16_HEIGHT 16
  10.  
  11. const static uint8_t Numeros10x16[] PROGMEM = {
  12.   0x0, 0x0,  // size of zero indicates fixed width font, actual length is width * height
  13.   0x0A,      // width
  14.   0x10,      // height
  15.   0x30,      // first char
  16.   0x0B,      // char count
  17.  
  18.   // Fixed width; char width table not used !!!!
  19.  
  20.   // font data
  21.   0xF8, 0xFE, 0x06, 0x03, 0x03, 0x03, 0x03, 0x06, 0xFE, 0xF8, 0x1F, 0x7F, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x60, 0x7F, 0x1F, // 0
  22.   0x00, 0x00, 0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0x00, // 1
  23.   0x18, 0x1E, 0x06, 0x03, 0x03, 0x83, 0xC3, 0xE6, 0x7E, 0x38, 0xF0, 0xF8, 0xDC, 0xCE, 0xC7, 0xC3, 0xC1, 0xC0, 0xC0, 0x00, // 2
  24.   0x00, 0x03, 0x03, 0x03, 0x23, 0x73, 0xFB, 0xDF, 0x8F, 0x07, 0x18, 0x78, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1F, // 3
  25.   0x00, 0x00, 0x00, 0xC0, 0xF0, 0x3C, 0xFF, 0xFF, 0x00, 0x00, 0x30, 0x3C, 0x3F, 0x33, 0x30, 0x30, 0xFF, 0xFF, 0x30, 0x30, // 4
  26.   0x00, 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0x83, 0x83, 0x03, 0x18, 0x78, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1E, // 5
  27.   0xF0, 0xF8, 0x9C, 0xCE, 0xC7, 0xC3, 0xC3, 0x83, 0x83, 0x00, 0x1F, 0x7F, 0x61, 0xC0, 0xC0, 0xC0, 0xC0, 0x61, 0x7F, 0x1E, // 6
  28.   0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC3, 0xF3, 0x3F, 0x0F, 0x00, 0x00, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x00, 0x00, 0x00, // 7
  29.   0x38, 0x7E, 0xE6, 0xC3, 0x83, 0x83, 0xC3, 0xE6, 0x7E, 0x38, 0x1E, 0x7F, 0x63, 0xC1, 0xC0, 0xC0, 0xC1, 0x63, 0x7F, 0x1E, // 8
  30.   0x78, 0xFE, 0x86, 0x03, 0x03, 0x03, 0x03, 0x86, 0xFE, 0xF8, 0x00, 0xC1, 0xC1, 0xC3, 0xC3, 0xE3, 0x73, 0x39, 0x1F, 0x07, // 9
  31.  
  32. };
  33.  
  34. #endif
  35.  
  36. #include <angka.h>
  37. #include <angka6x13.h>
  38. #include <angka_2.h>
  39. #include <angka_besar_kuru.h>
  40. #include <Arial14.h>
  41. #include <Arial_black_16.h>
  42. #include <Arial_Black_16_ISO_8859_1.h>
  43. #include <DMD.h>
  44. #include <Droid_Sans_12.h>
  45. #include <FIXEDNUMS7x15.h>
  46. #include <Font3x5.h>
  47. #include <FONT_7X6.h>
  48. #include <MyBigFont.h>
  49. #include <SYSTEM3x5.h>
  50. #include <SystemFont5x7.h>
  51.  
  52. #include <SPI.h>        //SPI.h debe incluirse ya que DMD está escrito por SPI (el IDE se queja de lo contrario)
  53. #include <TimerOne.h>
  54. #include <SPI.h>
  55. #define pare 5
  56. #define star 4
  57. DMD display(2, 1);   //Un panel horizontal
  58. //DMD display(2,1);  //Descomente si va utilizar dos paneles horizontales
  59. //DMD display(3,1);  //Descomente si va utilizar tres paneles horizontales
  60. char numero[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
  61. char num, num1;
  62. unsigned int mili = 0, mili2 = 3000, seg = 0, seg1 = 0, mili1 = 0, arranca = 0, para = 0, h = 0;
  63. void ScanDMD()
  64. {
  65.   display.scanDisplayBySPI();
  66.   mili = mili + 1;
  67.   mili2 = mili2 + 1;
  68.   if (mili == 1000)
  69.   {
  70.     seg = seg + 1;
  71.     mili = 0;
  72.   }
  73. }
  74. void setup() {
  75.   Timer1.initialize( 1000 );
  76.   Timer1.attachInterrupt(ScanDMD);
  77.   Serial.begin(9600);
  78.   pinMode(4, INPUT_PULLUP);
  79.   pinMode(5, INPUT_PULLUP);
  80.   display.clearScreen(true);
  81.  
  82.   dmd.selectFont(FIXEDNUMS7x15);//fuente para el mensaje
  83.   display.drawString(5,4,"mensaje1",15,GRAPHICS_NORMAL);
  84.   delay(3000);//tiempo que dura el mensaje
  85.   display.drawString(0,4,"mensaje2",15,GRAPHICS_NORMAL);
  86.   delay(3000);// tiempo que dura el mensaje
  87. }
  88.  
  89. void loop() {
  90.   /* if (digitalRead(star) == LOW)
  91.     { arranca = 1;
  92.      mili = 0;
  93.      seg = 0;
  94.     }
  95.  
  96.     if (arranca == 1)
  97.     { para = 0;
  98.      seg1 = seg;
  99.      mili1 = mili;
  100.     }
  101.     if (digitalRead(pare) == LOW)
  102.      para = 1;
  103.  
  104.     if (para == 1)
  105.     {
  106.      seg1 = seg1;
  107.      mili1 = mili1;
  108.      arranca = 0;
  109.     }*/
  110.  
  111.  
  112.   if ((digitalRead(star) == LOW) && (mili2 > 1000))
  113.   { mili2 = 0;
  114.     arranca = 1 - arranca;
  115.     h = 0;
  116.   }
  117.  
  118.   if ((digitalRead(pare) == LOW) && (mili2 > 1000))
  119.   { mili2 = 0;
  120.     arranca = 1 - arranca;
  121.     h = 0;
  122.   }
  123.  
  124.  
  125.  
  126.  
  127.   if (digitalRead(star) == LOW)
  128.   {
  129.     if ((mili2 > 700) && (mili2 < 850)) {
  130.       h = 1;
  131.       mili2 = 0;
  132.       mili = 0;
  133.       seg = 0;
  134.       seg1 = 0;
  135.       mili1 = 0;
  136.       arranca = 0;
  137.     }
  138.   }
  139.   else if (digitalRead(pare) == LOW)
  140.   {
  141.     if ((mili2 > 700) && (mili2 < 850))
  142.  
  143. {
  144.       h = 1;
  145.       mili2 = 0;
  146.       mili = 0;
  147.       seg = 0;
  148.       seg1 = 0;
  149.       mili1 = 0;
  150.       arranca = 0;
  151.     }
  152.   }
  153.   else h = 0;
  154.  
  155.   if (arranca == 1)
  156.   {
  157.     mili = 0;
  158.     seg = 0;
  159.     arranca = 2;
  160.   }
  161.   if (arranca == 2)
  162.   {
  163.     seg1 = seg;
  164.     mili1 = mili;
  165.   }
  166.  
  167.   else
  168.   {
  169.     seg1 = seg1;
  170.     mili1 = mili1;
  171.     arranca = 0;
  172.   }
  173.  
  174.  
  175.  
  176.   if (h == 0)
  177.   { display.selectFont(FIXEDNUMS7x15);
  178.     display.drawChar(  28, 2 , ',', GRAPHICS_NORMAL );
  179.     numeros(seg1, 5, 18);
  180.     numeros1(mili1, 36, 49);
  181.   }
  182.  
  183.   if(h==1)
  184.   {
  185.     display.drawString(0,4,"ERROR",15,GRAPHICS_NORMAL);
  186.   }
  187.  
  188. }
  189.  
  190. void numeros(int palabra, int X1, int X2)
  191. {
  192.   float palabra1;
  193.  
  194.   palabra1 = palabra;
  195.   display.selectFont(Numeros10x16);
  196.   num = palabra1 / 10;
  197.   display.drawChar(  X1, 0, numero[num], GRAPHICS_NORMAL );
  198.   num = palabra1 - num * 10;
  199.   display.drawChar(  X2, 0, numero[num], GRAPHICS_NORMAL );
  200.  
  201. }
  202.  
  203. void numeros1(int palabra2, int X1_, int X2_)
  204. {
  205.   float palabra3;
  206.  
  207.   palabra3 = palabra2;
  208.   display.selectFont(Numeros10x16);
  209.   num1 = palabra3 / 100;
  210.   display.drawChar(  X1_, 0, numero[num1], GRAPHICS_NORMAL );
  211.   palabra3 = palabra3 - num1 * 100;
  212.   num1 = palabra3 / 10;
  213.   display.drawChar(  X2_, 0, numero[num1], GRAPHICS_NORMAL );
  214.  
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement