Advertisement
tiodocomputador

Super Multiplexador

Jul 9th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.96 KB | None | 0 0
  1. // Inclui as Libs necessarias.
  2. #include <LiquidCrystal.h>
  3. #include <Wire.h>
  4.  
  5. //LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  6. //Estes valores quando trabalhar na protoboard
  7. //LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
  8. //Estes valores quando trabalhar no proteus
  9.  
  10. //Pinos de enderecamento do mux
  11. int r0 = 2;    //master
  12. int r1 = 3;    //master
  13. int r2 = 4;    //master
  14. int r3 = 5;    //master
  15. int r4 = 6;    //slave
  16. int r5 = 7;    //slave
  17. int r6 = 8;    //slave
  18. int r7 = 9;    //slave
  19.  
  20.  
  21. //Declara pino A0 como leitura analogica
  22. int comum = A0;
  23.  
  24. // Declara a variavel que controla o pino do multiplexador:
  25. int led;
  26.  
  27. int fator = 10;
  28. int Taceso = 10;
  29. int Tapagado = Taceso/fator;
  30.  
  31. // Observação: O quatro é a quantidade de itens que haverá no eixo X da matriz;
  32. int matriz[16][4] =
  33. {
  34.   {
  35.     0,0,0,0  }
  36.   ,
  37.   {
  38.     0,0,0,1  }
  39.   ,
  40.   {
  41.     0,0,1,0  }
  42.   ,
  43.   {
  44.     0,0,1,1  }
  45.   ,
  46.   {
  47.     0,1,0,0  }
  48.   ,
  49.   {
  50.     0,1,0,1  }
  51.   ,
  52.   {
  53.     0,1,1,0  }
  54.   ,
  55.   {
  56.     0,1,1,1  }
  57.   ,
  58.   {
  59.     1,0,0,0  }
  60.   ,
  61.   {
  62.     1,0,0,1  }
  63.   ,
  64.   {
  65.     1,0,1,0  }
  66.   ,
  67.   {
  68.     1,0,1,1  }
  69.   ,
  70.   {
  71.     1,1,0,0  }
  72.   ,
  73.   {
  74.     1,1,0,1  }
  75.   ,
  76.   {
  77.     1,1,1,0  }
  78.   ,
  79.   {
  80.     1,1,1,1  }
  81.   ,
  82. };
  83.  
  84.  
  85. void setup()
  86. {
  87.   //Define os pinos de enderecamento e comum como saida:
  88.   pinMode(r0, OUTPUT);
  89.   pinMode(r1, OUTPUT);
  90.   pinMode(r2, OUTPUT);
  91.   pinMode(r3, OUTPUT);
  92.   pinMode(r4, OUTPUT);
  93.   pinMode(r5, OUTPUT);
  94.   pinMode(r6, OUTPUT);
  95.   pinMode(r7, OUTPUT);
  96.   pinMode(comum, OUTPUT);
  97.  
  98.   //Desliga os pinos de enderecamento e os coloca em estado 0000
  99.   digitalWrite(r0, LOW);
  100.   digitalWrite(r1, LOW);
  101.   digitalWrite(r2, LOW);
  102.   digitalWrite(r3, LOW);
  103.   digitalWrite(r4, LOW);
  104.   digitalWrite(r5, LOW);
  105.   digitalWrite(r6, LOW);
  106.   digitalWrite(r7, LOW);
  107.   digitalWrite(comum, LOW);
  108.  
  109.   //Define a taxa de baud do uC
  110.   Serial.begin(9600);
  111. }
  112.  
  113. void loop()
  114. {
  115.   for(int i = 0; i<16; i++)
  116.   {
  117.     mux(matriz[i]);
  118.     for(int j = 0; j<16; j++)
  119.     {
  120.       acender(matriz[j]);
  121.       escreve(j);
  122.     }
  123.   }
  124. }
  125.  
  126.  
  127. void mux( int m[] )
  128. {
  129.   digitalWrite(r0, m[0]);
  130.   digitalWrite(r1, m[1]);
  131.   digitalWrite(r2, m[2]);
  132.   digitalWrite(r3, m[3]);
  133. }
  134.  
  135. void acender( int p[] )
  136. {
  137.   digitalWrite(r4, p[0]);
  138.   digitalWrite(r5, p[1]);
  139.   digitalWrite(r6, p[2]);
  140.   digitalWrite(r7, p[3]);
  141.       digitalWrite(comum, HIGH);
  142. }
  143.  
  144. void escreve(int led )
  145. {
  146.   digitalWrite(comum, HIGH);   // turn the LED on (HIGH is the voltage level)
  147.   {
  148.     ///Serial.print("Led ativo: ");
  149.     //Serial.print(led);
  150.     Serial.print(matriz[led][0]);
  151.     Serial.print(matriz[led][1]);
  152.     Serial.print(matriz[led][2]);
  153.     Serial.print(matriz[led][3]);        
  154.     Serial.println(".");
  155.  
  156.     //    lcd.setCursor(0,0);
  157.     //    lcd.print("Led ativo: ");
  158.     //    lcd.print(led);
  159.     //matriz    lcd.print(".");
  160.   }
  161.   delay(Taceso);              // wait for a second
  162.   digitalWrite(comum, LOW);    // turn the LED off by making the voltage LOW
  163.   delay(Tapagado);
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement