Girasol Electrónico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Facultad en Ingeniería Electrónica

GIRASOL ELECTRÓNICO

Estudiantes: Leonardo Jesús Quevedo Polanco


Maidy Julieth Sanchez Cuellar
Asignatura: Sistemas Digitales ll
Profesor: Fernando Barrera.
Año Académico: 2021
Semestre: Quinto

Colombia Neiva- Huila, 27 de marzo del 2021


Ejercicio práctico.
Desarrollar un “girasol electrónico” como el mostrado en la figura 1. El sistema se
compone de 2 fotorresistencias, un servo, un potenciómetro y un interruptor.
Inicialmente, cuando el interruptor está apagado el servo esta en modo de
búsqueda, rotando simulando el comportamiento de un radar real. Esto dependerá
de las características del servo, si es de 360 o 180 grados (ajuste la secuencia
según sea su caso). Luego, cuando el interruptor este activo, el sistema deber ‘a
buscar la fuente de luz más intensa, esta acción se realizará girando lentamente
los sensores montados sobre las palas del servo. Para simplificar el problema se
asumir ‘a que existe una ´única fuente de iluminación, por ejemplo: la linterna de
un teléfono móvil, la cual rota en el mismo plano de las fotorresistencias. Cuando
la intensidad lumínica supere un umbral controlado por un potenciómetro, el servo
deber ‘a orientar las fotorresistencias hacia la fuente y dependiendo de los valores
registrados en las fotos resistencias seguir la fuente de iluminación.

CODIGO
#include <Servo.h>

Servo miServo;
int gradosDelServo = 90;
int A_1 = 13;
int poten1= A2;
void setup() {
Serial.begin(9600);
pinMode( A_1, INPUT);
miServo.attach(9);
miServo.write(gradosDelServo);

int ldrIzquierdo = 0;
int ldrDerecho = 0;

void loop() {
int potValue = analogRead(poten1);
float potVoltage = potValue*5.0/1024.0;
if(digitalRead(13)==false){
miServo.write(45); // put your main code here, to run repeatedly:
delay(2000);
miServo.write(90);
delay(2000);
miServo.write(180);
delay(2000);
}
if(digitalRead(13)==true){
if(potValue< analogRead(A1) || potValue< analogRead(A0)){
ldrIzquierdo = analogRead(A1);
ldrDerecho = analogRead(A0);

if(ldrIzquierdo > ldrDerecho + 50 && gradosDelServo < 180){


gradosDelServo++;
}else if (ldrDerecho > ldrIzquierdo + 50 && gradosDelServo > 0){
gradosDelServo--;
}
}
}
Serial.print(" |Fotoresistencia izquierda: ");
Serial.print(analogRead(A0));
Serial.print(" | Fotoresistencia derecha: ");
Serial.println(analogRead(A1));
Serial.print(" |Potenciometro: ");
Serial.print(potValue);

miServo.write(gradosDelServo);
}

CONEXIONES E IMPLEMENTACIÓN

También podría gustarte