Advertisement
rogerin

Untitled

Aug 18th, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.13 KB | None | 0 0
  1.  
  2. //Mux control pins
  3. int s00 = 5;
  4. int s01 = 6;
  5. int s02 = 7;
  6. int s03 = 8;
  7.  
  8. int s10 = 9;
  9. int s11 = 10;
  10. int s12 = 11;
  11. int s13 = 12;
  12.  
  13.  
  14. //Mux in "SIG" pin
  15. int SIG_pin = 0;
  16.  
  17. void setup(){
  18.   pinMode(s00, OUTPUT);
  19.   pinMode(s01, OUTPUT);
  20.   pinMode(s02, OUTPUT);
  21.   pinMode(s03, OUTPUT);
  22.  
  23.   pinMode(s10, OUTPUT);
  24.   pinMode(s11, OUTPUT);
  25.   pinMode(s12, OUTPUT);
  26.   pinMode(s13, OUTPUT);
  27.  
  28.   digitalWrite(s00, LOW);
  29.   digitalWrite(s01, LOW);
  30.   digitalWrite(s02, LOW);
  31.   digitalWrite(s03, LOW);
  32.  
  33.   digitalWrite(s10, LOW);
  34.   digitalWrite(s11, LOW);
  35.   digitalWrite(s12, LOW);
  36.   digitalWrite(s13, LOW);
  37.  
  38.   Serial.begin(9600);
  39. }
  40.  
  41. void loop(){
  42.  
  43.  
  44.   //Principal fazer iteração de 0 até numero de secundarios a usar (no seu teste = 2)
  45.  for(int princ = 0; princ < 2; princ ++){
  46.   //Secundária, fazer o loop de 0 a 8
  47.   for(int sec = 0; sec < 8; sec ++){
  48.     Serial.print("Master: ");
  49.     Serial.print(princ);
  50.     Serial.print(" , Segundario: ");
  51.     Serial.print(sec);
  52.     Serial.print(" , eh : ");
  53.     Serial.println(readMux(princ,sec));
  54.     delay(500);
  55.    }
  56.   }  
  57. }
  58. int readMux(int principal, int secundario){
  59.   int controlPin0[] = {s00, s01, s02, s03};
  60.   int controlPin1[] = {s10, s11, s12, s13};
  61.  
  62.   //pode-se usar um vetor para armazenar os 3 valores e depois fazer um laço FOR p/ escrever
  63.   bool pr0 = bitRead(principal, 0);
  64.   bool pr1 = bitRead(principal, 1);
  65.   bool pr2 = bitRead(principal, 2);
  66.   bool pr3 = bitRead(principal, 3);
  67.  
  68.  
  69.   bool sec0 = bitRead(secundario, 0);
  70.   bool sec1 = bitRead(secundario, 1);
  71.   bool sec2 = bitRead(secundario, 2);
  72.   bool sec3 = bitRead(secundario, 3);
  73.  
  74.  
  75.  //Se estiverem como vetor, pode-se usar um laço FOR aqui para escrever os 3 valores
  76.  digitalWrite(controlPin0[0], pr0);
  77.  digitalWrite(controlPin0[1], pr1);
  78.  digitalWrite(controlPin0[2], pr2);
  79.  digitalWrite(controlPin0[3], pr3);
  80.  
  81.  
  82.  digitalWrite(controlPin1[0], sec0);  
  83.  digitalWrite(controlPin1[1], sec1);  
  84.  digitalWrite(controlPin1[2], sec2);  
  85.  digitalWrite(controlPin1[3], sec3);  
  86.  
  87.  
  88.   //read the value at the SIG pin
  89.   int val = analogRead(SIG_pin);
  90.  
  91.   //return the value
  92.   return val;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement