Villalba2006

POST_80

Nov 23rd, 2018
15,578
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*  TITULO: Display de 4 dígitos y 7 segmentos con controlador TM1637
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2018) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: [email protected]
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Este programa muestra a través del display de 4 dígitos y 7 segmentos con controlador TM1637,
  14.     números enteros, los caracteres especiales de espacio " " y signo negativo "-", y algunas letras
  15.     como A, b, C, d, E y F. El programa puede mostrar tanto caracteres individuales dígito a dígito
  16.     (MODO MANUAL) como matrices completas de 4 dígitos (MODO AUTOMÁTICO).
  17.    
  18.    
  19.     ESQUEMA DE CONEXION
  20.    
  21.                                       +-----+
  22.          +----[PWR]-------------------| USB |--+
  23.          |                            +-----+  |
  24.          |         GND/RST2  [ ][ ]            |
  25.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  26.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  27.          |                             AREF[ ] |
  28.          |                              GND[ ] |
  29.          | [ ]N/C                    SCK/13[ ] |  
  30.          | [ ]IOREF                 MISO/12[ ] |  
  31.          | [ ]RST                   MOSI/11[ ]~|  
  32.          | [ ]3V3    +---+               10[ ]~|  
  33.          | [ ]5v    -| A |-               9[ ]~|  
  34.          | [ ]GND   -| R |-               8[ ] |  
  35.          | [ ]GND   -| D |-                    |
  36.          | [ ]Vin   -| U |-               7[ ] |  
  37.          |          -| I |-               6[ ]~|  
  38.          | [ ]A0    -| N |-               5[ ]~|  
  39.          | [ ]A1    -| O |-               4[ ] |  
  40.          | [ ]A2     +---+           INT1/3[ ]~|   Pin "DIO" del display de 4 dígitos TM1637
  41.          | [ ]A3                     INT0/2[ ] |   Pin "CLK" del display de 4 dígitos TM1637
  42.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  43.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  44.          |            [ ] [ ] [ ]              |
  45.          |  UNO_R3    GND MOSI 5V  ____________/
  46.           \_______________________/
  47.  
  48.   NOTAS:
  49.  
  50.    - La alimentación (VCC) y la masa (GND) del display de 4 dígitos TM1637, va directamente
  51.      conectada a +3.3/5V y GND de Arduino respectivamente.
  52. */
  53.  
  54.  
  55. #include "TM1637.h" // Librería necesaria para el display de 4 dígitos TM1637
  56.  
  57. #define CLK 2 // Pin CLK
  58. #define DIO 3 // Pin DIO
  59.  
  60. // Declaración del objeto para el display de 4 dígitos
  61. TM1637 Display1(CLK,DIO);
  62.  
  63. // Matriz de números que se van a mostrar
  64. int8_t Digits1[4] = {4,3,2,1};
  65.  
  66. // Matriz de letras que se van a mostrar
  67. int8_t Digits2[4] = {0x0a,0xb,0xc,0x0d};
  68.  
  69. // Matriz de dos "-" y dos espacios en blanco
  70. int8_t Digits3[4] = {0x10,0x13,0x10,0x13};
  71.  
  72.  
  73. void setup()
  74. {
  75.   Display1.set(BRIGHT_TYPICAL); // BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7; (de 0 a 7)
  76.  
  77.   Display1.init(); // Inicializa display de 4 dígitos  
  78.  
  79.   Display1.clearDisplay(); // Borra el display de 4 dígitos  
  80.  
  81.   Display1.point(POINT_ON); // Enciende los dos puntos centrales
  82.   Display1.display(0, 0); // Digito 0 => 0
  83.   Display1.display(1, 0); // Digito 1 => 0
  84.   Display1.display(2, 0); // Digito 2 => 0
  85.   Display1.display(3, 0); // Digito 3 => 0
  86.   delay(1000);
  87.  
  88.   Display1.point(POINT_OFF); // Apaga los dos puntos centrales
  89.   Display1.display(0, 0); // Digito 0 => 0
  90.   Display1.display(1, 0); // Digito 1 => 0
  91.   Display1.display(2, 0); // Digito 2 => 0
  92.   Display1.display(3, 1); // Digito 3 => 1  
  93.   delay(1000);
  94.  
  95.   Display1.point(POINT_ON); // Enciende los dos puntos centrales
  96.   Display1.display(0, 0); // Digito 0 => 0
  97.   Display1.display(1, 0); // Digito 1 => 0
  98.   Display1.display(2, 0); // Digito 2 => 0
  99.   Display1.display(3, 2); // Digito 3 => 2
  100.   delay(1000);
  101.  
  102.   Display1.point(POINT_OFF); // Apaga los dos puntos centrales
  103.   Display1.display(0, 0); // Digito 0 => 0
  104.   Display1.display(1, 0); // Digito 1 => 0
  105.   Display1.display(2, 0); // Digito 2 => 0
  106.   Display1.display(3, 3); // Digito 3 => 3  
  107.   delay(1000);
  108.  
  109.   Display1.point(POINT_ON); // Enciende los dos puntos centrales
  110.   Display1.display(0, 0); // Digito 0 => 0
  111.   Display1.display(1, 0); // Digito 1 => 0
  112.   Display1.display(2, 0); // Digito 2 => 0
  113.   Display1.display(3, 4); // Digito 3 => 4
  114.   delay(1000);
  115.  
  116.   Display1.point(POINT_OFF); // Apaga los dos puntos centrales
  117.   Display1.display(0, 0); // Digito 0 => 0
  118.   Display1.display(1, 0); // Digito 1 => 0
  119.   Display1.display(2, 0); // Digito 2 => 0
  120.   Display1.display(3, 5); // Digito 3 => 5  
  121.   delay(1000);
  122.  
  123.   Display1.clearDisplay(); // Borra el display
  124.  
  125.   delay(1000);
  126. }
  127.  
  128.  
  129. void loop()
  130. {
  131.   // MODO AUTOMÁTICO
  132.  
  133.   Display1.display(Digits1); // Muestra la matriz Digits1
  134.  
  135.   delay(2000);
  136.  
  137.   Display1.display(Digits2); // Muestra la matriz Digits2
  138.  
  139.   delay(2000);
  140.  
  141.   Display1.display(Digits3); // Muestra la matriz Digits3
  142.  
  143.   delay(2000);
  144.  
  145.  
  146.   // MODO MANUAL
  147.  
  148.   Display1.display(0, 6); // Digito 0 => 6
  149.   Display1.display(1, 7); // Digito 1 => 7
  150.   Display1.display(2, 8); // Digito 2 => 8
  151.   Display1.display(3, 9); // Digito 3 => 9
  152.  
  153.   delay(2000);
  154.  
  155.   Display1.display(0, 0x13); // Digito 0 => " " (Vacío)
  156.   Display1.display(1, 0x10); // Digito 1 => "-" (Negativo)
  157.   Display1.display(2, 0x13); // Digito 2 => " " (Vacío)
  158.   Display1.display(3, 0x10); // Digito 3 => "-" (Negativo)  
  159.  
  160.   delay(2000);
  161.  
  162.   Display1.display(0, 0x0e); // Digito 0 => E
  163.   Display1.display(1, 0x0f); // Digito 1 => F
  164.   Display1.display(2, 0x0e); // Digito 2 => E
  165.   Display1.display(3, 0x0f); // Digito 3 => F
  166.  
  167.   delay(2000);
  168.  
  169. }
Advertisement
Add Comment
Please, Sign In to add comment