viernes, 26 de octubre de 2018

Arma tu propio Girasol electronico con PCBWAY y arduino




 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
}
 

1 comentario:

  1. Metal Core PCB is mainly present in LED applications and similarly in LED-large computer hardware components.

    Metalcore 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.

    ResponderEliminar