miércoles, 17 de febrero de 2021

ULTRASONIDOS

//declaramos todos los puertos en los que están conectados los materiales de la práctica

long distancia;

long tiempo;

int pinTrig=8;

int pinEcho=9; 

int verde=10;

int amarillo=11;

int rojo=5;

int sonido=13;


void setup(){ //declaramos si cada puerto de los anteriores son entradas o salidas

  Serial.begin(9600);

  pinMode(pinTrig, OUTPUT);  

  pinMode(pinEcho, INPUT);

  pinMode(verde, OUTPUT);

  pinMode(amarillo, OUTPUT);

  pinMode(rojo, OUTPUT);

  pinMode(sonido, OUTPUT);

}

void loop(){ // declaramos que el ultrasonidos mide cada cierto tiempo a que distancia está el objeto y lo convierta en una medida en cm

  digitalWrite(pinTrig,LOW); 

  delayMicroseconds(5);

  digitalWrite(pinTrig, HIGH); 

  delayMicroseconds(10);

  tiempo=pulseIn(pinEcho, HIGH); 

  distancia= int(0.017*tiempo);

  Serial.println("Distancia ");

  Serial.println(distancia);

  Serial.println(" cm");

  delay(1000);

  if(distancia>30) { // declaramos que si la distancia es mayor que 30, solo se encienda el led verde y el zumbador no emita ningún sonido

   digitalWrite(verde,HIGH);

   digitalWrite(amarillo,LOW);

   digitalWrite(rojo,LOW);

   noTone(sonido);

  }

   else{ //declaramos que si la distancia es entre los 30 y los 15 cm, se encienda el led amarillo y el zumbador emita un sonido con una frecuencia de 400 Hz

   if(distancia<30&&distancia>15) {

    digitalWrite(verde,LOW);

    digitalWrite(amarillo,HIGH);

    digitalWrite(rojo,LOW);

    tone(sonido,400);

   }

    else{ //declaramos que si no cumple ninguna de las dos condiciones anteriores, el led rojo se encienda y el zumbador emita un sonido de 1000 Hz

      digitalWrite(verde,LOW);

      digitalWrite(amarillo,LOW);

      digitalWrite(rojo,HIGH);

      tone(sonido,1000);

    }

      }

  }

martes, 2 de febrero de 2021

BARRERA DE UN PARKING

//en este apartado definimos todos los puertos y conexiones 

#include<Servo.h>

Servo myservo;

int pausa=500;

int botona=9;

int botonn=10;

int verde=8;

int amarillo=7;

int rojo=6;


void setup() { //definimos cada uno de los objetos como entradas o salidas

 myservo.attach (2); 

 Serial.begin(9600); 

  pinMode (botona, INPUT);

  pinMode (botonn, INPUT);

  pinMode (verde, OUTPUT);

  pinMode (amarillo, OUTPUT);

  pinMode (rojo, OUTPUT);

}

void loop() { // definimos que el led rojo se encienda y el resto se apaguen y que la posición de la barrera sea 0 

 digitalWrite(rojo,HIGH);

 digitalWrite(amarillo,LOW);

 digitalWrite(verde,LOW);

 myservo.write(0);

 int estadoabre=digitalRead(botona);

 int estadocierra=digitalRead(botonn);

if((estadoabre==HIGH)||(estadocierra==HIGH)) { // declaramos que si cualquiera de los botones está pulsado, el led rojo se apaga, el led verde se enciende y la posición de la barrera suba hasta los 90 grados poco a poco

  digitalWrite(rojo,LOW);

  digitalWrite(verde,HIGH);

 for(int pos=0;pos<=90;pos++) {

  myservo.write(pos);

  }

  delay(pausa);

  for (int j=0;j<=7;j++) { // declaramos que el led verde parpadee 7 veces

   digitalWrite(verde,HIGH);

   delay(50);

   digitalWrite(verde,LOW);

   delay(50);

     } 

   for(int pos=90;pos>=0;pos-=10) { // declaramos que la posición de la barrera baje hasta la posición inicial 0 poco a poco y que a la vez el led amarillo parpadee

   myservo.write(pos);

   digitalWrite(amarillo,HIGH);

   delay(50);

   digitalWrite(amarillo,LOW);

   delay(50);

    

  } 

   

 }}