Paso 6: Rutinas (o: donde empieza la diversión)
En este punto, hemos hecho la mayoría de los trabajos de pierna. Ahora podemos empezar a desarrollar aplicaciones interesantes para nuestro proyecto. Esto es donde el Arduino se convierte en más. Atribuimos nuestro fotodiodo (junto con un grande resistor [algo del orden de 10 K para evitar que nuestro Arduino se fríen por demasiada corriente) a una de las entradas analógicas del Arduino. Lo que sigue es un programa de Arduino de muestra llamado "persianas" que utiliza una función de "dither" encontrar maxima relativa de intensidad de luz en función del ángulo ciego cada 30 minutos. Nota que estoy usando la Arduino Leonardo PWM pins 9, 10 y 5 para el control de lógica de la puente, y restime debe depender de los detalles de su configuración (por ejemplo, voltaje del motor, girándolo cuánto tarda para abrir tus persianas, etc..).int c1 = 9;
int c2 = 10;
permiten int = 5;
int temp;
izquierda boolean = false;
Boolean correcto = false;
int rightval;
int leftval;
int restime = 40;
void setup() {}
pinMode (c1, salida);
pinMode (c2, salida);
pinMode (permiten, salida);
}
void loop() {}
izquierda = false;
derecha = false;
dither();
Delay(2800000);
}
void dither() {}
while(Left==false|| derecho == false) {}
Temp=analogRead(a0);
Si (izquierda == false) {}
digitalWrite (habilitar, LOW);
digitalWrite (c1, HIGH);
digitalWrite (c2, LOW);
digitalWrite (habilitar, HIGH);
Delay(restime);
digitalWrite (c2, HIGH);
leftval=analogRead(a0);
digitalWrite (c1, LOW);
Delay(restime);
digitalWrite (habilitar, LOW);
if(leftval>Temp)
izquierda = false;
otra cosa
izquierda = true;
}
Si (derecha == false) {}
digitalWrite (habilitar, LOW);
digitalWrite (c1, LOW);
digitalWrite (c2, HIGH);
digitalWrite (habilitar, HIGH);
Delay(restime);
digitalWrite (c2, LOW);
rightval=analogRead(a0);
digitalWrite (c1, HIGH);
Delay(restime);
digitalWrite (habilitar, LOW);
if(rightval>Temp)
derecha = false;
otra cosa
derecha = true;
}
}
Me gustaría conseguir mis problemas de montaje y mecánica lo suficiente como para grabar un vídeo Time-lapse de este programa que se ejecuta durante todo el día resuelto. Si alguna vez consigo que funcione, probablemente pondré video aquí.