martes, 16 de abril de 2019

Practica 7 sensor ultrasonido

Experimento con sensor de ultrasonido

En esta practica, vais apoder aprender como funciona un sensor de ultrasonido (HC-SR04). Funciona similarmente a los sensores de aparcamiento, ya que indica a la distancia a la que se encuentra el obstáculo como vais a apreciar en el video.
Nosotros en vez de reproducir un sensoer de aparcamiento, hemos hecho que a diversaas distancias se encienda un led distinto, hasta los 20 cm se encendera el led rojo; desde los 20cm, hasta los 50cm se encendera el led amarillo; y a partir de los 50cm se encendera el led verde.

Lo unico basico que necesitais para esta practica es poseer un sensor de ultrasonido, y la placa pero que se puede utilizar: buzzer, leds...












Ahora en podeuis ver el codigo de programacion que no es nada dificil, se basa en la parte del principio para dar nombre a los leds y al sensor; escribir bien el tiempo y las distancia para que arduino la calcule; y por ultimo redactar los periodos o los mon¡mentos en los que se han de encender los leds.


const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPinVerde = 13;
const int LedPinamarillo = 12;
const int LedPinRojo = 11;
float distancia;
long tiempo;
 
void setup() {
   Serial.begin(9600);
   pinMode(LedPinVerde, OUTPUT);
  pinMode(LedPinamarillo, OUTPUT);
  pinMode(LedPinRojo, OUTPUT);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}
 
void loop() {

  digitalWrite(TriggerPin, HIGH);  
  delayMicroseconds(10);
  digitalWrite(TriggerPin, LOW);


  tiempo = (pulseIn(EchoPin, HIGH)/2); 
  
  distancia = float(tiempo * 0.0343);

   Serial.print("Distancia: "); 
   Serial.println(distancia);


if (distancia < 20) {
  digitalWrite(LedPinVerde , LOW);
  digitalWrite(LedPinamarillo , LOW);
  digitalWrite(LedPinRojo , HIGH);
  Serial.println("rojo");
} else if ((distancia > 20) && (distancia < 50)) {
  digitalWrite(LedPinVerde , LOW);
  digitalWrite(LedPinamarillo , HIGH);
  digitalWrite(LedPinRojo , LOW);
  Serial.println("amarillo");
} else if (distancia > 50){
  digitalWrite(LedPinVerde , HIGH);
  digitalWrite(LedPinamarillo , LOW);
  digitalWrite(LedPinRojo , LOW);
  Serial.println("verde");
}

delay(1000);

}

lunes, 8 de abril de 2019

Practica 6 SERVOMOTOR

Experimento con servomotor

En esta practica vamos a experimentar con un servomotor. Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.
El servomotor es un motor electrico lleva incorporado un sistema de regulación que puede ser controlado tanto en velocidad como en posición.
Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos.
Podeis ver la imagen de fritzing del experimento, junto aua foto y un video de como funciona. Ademas del codigo de programacion para que podais modificarlos a vuestra manera.




 
#include <Servo.h>
Servo myservo;  
int pos = 0;    
int led = 2;
int led2 = 1;
void setup() {
  myservo.attach(9);
 pinMode(led, OUTPUT); 
 pinMode(led2, OUTPUT);  
}
void loop() {
  for (pos = 0; pos <= 180; pos += 1) { 
    myservo.write(pos);  
digitalWrite(led, HIGH); 
digitalWrite(led2, LOW);
    delay(15);                       
  }
  for (pos = 180; pos >= 0; pos -= 1) { 
    myservo.write(pos);
digitalWrite(led, LOW);
digitalWrite(led2, HIGH);
    delay(15);                       
  }
}

miércoles, 3 de abril de 2019

Practica 5 MONITOR

Experimento con el monitor


En esta practica vamos a alternar las luces mediante el monitor. Cuando escribamos una letra se encendera un led, y cuando le demos a otra letra se encendera el otro led y el otro se apagara.

Ahora os mostraremos un video, el fritzing y el codigo de progamacion para que podais modificarlo como de costumbre.












 int led = 13; 
 int led2 = 8;
 char leer; 
 int prendido=false; 
 void setup() 
 { Serial.begin(9600); 
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
 }
 
void loop()
 { 
 
 leer=Serial.read(); 
 if ( (leer=='f') && (prendido==false) ) {
 digitalWrite(led,HIGH);
 prendido=true; 
 }
 else if ( (leer=='v') && (prendido==true) ) {
 digitalWrite(led,LOW); 
 prendido=false; 
 }
  if ( (leer=='v') && (prendido==false) ) {
 digitalWrite(led2,HIGH);
 prendido=true; 
 }
 else if ( (leer=='f') && (prendido==true) ) {
 digitalWrite(led2,LOW); 
 prendido=false; 
 }
 }