lunes, 8 de marzo de 2021

 PRÁCTICA COCHE: Realización de un movimiento en forma de cuadrado.

En esta práctica vamos a realizar un movimiento cuadrangular con un coche robótico a través de Arduino.

//Motor A//Se introducen como salidas los motores A y B

int ENA=11;

int IN1=9;

int IN2=8;

//Motor B

int ENB=5;

int IN3=7;

int IN4=6;

void setup() {

  //Declaro todos los pines como salidas

  pinMode(ENA,OUTPUT);

  pinMode(ENB,OUTPUT);

  pinMode(IN1,OUTPUT);

  pinMode(IN2,OUTPUT);

  pinMode(IN3,OUTPUT);

  pinMode(IN4,OUTPUT);


}


void Adelante(){//Declaro cómo se realizará el movimiento hacia delante con cada motor.

 //Direccion motor A

 digitalWrite(IN1, HIGH);

 digitalWrite(IN2, LOW);

 analogWrite(ENA,150);//Velocidad motor A

 //Direccion motor B

 digitalWrite(IN3,HIGH);

 digitalWrite(IN4,LOW);

 analogWrite(ENB,150);//Velocidad motor B

}


void Derecha(){//Declaro cómo realizará el coche el giro hacia la derecha con los motores.

 //Direccion motor A

 digitalWrite(IN1,HIGH);

 digitalWrite(IN2,LOW);

 analogWrite(ENA,100);//Velocidad motor A

 //Direccion motor B

 digitalWrite(IN3,LOW);

 digitalWrite(IN4,HIGH);

 analogWrite(ENB,50);//Velocidad motor B

}


void Parar(){//Declaro cómo se parará el coche.

 //Direccion motor A

 digitalWrite(IN1,LOW);

 digitalWrite(IN2,LOW);

 analogWrite(ENA,0);//Velocidad motor A

 //Direccion motor B

 digitalWrite(IN3,LOW);

 digitalWrite(IN4,LOW);

 analogWrite(ENB,0);//Velocidad motor B

}

void loop() {

  for(int i=0;i<=4;i++){// Introduzco la condición que utilizaremos para realizar el movimiento cuadrangular del coche, metiendo un tiempo de espera para la realización de cada función.

    Adelante();

    delay(500);

    Parar();

    delay(1000);

    Derecha();

    delay(500);

    Parar();

    delay(1000);

  }


}

miércoles, 24 de febrero de 2021

 PRÁCTICA 8: Radar de tramo utilizando 2 sensores infrarrojos.

En esta práctica mediante Arduino realizaremos el funcionamiento de un radar, utilizando 2 sensores infrarrojos, en el cual si pasa un objeto que supera una velocidad x, sonará un zumbador y se encenderá un led verde.

float tiempo1;//Se introducen como entradas y salidas el zumbador, el led verde, los sensores infrarrojos, y como variables la velocidad y los tiempos.

float tiempo2;

float tiempo;

float velocidad;

int zumbador=5;

int ledG=7;

int sensorPin1=11;

int sensorPin2=9;


void setup() {

  Serial.begin(9600);//Declaro los pines como salidas y entradas.

  pinMode(sensorPin1,INPUT);

  pinMode(sensorPin2,INPUT);

  pinMode(zumbador,OUTPUT);

  pinMode(ledG,OUTPUT);


}


void loop() {

  int IR1=0;//Introduzco 2 nuevas variables y las declaro.

  IR1 =digitalRead(sensorPin1);

  int IR2=0;

  IR2=digitalRead(sensorPin2);

  if (IR1==LOW)//Declaro una condicionante, mediante la cual indico que si detecta un objeto el cual se esté moviendo, que empiece a contar un tiempo a partir de su aparición.

  {

    tiempo1=millis();

  }

  if (IR2==LOW)//Declaro esta condicionante para explicar que en el momento en el que pase el objeto por el segundo sensor, termine de contar el tiempo y calcule la velocidad utilizando el tiempo y la distancia que ha recorrido. 

  {

     tiempo2=millis();

     tiempo=tiempo2-tiempo1;

     velocidad=4/tiempo;

    Serial.println(velocidad,4);


  if (velocidad>=0.004)//En esta condicionante declaro qué sucederá si un objeto supera la velocidad determinada. Si la supera, el zumbador sonará y el led verde se encenderá, si no se cumple, no funcionará nada.

  {

    tone(zumbador,6000);

    digitalWrite(ledG,HIGH);

  }

  else{

    noTone(zumbador);

    digitalWrite(ledG,LOW);

  }




}

}

jueves, 11 de febrero de 2021

 PRÁCTICA 7: Sensor de una línea negra por medio de un sensor infrarrojos.

En esta práctica mediante Arduino realizaremos la detección mediante un sensor infrarrojos de una línea negra, haciendo que un servomotor de 180º se mueva y un zumbador suene si se ve dicha línea negra.

#include <Servo.h>//Se le da a Arduino cómo debe funcionar el servomotor.

Servo myservo;//Se introducen como entradas y salidas el zumbador, el servomotor y el sensor infrarrojos.

int sensorPin=9;

int zumbador=5;

void setup() {

  Serial.begin(9600);//Declaro los pines como salidas y entradas. 

  pinMode(sensorPin,INPUT);

  myservo.attach(7);

  pinMode(zumbador,OUTPUT);


}


void loop() {

  int value=0;//Introduzco una nueva variable

  value=digitalRead(sensorPin);//Declaro dicha variable

  if (value==LOW)//Declaro una condicionante, si esta se cumple significará que el sensor infrarrojos ha detectado la línea negra, haciendo que el zumbador suene y que el servomotor se mueva. Si no se cumple, el servomotor y el zumbador no funcionarán

  {

    Serial.println("Aparece negro");

    for (int i=0;i<=180;i++)//En esta condicionante declaro cómo se va a mover el servomotor.

    {

      myservo.write(i);

      delay(10);

    }

    tone(zumbador,4000);

  }

  else

  {

    Serial.println("No aparece negro");

    myservo.write(0);

    noTone(zumbador);

  }

  delay(1000);


}

martes, 2 de febrero de 2021

 PRÁCTICA 6: Diseño de un parktronic con Arduino utilizando un ultrasonido

Esta práctica consiste en un parktronic, utilizando leds de color rojo, amarillo y verde, un zumbador, y un sensor de ultrasonido.

long distancia;//Se introducen como entradas y salidas los pines y el sensor de ultrasonido y como variables la distancia y el tiempo.

long tiempo;

int pinTrig=9;

int pinEcho=8;

int pinG=7;

int pinY=6;

int pinR=5;

int zumbador=3;

void setup() {

  Serial.begin(9600);//Declaro los pines como salidas y entradas.

  pinMode(pinTrig,OUTPUT);

  pinMode(pinEcho,INPUT);

  pinMode(pinG,OUTPUT);

  pinMode(pinY,OUTPUT);

  pinMode(pinR,OUTPUT);

  pinMode(zumbador,OUTPUT);


}


void loop() {

  digitalWrite(pinTrig,LOW);//Declaro el funcionamiento del ultrasonido, así como las variables tiempo y distancia.

  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)//Declaro una condicionante, si se cumple, se realizará lo introducido, pero si no se cumple, se buscará otra de las condiciones que se sitúan dentro de esta condicionante, con el fin de observar si alguna de ellas se cumple.

  {

    digitalWrite(pinG,HIGH);

    digitalWrite(pinY,LOW);

    digitalWrite(pinR,LOW);

    noTone(zumbador);

  }

  else

  {

    if ((distancia<30) && (distancia>20))

  {

    digitalWrite(pinY,HIGH);

    digitalWrite(pinG,LOW);

    digitalWrite(pinR,LOW);

    tone(zumbador,1500);

  }

   else{

      if ((distancia<20) && (distancia>10))

  {

    digitalWrite(pinR,HIGH);

    digitalWrite(pinG,LOW);

    digitalWrite(pinY,LOW);

    tone(zumbador,4000);

  }

  else{

        

  

    for(int i=0;i<=5;i++){//Con esta condicionante, el led rojo realizará un parpadeo si se cumple lo anterior

      digitalWrite(pinR,HIGH);

      delay(100);

      digitalWrite(pinR,LOW);

    }

    digitalWrite(pinG,LOW);

    digitalWrite(pinY,LOW);

    tone(zumbador,7000);

  }

  }

  

  }

 


  }

