jueves, 4 de junio de 2020

P.6. 3º trim. Servomotor y pulsador.

Servomotor y pulsador.

Hola, hoy vamos a realizar varios circuitos relacionados con un servomotor y un pulsador. El servomotor es un motor como dice su nombre que puedes programar para que gire hasta 180º y el pulsador es una clase de interruptor que hace que cuando lo pulses se desencadene una determinada acción. Aquí voy a enseñar y explicar un poco lo que vamos a hacer:

Circuito 1:
En este circuito vamos a hacer que un servomotor se active 90º al pulsar una vez el pulsador y después de 4 segundos, vuelva a su sitio.

Conexiones:
Código:
Aquí, en el código primero creamos una variable y decimos que es el valor que nos diga el pulsador, luego decimos que si el pulsador es igual a 1, es decir que si lo pulsamos, se mueve el servomotor 90 grados y espera 4 segundos para volver a su posición normal.

Simulación:
Circuito 2:
En este circuito, un podemos controlar con un potenciómetro un servomotor.

Conexiones:

Código:

Simulación:

sábado, 16 de mayo de 2020

P.5 3ºtrim. Potenciómetro y led RGB

Potenciómetro y led RGB

Hoy voy a enseñaros a hacer dos cosas: controlar un led con un potenciómetro y programar un semáforo con un led RGB.

Potenciómetro:
Primero, aquí tenéis una captura de todas las conexiones:
Y ahora una captura del código con una explicación:
Es un código muy simple como podeis ver, indica que el pasador 11, que es donde está el led tenga el valor de el pasador analógico A0, es decir, el valor del potenciómetro(0-1024) entre 4 para que puedan adaptarse las 1024 posibilidades a las 255 que permite el led.

Por último os dejo aquí una simulación en funcionamiento:

Semáforo con led RGB:
Ahora dejo aquí primero las conexiones:
Y la captura del código con su explicación:

Aquí se indica que los pasadores donde está cada color primario del RBG primero se juntan y forman este color verde, luego en ámbar y por último en rojo. Además, se espera un determinado tiempo en cada acción para simular un semáforo.

Finalmente, aquí tenéis la simulación:

miércoles, 29 de abril de 2020

P.4 3ºtrim. Sensor de inclinación

Sensor de inclinación:

Hoy vamos a hacer un sensor de inclinación con tinkercad para determinar con dos leds si un objeto se inclina a la derecha o a la izquierda.
Para ello hay que hacer:
-Conexiones:
Aquí hay dos sensores de inclinación cada uno hacia un lado distinto, tenemos que programar que cuando en la simulación inclinemos cada sensor a izquierda y derecha, se encienda un led rojo o verde dependiendo del lado al que se incline.

-Código:
Aquí en el código podemos ver que he creado dos variables, una para cada lado correspondiendo a los pasadores donde está cada sensor de inclinación. Al principio indicamos que si los dos sensores están inclinados o rector a la vez (igual), se apagan los led. 
Luego hay dos partes, una que dice cuando se enciende y se apaga el primer led y otro que dice lo mismo del otro led. Con este código logramos nuestro objetivo.

Simulación:

Por último os dejo aquí una simulación para que veáis como funciona.

martes, 21 de abril de 2020

P.3 3ºtrim. Medidor de distancia/ultrasonido

Medidor de distancias o ultrasonido

Hola a todos, en esta entrada he realizado un medidor de distancias mediante un sensor de ultrasonidos. He elegido una opción difícil y por eso hay 3 leds y no solo uno, así puedo medir tres distancias a la vez.

Circuito:

Código:
Bloques:


Texto:

int distancia1 = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)
{
  pinMode(triggerPin, OUTPUT);  // Clear the trigger
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // Sets the trigger pin to HIGH state for 10 microseconds
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  // Reads the echo pin, and returns the sound wave travel time in microseconds
  return pulseIn(echoPin, HIGH);
}

void setup()
{
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(7, OUTPUT);
}

void loop()
{
  distancia1 = 0.01723 * readUltrasonicDistance(10, 9);
  if (distancia1 < 50) {
    digitalWrite(3, HIGH);
  } else {
    digitalWrite(3, LOW);
  }
  if ((distancia1 < 50) < (distancia1 < 100)) {
    digitalWrite(5, HIGH);
  } else {
    digitalWrite(5, LOW);
  }
  if ((distancia1 < 100) < (distancia1 < 150)) {
    digitalWrite(7, HIGH);
  } else {
    digitalWrite(7, LOW);
  }
  delay(10); // Delay a little bit to improve simulation performance
}
Vídeo simulación:

martes, 24 de marzo de 2020

P.1 3ºtrim Tinkercad

Tinkercad
Aquí está la simulación de tinkercard del sensor de luz versión 1:

Imagen circuito:
Imagen bloques:

lunes, 2 de marzo de 2020

P2 2º trim. Sensor infrarrojo

Descripción
-Es: un sensor que emite ondas de luz por debajo de la luz visible por el ser humano.
-Tiene un emisor  y un receptor.
-En bitbloq hay un bloque de componentes para leer el infrarrojo.
-Tiene estas 3 conexiones:

OUT GND Vcc
Out: pin digital
Vcc: voltaje de corriente continua, no se controla(5v)
Gnd: toma de tierra
-Ejemplos de uso: robot de limpieza, puertas del ascensor, mando de televisión...
Propuesta de código infrarrojo:
  • propuesta código: detectar zona blanca u oscura. Si está sobre zona blanca se apaga un led, si está sobre zona oscura se enciende el led.
Bloques:


Explicación:
Para empezar, he declarado una variable llamada infra. En la sección de bucle he declarado la variable igual a el valor del sensor infrarrojo. He puesto una espera de 200 ms y a continuación he indicado que si la variable es igual a cero (no le llegan valores) se enciende el led. Después he colocado más bloques que hacen que si la variable es igual a 1(recibe los infrarrojos), el led si apaga.
Todo esto hace que cuando no le llegan valores, en superficie negra, se enciende el led y cuando le llegan, en superficie blanca, se apaga el led. 

Código:

/***   Included libraries  ***/




/***   Global variables and function definition  ***/
const int sensor_infrarrojo = 12;
const int led = 13;

/*
Héctor
*/
float Infra = 1;



/***   Setup  ***/void setup(){
pinMode(sensor_infrarrojo, INPUT);
pinMode(led, OUTPUT);

}


/***   Loop  ***/void loop(){Infra = digitalRead(sensor_infrarrojo);
delay(200);
if(Infra == 1){digitalWrite(led,HIGH);
}
else {digitalWrite(led,LOW);
}
}




martes, 4 de febrero de 2020

P1 2º trim. Sensores arduino

SENSORES ARDUINO
  • Ultrasonido:
Explicación: Son sensores ideales para la medida de distancias, este sensor utiliza las propiedades de propagación del sonido para medir distancias, concretamente los ultrasonidos que son ondas sonoras que los humanos no escuchamos. El sensor envía una onda calcula la distancia que hay desde el objeto en el que ha rebotado la onda.

Ejemplos: se pueden usar para radares, para medir la distancia entre coches al aparcar...

  • Sensor de rotación:



Explicación: es un potenciómetro conectado a una resistencia fija y con un conector de tres pines. Es un dispositivo giroscópico que mide la velocidad angular (medida velocidad de rotación) de un vehículo o objeto alrededor de su eje vertical.

Ejemplos: se puede usar para determinar la posición de un motor, también se usan en sistemas de control de estabilidad electrónicos de los coches.

  • Sensor de sonido:

Explicación: es un sensor con un micrófono, un amplificador y un potenciómetro. Capta cualquier sonido a su alrededor y lo convierte en una señal analógica. Este sensor detecta y capta sonidos.

Ejemplos: se puede usar para dar una orden (encender las luces), que reconozca el sonido y que reaccione de una determinada manera(encender un led por ejemplo). 

  • Sensor de humo:
Explicación: es un sensor que detecta humo y gas y puede ser calibrado a través de un potenciómetro.
Ejemplo: se puede usar para sistemas de detección de incendios.

  • Sensor de humedad:
Explicación: es un sensor que como su nombre indica, detecta la humedad/temperatura. Este sensor tiene una señal analógica. Además hay dos modelos, el DHT11 y22.
Ejemplo: se puede usar para cuando hay mucha humedad, se cierren las ventanas de una casa.

viernes, 31 de enero de 2020

P4. Proyecto sensor de luz versión 2

MEJORA

He realizado un código en el que un sensor de luz indica al led si encenderse o apagarse y con que potencia. Lo que hace que: cuanta más oscuridad haya, con mayor potencia se enciende el led.

CONEXIONES(Bit Bloq y Fritzing):




CÓDIGO:


/***   Included libraries  ***/

/***   Global variables and function definition  ***/
const int led_5 = 5;
const int sensor_de_luz_A1 = A1;

/*
Héctor
*/
float LUZ = 0;


/***   Setup  ***/void setup(){
pinMode(led_5, OUTPUT);
pinMode(sensor_de_luz_A1, INPUT);

Serial.begin(9600); 

}

/***   Loop  ***/void loop(){LUZ = analogRead(sensor_de_luz_A1);
Serial.println(LUZ); 

delay(200);
if(LUZ < 50){analogWrite(5, 255);
}
else if (LUZ < 150){analogWrite(5, 170);
}
else if (LUZ < 250){analogWrite(5, 90);
}
else if (LUZ < 350){analogWrite(5, 40);
}
else {digitalWrite(led_5,LOW);
}
}


EXPLICACIÓN:

-He añadido al sensor de luz un código que indica que el led se encienda con más o menos intensidad según la luz que el l.d.r reciba. Si hay más oscuridad, el led se enciende con más potencia.

-Como se puede ver, el código al principio es parecido a la versión 1. Pero ahora en vez de solo apagarse y encenderse, he añadido unos valores que indican que cuando el valor del sensor de luz es menor que un número que yo digo(50,100,250,350), indican al led (pin digital 5) que se encienda en un valor del 0 al 255 (valor analógico).
Esto causa que cuanta más oscuridad, el led se enciende con más potencia.

-Por último, si lo que he indicado no ocurre, el led se apaga.

-Además, he puesto dos bloques de código(serial printin...,serial begin...) que permiten ver en el ordenador los valores que está midiendo el l.d.r .

VÍDEO
Aquí os dejo un vídeo de el sensor de luz completo y en funcionamiento: