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