miércoles, 27 de enero de 2021

 PRÁCTICA 5: FUNCIONAMIENTO DE UN PARKING DOMÓTICO

En esta práctica realizaremos el funcionamiento de un parking domótico mediante el uso de 3 leds, 2 botones y un servomotor.

#include <Servo.h>//Se le da a la placa de Arduino como debe interactuar el servomotor


Servo myservo;//Se introducen como salidas y entradas los pines y el servomotor


int pausa=1000;

int boton1=6;

int boton2=7;

int PinG=8;

int PinY=9;

int PinR=10;


void setup() {

  myservo.attach(11);//Declaro los pines como salidas y entradas.

  pinMode(boton1,INPUT);

  pinMode(boton2,INPUT);

  pinMode(PinG,OUTPUT);

  pinMode(PinY,OUTPUT);

  pinMode(PinR,OUTPUT);

  Serial.begin(9600);


}


void loop() {

  digitalWrite(PinR,HIGH);

  myservo.write(0);//Declaro los botones y cómo es el estado normal del servomotor, teniendo el led rojo encendido y el servomotor en su estado original

  int estado_boton1=digitalRead(boton1);

  int estado_boton2=digitalRead(boton2);

  Serial.println(estado_boton1);

  Serial.println(estado_boton2);

  if((estado_boton1==HIGH) || (estado_boton2==HIGH))//Introduzco una condicionante, si se cumple, se realizará el funcionamiento, encendiendo el led verde y apagando el led rojo, sino, no empezará dicho funcionamiento y permanecerá el led rojo encendido.

  {

    digitalWrite(PinR,LOW);

    digitalWrite(PinG,HIGH);

    for(int b=0;b<=90;b++)//Introduzco esta condicionante para realizar el funcionamiento de este mecanismo, de manera que el servomotor se colocará a 90º y se parará en esa posición

    {

      myservo.write(b); 

      delay(50);

    }

    delay(pausa);

    for(int i=0;i<=4;i++)//Introduzco esta condicionante para que el led verde parpadeará indicando la bajada del servomotor a su estado original

    {

      digitalWrite(PinG,HIGH);

      delay(500);

      digitalWrite(PinG,LOW);

      delay(500);

    }

    for(int pos=90;pos>=0;pos-=5)//Introduzco esta condicionante para indicar la bajada del servomotor a su estado original. Mientras se realiza esto, el led amarillo parpadeará

    {

      myservo.write(pos);

      delay(100);

      digitalWrite(PinY,HIGH);

      delay(100);

      digitalWrite(PinY,LOW);

      delay(100);

    }

    

  }

  digitalWrite(PinR,HIGH);//Una vez terminado todo el funcionamiento, volverá a su estado normal, teniendo el led rojo encendido y el servomotor en su estado original

  delay(pausa);


}

miércoles, 16 de diciembre de 2020

PRÁCTICA 4: Sistema de funcionamiento de un semáforo a partir del uso de leds.

En esta práctica realizaremos el funcionamiento de un semáforo mediante el uso de leds de diferentes colores y un botón para que pase de una fase a otra.

 int boton=9; //Se introducen los pines de salida y entrada.

int PinRC=10;

int PinYC=11;

int PinGC=12;

int PinRP=7;

int PinGP=5;

void setup() {

  pinMode(boton,INPUT); //Declaro los pines como salidas y entradas.

  pinMode(PinRC,OUTPUT);

  pinMode(PinYC,OUTPUT);

  pinMode(PinGC,OUTPUT);

  pinMode(PinRP,OUTPUT);

  pinMode(PinGP,OUTPUT);

  Serial.begin(9600);


}


void loop() {

  digitalWrite(PinGC,HIGH);

  digitalWrite(PinRP,HIGH);

  int estado_boton=digitalRead(boton);

  Serial.println(estado_boton);

  while(digitalRead(boton)==true)// Introduzco una condicionante, mientras se cumpla se realizará el funcionamiento. Si no se cumple, permanecerá de forma permanente el led verde del coche y el led rojo del peatón encendidos.

  {

    digitalWrite(PinGC,LOW);

    for(int i=o;i<=5;i++)

    {

      digitalWrite(PinYC,HIGH);

      delay(500);

      digitalWrite(PinYC,LOW);

      delay(500);

    }

    digitalWrite(PinRP,LOW);

    digitalWrite(PinRC,HIGH);

    digitalWrite(PinGP,HIGH);

    delay(1000);

    for(int i=0;i<=5;i++)

    {

      digitalWrite(PinGP,HIGH);

      delay(500);

      digitalWrite(PinGP,LOW);

      delay(500);   

    } 

   digitalWrite(PinRC,LOW);

}

}

