Advertisement
tiodocomputador

Matriz para multiplexador 4067

Jun 13th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.59 KB | None | 0 0
  1. Tenho esse switch/case no arduino:
  2. {
  3.   for (led=1; led<17; led++)
  4.   {
  5.     switch (led)
  6.     {
  7.     case 1:
  8.       {
  9.         digitalWrite(r0, LOW);
  10.         digitalWrite(r1, LOW);
  11.         digitalWrite(r2, LOW);
  12.         digitalWrite(r3, LOW);  
  13.         //0000      
  14.       }
  15.       break;
  16.     case 2:
  17.       {
  18.         digitalWrite(r0, HIGH);
  19.         digitalWrite(r1, LOW);
  20.         digitalWrite(r2, LOW);
  21.         digitalWrite(r3, LOW);
  22.         //0001    
  23.       }
  24.       break;
  25.     case 3:  
  26.       {
  27.         digitalWrite(r0, LOW);
  28.         digitalWrite(r1, HIGH);
  29.         digitalWrite(r2, LOW);
  30.         digitalWrite(r3, LOW);
  31.         //0010      
  32.       }
  33.       break;
  34.     case 4:
  35.       {
  36.         digitalWrite(r0, HIGH);
  37.         digitalWrite(r1, HIGH);
  38.         digitalWrite(r2, LOW);
  39.         digitalWrite(r3, LOW);
  40.         //0011    
  41.       }
  42.       break;
  43.     case 5:
  44.       {
  45.         digitalWrite(r0, LOW);
  46.         digitalWrite(r1, LOW);
  47.         digitalWrite(r2, HIGH);
  48.         digitalWrite(r3, LOW);
  49.         //0100      
  50.       }
  51.       break;
  52.     case 6:
  53.       {
  54.         digitalWrite(r0, HIGH);
  55.         digitalWrite(r1, LOW);
  56.         digitalWrite(r2, HIGH);
  57.         digitalWrite(r3, LOW);  
  58.         //0101      
  59.       }
  60.       break;
  61.     case 7:
  62.       {
  63.         digitalWrite(r0, LOW);
  64.         digitalWrite(r1, HIGH);
  65.         digitalWrite(r2, HIGH);
  66.         digitalWrite(r3, LOW);  
  67.         //0110    
  68.       }
  69.       break;
  70.     case 8:
  71.       {
  72.         digitalWrite(r0, HIGH);
  73.         digitalWrite(r1, HIGH);
  74.         digitalWrite(r2, HIGH);
  75.         digitalWrite(r3, LOW);
  76.         //0111    
  77.       }
  78.     case 9:
  79.       {
  80.         digitalWrite(r0, LOW);
  81.         digitalWrite(r1, LOW);
  82.         digitalWrite(r2, LOW);
  83.         digitalWrite(r3, HIGH);
  84.         //1000      
  85.       }
  86.     case 10:
  87.       {
  88.         digitalWrite(r0, HIGH);
  89.         digitalWrite(r1, LOW);
  90.         digitalWrite(r2, LOW);
  91.         digitalWrite(r3, HIGH);
  92.         //1001      
  93.       }
  94.     case 11:
  95.       {
  96.         digitalWrite(r0, LOW);
  97.         digitalWrite(r1, HIGH);
  98.         digitalWrite(r2, LOW);
  99.         digitalWrite(r3, HIGH);
  100.         //1010    
  101.       }
  102.     case 12:
  103.       {
  104.         digitalWrite(r0, HIGH);
  105.         digitalWrite(r1, HIGH);
  106.         digitalWrite(r2, LOW);
  107.         digitalWrite(r3, HIGH);
  108.         //1011    
  109.       }
  110.     case 13:
  111.       {
  112.         digitalWrite(r0, LOW);
  113.         digitalWrite(r1, LOW);
  114.         digitalWrite(r2, HIGH);
  115.         digitalWrite(r3, HIGH);  
  116.         //1100    
  117.       }
  118.     case 14:
  119.       {
  120.         digitalWrite(r0, HIGH);
  121.         digitalWrite(r1, LOW);
  122.         digitalWrite(r2, HIGH);
  123.         digitalWrite(r3, HIGH);  
  124.         //1101    
  125.       }
  126.     case 15:
  127.       {
  128.         digitalWrite(r0, LOW);
  129.         digitalWrite(r1, HIGH);
  130.         digitalWrite(r2, HIGH);
  131.         digitalWrite(r3, HIGH);
  132.         //1110    
  133.       }
  134.     case 16:
  135.       {
  136.         digitalWrite(r0, HIGH);
  137.         digitalWrite(r1, HIGH);
  138.         digitalWrite(r2, HIGH);
  139.         digitalWrite(r3, HIGH);  
  140.         //1111    
  141.       }
  142.       break;
  143.     }
  144.  
  145. E preciso de algo mais enxuto numa matriz pra poder trabalhar, alguma coisa assim:
  146.  
  147. int seletor[4] = {r0,r1,r2,r3}
  148.  
  149. int matriz[led][seletor] = {
  150. {0,0,0,0},
  151. {0,0,0,1},
  152. {0,0,1,0},
  153. {0,0,1,1},
  154. {0,1,0,0},
  155. {0,1,0,1},
  156. {0,1,1,0},
  157. {0,1,1,1},
  158. {1,0,0,0},
  159. {1,0,0,1},
  160. {1,0,1,0},
  161. {1,0,1,1},
  162. {1,1,1,1},
  163. }
  164.  
  165. E não sei agora como jogar isso num laćo for pra mandar o sinal pros pinos certos do arduino. É pra versão final do multiplexador, já vou fabricar a PCB e preciso ter ctz dq ta funcionando certinho.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement