//esta es na programacion basica para checar el funcionamiento de la torre
//motoro
//vercion 1.0
int led[20] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
int leftChannel = 6;
int left, i;
int temp, temp1, temp2,temp3,temp4,temp5,temp6,temp7,temp8,temp9,temp10,temp11,temp12;
int cont=20;
int t0=25, t1=200, t2=100, t3=50, t4=20, t5=200,t6=20,t7=50,t8=300;
void setup()
{
for (i = 0; i < 18; i++)
pinMode(led[i], OUTPUT);
}
void loop(){
//esta es la opcion de vumetro si desactivan esta fucnon es necesario colocar un preamplificador en el pin que corresponda
//for(temp=0; temp<30000; temp++){
//vumetro();
//}
for(temp1=0; temp1<10; temp1++){
shiftLED();
}
for(temp2=0; temp2<5; temp2++){
rutina3();
}
//ESTROBO
for(temp3=0; temp3<17; temp3++){
rutina4();
}
//motoro
for(temp5=0; temp5<1; temp5++){
rutina6();
}
for(temp6=0; temp6<4; temp6++){
rutina7();
}
//mitad apaga mitad prende
for(temp7=0; temp7<9; temp7++){
rutina8();
}
//ESTROBO
for(temp3=0; temp3<17; temp3++){
rutina4();
}
for(temp9=0; temp9<2; temp9++){
rutina10();
}
for(temp10=0; temp10<3; temp10++){
rutina11();
}
//ESTROBO
for(temp3=0; temp3<17; temp3++){
rutina4();
}
//estrobo
for(temp3=0; temp3<17; temp3++){
rutina4();
}
}
//Realiza la lectura de la entrada de audio y la muestra en la barra de LEDs
void vumetro(){
left = analogRead(leftChannel);
left = left / 25;
if (left == 0) {
for(i = 0; i < 18; i++){
digitalWrite(led[i], LOW);
}
}
else{
for (i = 0; i < left; i++){
digitalWrite(led[i], HIGH);
}
for(i = i; i < 18; i++){
digitalWrite(led[i], LOW);
}
}
}
void shiftLED(){
for(int led=0; led<18; led++){
digitalWrite(led,HIGH);
delay(20);
digitalWrite(led,LOW);
}
}
void rutina3(){
for(int led=0; led<18; led++){
digitalWrite(led,LOW);
delay(70);
digitalWrite(led,HIGH);
delay(10);
}
}
void rutina4(){
for (cont=0; cont <18; cont ++)
switch(cont){
case 0:
PORTD= B11111111;
PORTB= B11111111;
PORTC= B11111111;
delay(t0);
case 1:
PORTD= B00000000;
PORTB= B00000000;
PORTC= B00000000;
delay(t0);
}
}
void rutina6(){
for(int led=0;led<18;led++){
digitalWrite(led,HIGH);
delay(t1);
}
for(int pin=18;pin>0;pin--){
digitalWrite(pin,LOW);
delay(t1);
}
for(int pin =0;pin<cont;pin++)
{
digitalWrite(led[pin],HIGH);
delay(t1);
digitalWrite(led[pin],LOW);
}
for(int pin =cont-1; pin >=0;pin--)
{
digitalWrite(led[pin],HIGH);
delay(t1);
digitalWrite(led[pin],LOW);
}
}
void rutina7(){
int k=17;
for(int led=8; led<=17;led++)
{
digitalWrite(led, HIGH);
digitalWrite(k-led, HIGH);
delay(30);
}
for(int led=8; led>=0;led--)
{ // Al contrario de lo anterior
digitalWrite(led, LOW);
digitalWrite(k-led, LOW);
delay(30);
}
for(int led=17; led>=0;led--)
{
digitalWrite(led, HIGH);
digitalWrite(k-led, HIGH);
delay(30);
}
for(int led=0; led<=17;led++)
{
digitalWrite(led, HIGH);
digitalWrite(k-led, HIGH);
delay(30);
}
}
void rutina8(){
int k=17;
for(int led=0; led<=8;led++){
digitalWrite(led,HIGH);
digitalWrite(k-led,LOW);
}
delay(300);
for(int led=0; led<=8;led++){
digitalWrite(led,LOW);
digitalWrite(k-led,HIGH);
}
delay(300);
}
void rutina10(){
for(int led=0;led<18;led++){
digitalWrite(led,HIGH);
delay(t4);
}
for(int pin=0;pin<18;pin++){
digitalWrite(pin,LOW);
delay(t4);
}
for(int pin =0;pin<cont;pin++)
{
digitalWrite(led[pin],HIGH);
delay(t4);
digitalWrite(led[pin],LOW);
}
for(int pin =cont-1; pin >=0;pin--)
{
digitalWrite(led[pin],HIGH);
delay(t4);
digitalWrite(led[pin],LOW);
}
for(int pin =0;pin<cont;pin++)
{
digitalWrite(led[pin],HIGH);
delay(t4);
digitalWrite(led[pin],LOW);
delay(160);
}
for(int pin =cont-1; pin >=0;pin--)
{
digitalWrite(led[pin],HIGH);
delay(t4);
digitalWrite(led[pin],LOW);
delay(80);
}
}
void rutina11(){
for(int led=0; led<9; led++){
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(10);
}
for(int led=17; led>8; led--){
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(10);
}
for(int led=0; led<9; led++){
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(10);
}
for(int led=17; led>8; led--){
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(10);
}
for(int led=0; led<9; led++){
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(10);
}
}