Materiales:
* 1 arduino nano
* 4 resistencias de 10k
* 1 preset de 10k
* 1 servomotor
* 1 tira de pines hembra
* 1 tira de pines macho
* 2 fotoresistencias
* 1 interruptor de palanca
* 4 cables jumper macho hembra
* 1 maceta de plastico de 5 pulgadas
* 1 circulo de madera
* 1 girasol de madera
* 2 soportes de acrilico
* 1 PCB
Diagrama:
Plantillas:
Programa:
/*
********************************
******* Girasol - CATyK *******
********************************
Sigue la luz, generalmente busca
el lugar con mayor intensidad de
luz para aprovecharla, si se tiene
un panel solar.
*/
#include <Servo.h>
Servo myservo; //Servo - Crea un objeto de control para servomotor
//myservo - Es como nombramos a dicho objeto cualquier nombre pueden escoger
//int pos = 0; // Variable que maneja la posición del servo.
int pos = 90; //Variable que maneja la posición del servo.
//el alor de pos=90 coloca al servo inicialmente en 90° grados,
//es decir, va a coloccar el girasol a la mitad o en el centro.
int FotoceldaD = 1;// Fotorresistencia pin analogico 0 de arduino
int FotoceldaI = 0; // Fotorresistencia pin analogico 1 de arduino
int Izquierda = 0; // Almacena las lecturas de la fotoresistenciaIzquierda.
int Derecha = 0; // Almacena las lecturas de la fotoresistenciaDerecha.
int pot = A2; // Seleccionamos el pin analógico A4 para colocar un potenciometro
int Velocidad = 0; //Variable donde guardaremos la lectura del potenciometro
void setup()
{
//Recuerden que los pines analógicos no se inicializan
Serial.begin(9600); // Agregamos el monitor serial para visualizar las lecturas de las fotoresistencias y el servo.
myservo.attach(12); // Colocamos el servo al pin 9
}
void loop()
{
// Leemos las valores de las fotoceldas en las variables Derecha e Izquierda.
Derecha = analogRead(FotoceldaD);
Izquierda = analogRead(FotoceldaI);
Velocidad = analogRead(pot)/4; //Esta variable nos servira para modificar la velocidad de las lecturas de las fotoceldas
Serial.print("Derecha= "); //Mostramos el texto: Derecha=...
Serial.println(Derecha); //Mostramos el valor de la foltoceldaD (0-1023).
Serial.print("Izquierda= "); //Mostramos el texto: Derecha=...
Serial.println(Izquierda); //Mostramos el valor de la foltoceldaI (0-1023).
Serial.print("Velocidad= "); //Mostramos el texto: Velocidad=...
Serial.println(Velocidad); //Mostramos el valor del retardo por cada Lectura
Serial.print("Posicion= "); //Mostramos el texto: Posicion=...
Serial.println(pos); //Mostramos el valor de la posicion del servo.
//Recordar que si se quiere ver los valores en podemos
//verlo en el monitor serial en deslizamiento de línea quitar la palomita.
// Comprueba si la derecha es mayor que la izquierda, si es así, muévase a la derecha.
if (Izquierda > (Derecha +20))
// +20 es la zona muerta, por lo que no se moverá de un lado a otro.
{
if (pos < 135) // pos < 179; en caso de que el girasol pueda girar los 180° libremente.
pos++; // Incrementa 1 grado hasta que se igualen o ya no sea mayor la Izquierda.
myservo.write(pos);
}
// Comprueba si la izquierda es mayor que la derecha, si es así, muévete a la izquierda.
if (Derecha > (Izquierda +20))
// +20 es la zona muerta, por lo que no se moverá de un lado a otro.
{
if (pos > 45) // pos > 1; en caso de que el girasol pueda girar los 180° libremente.
pos -= 1; // Decrementa 1 grado hasta que se igualen o ya no sea mayor la Derecha.
myservo.write(pos);
}
// Agregamos un pequeño retardo, Incrementa o disminuye si quieres menos o más velocidad en la lectura.
delay(Velocidad); //Por defecto se puede poner 10ms
}
Metal Core PCB is mainly present in LED applications and similarly in LED-large computer hardware components.
ResponderEliminarMetalcore printed circuit boards are still produced utilizing usual surface mount technology assembly equipment. MCPCBs are typically many layered boards. They can moreover be made on a flex board or on a stiff flex board for hard space places or made to order sized applications, for instance, mobile phones and tablets.