Sketch do comparador de luminosidade

Código do circuito comparador de luminosidade (o arduino não aceita acentuação e nem "ç", por isso está escrito assim):

// ******************** contador de variacao de intensidade luminosa ************************


// Este programa executa uma comparação de intensidade de luminosidade por meio de um LDR
// O valor numerico que varia de zero ate 100 e mostrado em um display duplo de sete segmentos

// Declaracao das variaveis usadas no programa.

const int ldr = A1;
int valorldr = 0;
int contador = 0;
int alternador = 0;

int unidade = 0;
int dezena = 0;
int pino [16]= {2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18};
int dispum [7]= {7,8,9,14,15,16,17};
int dispdois [7]= {2,3,4,5,10,11,12};

// unidades:

int zero [6]= {7,8,9,14,15,17};
int um [2]= {9,17};
int dois [5]= {8,9,16,14,15};
int tres [5]= {8,9,16,15,17};
int quatro [4]= {7,9,16,17};
int cinco [5]= {7,8,15,16,17};
int seis [6]= {7,8,14,15,16,17};
int sete [3]= {8,9,17};
int oito [7]= {7,8,9,14,15,16,17};
int nove [6]= {7,8,9,15,16,17};

// dezenas:

int zeros [6]= {3,4,5,10,11,12};
int dez [2]= {4,12};
int vinte [5]= {2,3,4,10,11};
int trinta [5]= {2,3,4,11,12};
int quarenta [4]= {2,4,5,12};
int cinquenta [5]= {2,3,5,11,12};
int sessenta [6]= {2,3,5,10,11,12};
int setenta [3]= {3,4,12};
int oitenta [7]= {2,3,4,5,10,11,12};
int noventa [6]= {2,3,4,5,11,12};

// variaveis do for:

int x =0;
int y =0;
int z =0;

void setup() {

Serial.begin(9600);

// Testa todos os segmentos do display em seguencia e depois apaga um por um.

  for (x=0;x <= 15;x = x+1){
  pinMode(pino[x], OUTPUT);
  }

  for (y=0;y <= 15;y = y+1){
  digitalWrite(pino[y], HIGH);
  delay(100);
  }

   for (z=0;z <= 15;z = z+1){
  digitalWrite(pino[z], LOW);
  delay(100);
  }
  }

void loop() {

  valorldr = analogRead(ldr);
  if (alternador == 0){
  if (valorldr > 800){
    contador = contador + 1;
    alternador = 1;
  }}
  if (valorldr < 800){
    alternador = 0;
  }

// Imprime na tela do computador o valor a ser mostrado nos displays.
   
  Serial.println(contador);

// Define valor da dezena e da unidade.  
  
  dezena = (contador / 10);
  unidade = (contador - (dezena * 10));

  
  

    
// ********************dezenas*********************
                  //dezena zeros:
                          if (dezena == 0){
                            for (y=0; y <= 5; y= y+1){
                              digitalWrite(zeros[y],HIGH);      
                            }
                          }
                   // dez:
                          if (dezena == 1){
                            for (y=0; y <= 1; y= y+1){
                              digitalWrite(dez[y],HIGH);      
                            }
                          }

                    // vinte:
                          if (dezena == 2){
                            for (y=0; y <= 4; y= y+1){
                              digitalWrite(vinte[y],HIGH);      
                            }
                          }

                     // trinta:
                          if (dezena == 3){                          
                            for (y=0; y <= 4; y= y+1){
                              digitalWrite(trinta[y],HIGH);      
                            }
                          }

                      // quarenta:
                          if (dezena == 4){                            
                            for (y=0; y <= 3; y= y+1){
                              digitalWrite(quarenta[y],HIGH);      
                            }
                          }
                       // cinquenta:
                          if (dezena == 5){                            
                            for (y=0; y <= 4; y= y+1){
                              digitalWrite(cinquenta[y],HIGH);      
                            }
                          }
                        // sessenta:
                          if (dezena == 6){                            
                            for (y=0; y <= 5; y= y+1){
                              digitalWrite(sessenta[y],HIGH);      
                            }
                          }
                        // setenta:
                          if (dezena == 7){                           
                            for (y=0; y <= 2; y= y+1){
                              digitalWrite(setenta[y],HIGH);      
                            }
                          }
                        // oitenta:
                          if (dezena == 8){                         
                            for (y=0; y <= 6; y= y+1){
                              digitalWrite(oitenta[y],HIGH);      
                            }
                            }
                        // noventa:
                          if (dezena == 9){
                            for (y=0; y <= 5; y= y+1){
                              digitalWrite(noventa[y],HIGH);      
                            }
                            }

// ************unidades*************

// numero zero
   if (unidade == 0){
     for (z=0;z <= 5;z = z+1){
     digitalWrite(zero[z],HIGH);
     }
     }     
     
// numero um
   if (unidade == 1){
     for (z=0;z <= 1;z = z+1){
     digitalWrite(um[z],HIGH);
     }    
     }
//numero dois
    if (unidade == 2){
     for (z=0;z <= 4;z = z+1){
     digitalWrite(dois[z],HIGH);
     } 
     }
//numero tres
      if (unidade == 3){
     for (z=0;z <= 4;z = z+1){
     digitalWrite(tres[z],HIGH);
     } 
     }
//numero quatro
      if (unidade == 4){
     for (z=0;z <= 3;z = z+1){
     digitalWrite(quatro[z],HIGH);
     }
     }
//numero cinco
      if (unidade == 5){
     for (z=0;z <= 4;z = z+1){
     digitalWrite(cinco[z],HIGH);
     }
     }
//numero seis
      if (unidade == 6){
     for (z=0;z <= 5;z = z+1){
     digitalWrite(seis[z],HIGH);
     }
     }
//numero sete
      if (unidade == 7){
     for (z=0;z <= 2;z = z+1){
     digitalWrite(sete[z],HIGH);
     }
     }
//numero oito
      if (unidade == 8){
     for (z=0;z <= 6;z = z+1){
     digitalWrite(oito[z],HIGH);
     }
     }
//numero nove
      if (unidade == 9){
     for (z=0;z <= 5;z = z+1){
     digitalWrite(nove[z],HIGH);
     }
     }

// congela a leitura nos displays por meio segundo.

     delay(1); 

 // Os comandos for limpam a informacao dos displays apagando todos os segmentos.    
     
 for (y=0; y <= 6; y = y+1){
 digitalWrite(dispdois[y],LOW);
  }

 for (z=0;z <= 6;z = z+1){
 digitalWrite(dispum[z], LOW);
  }                          
     
 }
       


Nenhum comentário:

Postar um comentário