Paso 12: El código
Tiempo para programar el Arduino. No dude en utilizar el código siguiente. Primero usted necesitará descargar la biblioteca de tiempo de http://arduino.cc/playground/Code/Time . Una vez descargado, pones la biblioteca de tiempo en la carpeta de bibliotecas de su directorio de Arduino. Será necesario ir al bosquejo---biblioteca de importación---tiempo para incluir la biblioteca de tiempo en su bosquejo.Aquí es cómo funciona:
1. el LED individual está activado mediante el establecimiento de la fila del LED a bajo y la columna del LED a alta. El truco es que sólo un LED puede ser controlado a la vez. Si nos fijamos en el código, verá que tan pronto como se enciende un LED se apaga inmediatamente. Esto funciona debido a la persistencia de la visión y el LED está siendo cambiado y a una velocidad muy alta. La pantalla que vuelve a dibujarse en el orden de 500 veces por segundo.
2. te darás cuenta que tengo los puntos de Colón a dos de los pines de salida. ¿Por qué haría esto cuando estén siempre a? Buena pregunta! Es porque si no giramos los puntos de Colón y en la misma tarifa que el resto de los LED, los puntos del colon sería diez veces más brillantes que sus vecinos. He probado usando potencia constante a los puntos, y parecía terrible.
3. escribe una función que dibuja cada dígito en la primera posición de 7 segmentos. También hice la función para que aceptaría un parámetro offset. Para escribir el dígito en la primera posición, el desplazamiento es -1. La tercera posición es + 3 y la última posición es + 6. Mi código es probablemente bastante ineficiente, pero esta parte funciona bien.
4. la hora es fácil de analizar de la función timeFormat12() de la librería Time.h. La única parte delicada es conseguir que las dos partes de las actas. El primer dígito de los minutos puede obtenerse de entero simple división por 10. Esto trunca la segunda cifra y devolver sólo la parte de diez minutos. Por ejemplo, 59/10 = 5 en la división de enteros. Para el segundo dígito de los minutos, se utiliza la función mod para devolver la seguía siendo después de dividir por 10. Así, 59% 10 = 9.
5. me doy cuenta el código del reloj podría haber sido escrito mucho más eficientemente, y si alguien molesta a mejorarla, me encantaría verlo hecho bien. Hice lo mejor que pude para un chico que no sea un ingeniero o un programador. Todo lo que realmente puedo decir sobre mi código es que parece funcionar.
#include < Time.h >
int [] columnas = {0,1,2,3,4,5,6,7,8,9,10,11};
int fila [] = {14,15,16,17,18};
void setup()
{
setTime(9,27,0,27,7,2012);
para (int i = 0; i < 13; i ++) {}
pinMode(column[i],OUTPUT);
digitalWrite(column[i],LOW);
}
para (int j = 0; j < 5; j ++) {}
pinMode(row[j],OUTPUT);
digitalWrite(row[j],HIGH);
}
}
void loop () {}
digitalWrite(column[11],HIGH);
digitalWrite(column[12],HIGH);
digitalWrite(column[11],LOW);
digitalWrite(column[12],LOW);
interruptor (hourFormat12()) {}
caso 1:
One(0);
rotura;
caso 2:
Two(0);
rotura;
caso 3:
Three(0);
rotura;
caso 4:
Four(0);
rotura;
caso 5:
Five(0);
rotura;
caso 6:
Six(0);
rotura;
caso 7:
Seven(0);
rotura;
caso 8:
Eight(0);
rotura;
caso 9:
Nine(0);
rotura;
caso 10:
One(-3);
Zero(0);
rotura;
caso 11:
One(-3);
One(0);
rotura;
caso 12:
One(-3);
Two(0);
rotura;
}
interruptor ((minute()/10)) {}
caso 0:
Zero(3);
rotura;
caso 1:
One(3);
rotura;
caso 2:
Two(3);
rotura;
caso 3:
tres (3);
rotura;
caso 4:
Four(3);
rotura;
caso 5:
Five(3);
rotura;
}
interruptor (minute()%10) {}
caso 0:
Zero(6);
rotura;
caso 1:
One(6);
rotura;
caso 2:
Two(6);
rotura;
caso 3:
Three(6);
rotura;
caso 4:
Four(6);
rotura;
caso 5:
Five(6);
rotura;
caso 6:
Six(6);
rotura;
caso 7:
Seven(6);
rotura;
caso 8:
Eight(6);
rotura;
caso 9:
Nine(6);
rotura;
Si nada más los partidos, no el valor por defecto
por defecto es opcional
}
}
void allOn() {}
para (int x = 0; x < 5; x ++) {}
para (int y = 0; y < 13; y ++) {}
digitalWrite(row[x],LOW);
digitalWrite(column[y],HIGH);
}
}
}
void allOff() {}
para (int x = 0; x < 5; x ++) {}
para (int y = 0; y < 13; y ++) {}
digitalWrite(row[x],HIGH);
digitalWrite(column[y],LOW);
}
}
}
void zero(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
}
void one(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}
void two(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
void three(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
void four(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}
void five(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
void six(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
}
void seven(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
}
void eight(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
}
void nine(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}