viernes, 11 de enero de 2019

Semana 5 pinball

En la ultima clase mi compañero Danny Garcia(chino) y yo creamos el codigo de lo que utilizaremos como parte de el mecanismo mas importante del pinball. Este algoritmo permitirá que las "hojas" del pinball se muevan con una circunferencia de 180 grados. Esto es la parte mas relevante en cuanto a la construccion del pinball ya que se basa en la parte tecnológica por lo que su proceso es un poco mas delicado. Tambien nos enfocamos  en realizar la respectivas conexiones del los cables y las fotoceldas.

#include <Servo.h>
Servo motorIzq, motorDer;

int pulsadorIzq=4;
int pulsadorDer=5;                                   
int fotoceldaPierde=A0;
int fotocelda1=A1;
int fotocelda2=A2;
int led_puntos1=6;
int led_puntos2=7;
int led_puntos3=8;                                                                 
void setup() {

      
    pinMode(fotoceldaPierde,INPUT);  
    pinMode(fotocelda1,INPUT);  
    pinMode(fotocelda2,INPUT);
    pinMode(led_puntos1,INPUT);
    pinMode(led_puntos2,INPUT);
    pinMode(led_puntos3,INPUT);  
    pinMode(pulsadorIzq,INPUT);
    pinMode(pulsadorDer,INPUT);

  motorIzq.attach(2);
  motorDer.attach(3);
}
int puntos=0;//vidas=3
void loop() {
int valorPierde=analogRead(fotoceldaPierde);
if (valorPierde<100)
 puntos--;//perder puntos
}
int valor1=analogRead(fotocelda1);
if (valor1<100)
 puntos++;//gana puntos
}
 int valor2=analogRead(fotocelda2);
 if(valor2<100)
 puntos++;//gana puntos
}
switch(puntos)
{
  
case 0:
  digitalWrite(led_puntos1,LOW);
  digitalWrite(led_puntos2,LOW);
  digitalWrite(led_puntos3,LOW); 
  break;
case 1:
  digitalWrite(led_puntos1,HIGH);
  digitalWrite(led_puntos2,LOW);
  digitalWrite(led_puntos3,LOW); 
  break;
  case 2:
  digitalWrite(led_puntos1,HIGH);
  digitalWrite(led_puntos2,HIGH);
  digitalWrite(led_puntos3,LOW); 
  break;
  case 3:
  digitalWrite(led_puntos1,HIGH);
  digitalWrite(led_puntos2,HIGH);
  digitalWrite(led_puntos3,HIGH)
  break;
    
}
int valorIzq=digitalRead(pulsadorIzq);
if(valorIzq==HIGH)//está presionado
{
  motorIzq. write(90);
  delay(500);
}
int valorDer=digitalRead(pulsadorDer);
if(valorDer==HIGH)//está presionado
{
  motorDer. write(90);
  delay(500);
}
else

{
 motorIzq. write(0);//mover a 0 grados
 motorDer. write(0);//mover a 0 grados
 }



}