Beruflich Dokumente
Kultur Dokumente
A continuacin en los siguientes puntos se mostraran las etapas diseadas para poder
obtener la realizacin de una banda clasificadora de objetos de colores.
1.1
verde RGB), los cuales encendern en secuencia, al momento de que cada uno
encienda el receptor utilizado (fotorresistecia) variar su resistencia con cada color
reflejado del objeto a sensar, de tal manera que el haz que refleje mayor cantidad de luz
indicar el color del objeto, por ejemplo un objeto verde, reflejar mayor cantidad de
luz emitida por el led verde.
A continuacin en la figura XXXX se muestra el diagrama de conexin del
sensor de color acoplado en Arduino, se tiene un divisor de tensin alimentado por el
Arduino y los 3 Leds con los que se trabajara.
VCC 9V
R1
EndendidoA
Key = Space
100k
50%
Key=A
LM555CM
R2
10k
U1
3
R4
10k
6
2
C1
100nF
MOTOR
C2
100nF
variara
pinMode(azul1, OUTPUT);
pinMode(verde1, OUTPUT);
pinMode(rojo1, OUTPUT);
pinMode(fotorresistencia, INPUT);
pinMode(presencia, INPUT);
Serial.begin(9600);}
void loop(){
int sensorpre = analogRead(presencia);
Serial.println(sensorpre);
if (sensorpre > 600)
{
delay(100);
apagados();
delay(100);
evaluacion(100,100);}
else {
Serial.print ("No hay objeto");
delay (100);}
}
apagados(){
digitalWrite(azul1, LOW);
digitalWrite(verde1, LOW);
digitalWrite(rojo1, LOW);}
void encendidos(){
digitalWrite(azul1, HIGH);
digitalWrite(verde1, HIGH);
digitalWrite(rojo1, HIGH);}
void decision(int color){
for(int i=0;i<3;i++) {
digitalWrite(color, HIGH);
delay(100);
digitalWrite(color, LOW);
delay(100);}}
void evaluacion(int t_rec, int t_det){
delay(5000);
double luz_ambiente = analogRead(fotorresistencia);
Serial.print("Luz ambiente: ");
Serial.println(luz_ambiente*cal_ambiente);
digitalWrite(verde1, HIGH);
delay(t_det);
double verde = analogRead(fotorresistencia);
Serial.print("Luz verde: ");
Serial.println(verde*cal_verde);
digitalWrite(verde1, LOW);
delay(t_rec);
digitalWrite(rojo1, HIGH);
delay(t_det);
double rojo = analogRead(fotorresistencia);
Serial.print("Luz roja: ");
Serial.println(rojo*cal_rojo);
digitalWrite(rojo1, LOW);
delay(t_rec);
digitalWrite(azul1, HIGH);
delay(t_det);
delay(t_rec);
double Valores_colores[] = {(verde*cal_verde), (rojo*cal_rojo),
(azul*cal_azul)};
double luz_amb = luz_ambiente*cal_ambiente;
int decision2;
for (int i=0; i<3; i++) {
if (luz_amb<Valores_colores[i]){
luz_amb = Valores_colores[i];
decision2 = i+1;}}
Serial.println("");
if(decision2 == 0){
Serial.println("No se ha detectado objeto");
encendidos();
delay(1000);
apagados ();}
else if(decision2 == 1){
Serial.println("Objeto verde");
digitalWrite(verde2, HIGH);
desicion (verde1);
delay(1000);
digitalWrite(verde2, LOW);
delay(100); }
else if(decision2 == 2){
Serial.println("Objeto rojo");
digitalWrite(rojo2, HIGH);
desicion(rojo1);
delay(1000);
digitalWrite(rojo2, LOW);
delay(100);}
else if(decision2 == 3){
Serial.println("Objeto azul");
digitalWrite(azul2, HIGH);
desicion (azul1);
delay(1000);
digitalWrite(azul2, LOW);
delay(100); }
Serial.println("");}
Cabe sealar que el programa en pantalla despliega los valores
analgicos de entrada (la variacin del divisor de tensin) as como el
color resultante de la comparacin.
4.6 Diseo de la banda de produccin
En esta seccin se presenta el diseo de la banda de produccin fsicamente, asi
como cada una de sus etapas y la banda de produccin terminada una vez que se acoplaron
todas las etapas.
En la figura XXXX se muestra la banda de produccin, la cual funciona mediante
un motor que tiene el eje acoplado a un rodillo el cual provoca que la banda se mueva al
mismo tiempo que el motor.