miércoles, 24 de abril de 2019

Sensor aparcamiento

long distancia;//Creamos la variable de la distancia
long tiempo;//Creamos la variable del tiempo
int pinTrig=9;//Declaramos la variable Trig, que es el que envía el ultrasonido en el pin 9.
int pinEcho=8; //Declaramos la varibale Echo, que es la que recoge el rebote del ultrasonido, en el pin8.
int verde=13;//Declaramos el led verde en el pin 13.
int amarillo=2;//Declaramos el led amarillo en el pin 2;
int rojo=4;//Declaramos el led rojo en el pin 4;
int sonido=6;//Declaramos el zumbador en el pin 6;
int tonoa=2000;//Declaramos el tono a en 2000hz.
int tonob=5000;//Declaramos el tono b en 5000Hz.
int tonoc=1000;//Declaramos el tono c en 1000Hz.
void setup(){
  Serial.begin(9600);//velocidad de conexión de la placa a 9600 bytes por segundo.
  pinMode(pinTrig, OUTPUT); //PIN9 como salida/TRIG para enviar el ultrasonido
  pinMode(pinEcho, INPUT);//PIN8 entrada,recoge el rebote del ultrasonido
  pinMode(verde,OUTPUT);// led verde como salida.
  pinMode(rojo,OUTPUT);//led rojo como salida
  pinMode(amarillo,OUTPUT);//led amarillo como salida.
  pinMode(sonido,OUTPUT);//el zumbador como salida.
}
void loop(){
  digitalWrite(pinTrig,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);//esperamos 5 microsegundos.
  digitalWrite(pinTrig, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);//esperamos 10 microsegundos.
  tiempo=pulseIn(pinEcho, HIGH);//
  distancia= int(0.017*tiempo); //establecemos la ditancia en 0.017*tiempo y la distancia medida en cm
  Serial.println("Distancia ");//En la consola aparece la palabra distancia.
  Serial.println(distancia);
  Serial.println(" cm");//En la consola aparece la palabra cm
  delay(1000);//esperamos 1000ms
    if(distancia>30){//creamos una condicional
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  noTone(sonido);
    delay(10);//si la distancia es mayor que 30 cm todos los led estan apagados y esperamos 10 ms.

    }else
    {
      if(distancia>20d&&distancia<30 span="">
  
    digitalWrite(rojo,LOW);
    digitalWrite(verde,HIGH);
    digitalWrite(amarillo,LOW);
    tone(sonido,tonoc,1000);
    delay(10);//si la distancia es mayor de 20 cm y menor que 30 cm solo se encience el led verde y espera 10 ms.
      }
      else{
        if(10<=distancia&&distancia<20 span="">
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,HIGH);
  digitalWrite(verde,LOW);
  tone(sonido,tonob,100);
  delay(10);//si la distancia es mayor o igual que 10 cm y menos que 20 cm ,se enciende el del amarillo y cambia el tono y el tiempo del zumbador.
  }
      else{
  
  if(distancia<10 span="">
  digitalWrite(rojo,HIGH);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  tone(sonido,tonoc,10);
    delay(10);si la distancia  es manor que 10 cm, solo se enciende el led rojo y esperamos 10 ms y cambia el tono y el tiempo del zumbador
  }
    
  }
      }
}


viernes, 22 de marzo de 2019

Actividad 3. Potenciómetro y servo.

#include
Servo miservo;
int pos=0;  //establecemos la posición en 0.
int val;  //creamos la variable val.
#include //incluimos la librería del servo.
Servo servo;  //nombramos al servomotor.
int pot = 3;  //entrada analógica del potenciometro
void setup() {
  Serial.begin(9600);  //comunicación de la placa con el ordenador a una velocidad 9600 bits por segundo.
  servo.attach(9); //salida del servo en el Pin 9.
}
void loop() {
  int valorpot= analogRead(pot); //creamos la variable valorpot, que es igual a la variable potencia (pot).
  val=map(valorpot,0,1023,0,180);  //establecemos que val puede comprender valores entre 0 y 180, tomando como referencia el valorpot.
  Serial.print(val);  //aparece en el monitor el ángulo de giro
  servo.write(val);  //el servo describe en su movimiento el valor de la variable val.
  delay(100); //espera de 100ms.
}

Actividad 2. Limpiaparabrisas

Limpiaparabrisas.

#include        //Incluimos la librería del Servo.
#define pinServo 9   
Servo miservo;         
int pos=0;              //establecemos la variable entera "pos" con la que nos referimos a la posición de giro.   
void setup() {
    miservo.attach(pinServo);        //declaramos la salida del sevo
}
void loop() {
    for (pos=0; pos<=170; pos=pos+45); {        //Establecemos que el giro comience en la posición 0 y que vaya hasta las 90 170 aumentando la posicion en 45.
       miservo.write(pos);                     //movemos el servo en un sentido
       delay(800);                         //Cada movimiento se produce cada 800ms.
    }
    for (pos=170; pos>=10; pos=pos-1); {
       miservo.write(pos);                   //movemos el servo en el otro sentido
       delay(500);             //Cada movimiento se produce cada 500ms.
    }

}

viernes, 15 de marzo de 2019

Actividad 1 Servomotores

Giros determinados por mí.

#include    //Incluimos la librería del Servo.
Servo miservo;     
int pos = 0;    //establecemos la variable entera "pos" con la que nos referimos a la posición de giro.
void setup(){ 
  miservo.attach(9);  //Decretamos el Pin donde está conectado el Servo.
}
void loop() { 
for (pos=0; pos<=90; pos+=45)  {   //Establecemos que el giro comience en la posición 0 y que vaya hasta las 90 aumentando la posición +45 por cada movimiento.
  miservo.write(pos); //se establece que lo que debe describir el servo es la variable "pos".
  delay(500);      //Cada movimiento se produce cada 500ms.
for(pos=45;pos<=180;pos+=10){   //Establecemos que el giro comience en la posición 45 y que vaya hasta las 180 aumentando la posición +10 por cada movimiento.
  miservo.write(pos);
  delay(300);                        //Cada movimiento se produce cada 300ms.
}
}


Barrera aparcamiento.

#include    //Incluimos la librería del Servo.
Servo miservo;     
int pos = 0;    //establecemos la variable entera "pos" con la que nos referimos a la posición de giro.
void setup(){ 
  miservo.attach(9);  //Decretamos el Pin donde está conectado el Servo.
}
void loop() { 
for (pos=0; pos<=90; pos+=90)  {   //Establecemos que el giro comience en la posición 0 y que vaya hasta las 90 con un solo movimiento.
  miservo.write(pos); //se establece que lo que debe describir el servo es la variable "pos".
  delay(5000);      //Cada movimiento se produce cada 5000ms.
}

lunes, 4 de junio de 2018

Mole Mash

El MoleMash es un juego que consiste en intentar golpear un mole o topo el cual se mueve al azar por toda la pantalla. Si le das al topo correcto suma 1 punto y si le das al equivocado perderás y si das a la pantalla sin contactar con el correcto contará como un fallo. Gana si se llega a 10 impactos y se pierde si se llega a 10 fallos. Existe además la posibilidad de que el topo vaya a mayor o menor velocidad.