miércoles, 2 de diciembre de 2020

 PRÁCTICA 3: Creación de colores mediante el uso de un led RGB.

En esta práctica se realizará la formación de colores mediante el utilizamiento de un led RGB.

void setup() {

  for (int i=3; i<7; i++)// Se mete una condicionante, si se cumple, se declarará como salida el pin

  {

    pinMode(i,OUTPUT);

  }


}


void Color(int G, int B, int R) {// Se introducen 3 variables, cada una con un pin de salida y un valor                                                           comprendido entre 0 y 255.

  analogWrite(3, R);

  analogWrite(5, B);

  analogWrite(6, G);


}

void loop() {// Se introducen colores al azar, formando un color a partir del led RGB.

  Color(random(200), random(100), random(150));

  delay(400);

}

jueves, 26 de noviembre de 2020

 PRÁCTICA 2: SIMULACIÓN DEL COCHE FANTÁSTICO

En esta práctica se realiza una simulación de las luces del coche fantástico utilizando leds de color blanco, amarillo, verde y rojo.

int i=6;//Se inserta una variable con el valor 6. 

int j=9;//Se inserta una variable con el valor 9.

void setup() {

  pinMode(6,OUTPUT);//Declaro los pines como salidas.

  pinMode(7,OUTPUT);

  pinMode(8,OUTPUT);

  pinMode(9,OUTPUT);

}


void loop() {

  for(i=6;i<=9;i++)//Se marca el pin de salida, el pin al que llega y el sentido al que se dirige.

  {

    digitalWrite(i,HIGH);//Se enciende el led blanco durante 0´2 segundos.

    delay(200);

    digitalWrite(i,LOW);//Se apaga el led blanco.

    

  }//Se encienden y apagan los leds amarillo y verde durante 0´2 segundos, al igual que el rojo.

  digitalWrite(9,LOW);//Se apaga el led rojo.

  for(j=9;j>=6;j--)//Se marca el pin de salida, el pin al que llega y el sentido al que se dirige.

  {

    digitalWrite(j,HIGH);//Se enciende el led rojo durante 0´2 segundos.

    delay(200);

    digitalWrite(j,LOW);//Se apaga el led rojo.

    

  }//Se encienden y apagan los leds verde y amarillo durante 0´2 segundos, al igual que el blanco.

  digitalWrite(6,LOW);//Se apaga el led blanco.

}

jueves, 12 de noviembre de 2020

PRÁCTICA 1: SEMÁFORO

 En esta práctica se simula el sistema de funcionamiento de un semáforo, utilizando leds de color rojo, amarillo y verde, junto a 3 resistores de 220 ohmios, uno en cada led.

void setup() {

  pinMode(11,OUTPUT);//Declaro los pines como salidas.

  pinMode(9,OUTPUT);

  pinMode(7,OUTPUT);


}


void loop() {

  digitalWrite(11,HIGH);//Se enciende el led rojo durante 5 segundos.

  delay(5000);

  digitalWrite(11,LOW);//Se apaga el led rojo.

  digitalWrite(9,HIGH);//Se enciende el led amarillo y se apaga 3 veces, funcionando como un intermitente. Dura 0´5 segundos cada encendido.

  delay(500);

  digitalWrite(9,LOW);

  delay(500);

  digitalWrite(9,HIGH);

  delay(500);

  digitalWrite(9,LOW);

  delay(500);

  digitalWrite(9,HIGH);

  delay(500);

  digitalWrite(9,LOW);

 digitalWrite(7,HIGH);//Se enciende el led verde durante 5 segundos.

 delay(5000);

 digitalWrite(7,LOW);//Se apaga.

}

 PRÁCTICA COCHE: Realización de un movimiento en forma de cuadrado. En esta práctica vamos a realizar un movimiento cuadrangular con un coc...