martes, 4 de febrero de 2020

Breve introducción a los sensores de arduino

Los sensores son aparatos que se utilizan para detectar diferentes cosas.
Estos son algunos ejemplos:

Sensor de luz:
Detecta cambios de luminosidad y cantidad de luz.
Ejemplos de uso:
Estos componentes eléctricos se pueden usar como activador de las farolas de la calle; el LDR está recibiendo luz durante el día, pero, por la noche (o cuando se nuble) deja de recibir luz y disminuyen los omnios, lo que hace que se encienda la bombilla.

Sensor de presión de fuerza:
sirve para detectar una fuerza aplicada en la membrana. Básicamente, al detectar una flexión en la membrana el sensor cambia su resistencia interna.


Ejemplos de uso:
Estos sensores se pueden usar en básculas y otros aparatos cuya función sea medir la masa.


Sensor de movimiento:
Un detector de movimiento, o sensor de presencia, es un dispositivo electrónico equipado de sensores que responden a un movimiento físico.
Ejemplos de uso:
Estos sensores son usados en mecanismos de seguridad o en circuitos cerrados de televisión. Yo personalmente tengo la idea de usar un sensor de movimiento para que me salude cuando entre en mi habitación.

Sensor de metano:
Un detector de gas es un aparato que detecta la presencia de gas en el aire y que, a una determinada concentración, emite una señal.

Ejemplos de uso:
Se pueden usar en minas para detectar tipos de gases peligrosos. También se puede hacer un detector de flatulencias, eso es algo muy curioso.

Muchas gracias y hasta pronto.

viernes, 31 de enero de 2020

Sensor de Luz V2 (definitivo)

Hola, hoy os voy a presentar la versión definitiva de mi sensor de luz V2.
Como recordareis, anteriormente hice y publiqué el prototipo de la versión número 2, en la cual explicaba los fundamentos de mi proyecto, he hecho algunos cambios y ahora funciona perfectamente; cuanta más luz reciba, menos luz recibe el LED, y viceversa.


Para este proyecto he usado:

.Una placa arduino uno


.Una placa "Protoboard"
.Un LED
.Un LDR

.2 resistencias; una de 220Ω y otra de 1000Ω



.5 cables arduino




-Para programarlo, he usado el programa "Bitbloq". Aquí esta la conexión:



El LED está conectado al pin 〜9, y la LDR al A1.



-El software de bloques que he usado es el siguiente:
Lo primero que he hecho ha sido declarar una variante a la que he llamado luminos en el apartado de "Variables globales y funciones".


En el apartado de "Instrucciones iniciales (Setup)", he añadido este Serial.begin(9600), para poder ver en el monitor los valores que está midiendo la LDR.




Este es el apartado de "Bucle principal (Loop)", donde está lo más interesante.


 -Para empezar, he ordenado que la variante sea el valor del sensor de luz, y he añadido un Serial.print(luminos) que tiene la misma utilidad que el Serial.begin(9600).

 -Después, mediante operaciones matemáticas, he encontrado la relación entre el pin digital y el pin analógico, que he declarado a la variable y posteriormente lo he invertido.

 -Tras esperar 10 ms, el valor de la variable se escribe en el LED. De esta manera, cuanta menos luz reciba el sensor, más se enciende la luz de forma progresiva.

 -Como quería que en algún momento el LED estuviese completamente encendido o apagado, declaré dos umbrales, uno para encenderlo a su máximo y otro para apagarlo; para conseguirlo usé los bloques de control "si" y "en cambio".


Este es el código de programación:

/***   Included libraries  ***/




/***   Global variables and function definition  ***/
const int led = 9;
const int sensor_de_luz = A1;

/*
LMP_16
*/
float luminos = 0;



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

    Serial.begin(9600);

}


/***   Loop  ***/
void loop() {
    luminos = analogRead(sensor_de_luz);
    Serial.println(luminos);

    luminos = luminos * 255 / 1024;
    luminos = 255 - luminos;
    delay(10);
    analogWrite(9, luminos);
    if (luminos > 200) {
        digitalWrite(led, HIGH);
    } else if (luminos < 30) {
        digitalWrite(led, LOW);
    }
}

Aquí podéis ver el montaje en "Fritzing":

Por último, os dejo un vídeo para que podáis comprobar lo bien que funciona.



Lo más interesante de mi proyecto es que la luminosidad del LED, aumenta de manera totalmente progresiva, y, de este modo no se percibe ningún cambio brusco de luz.

¡Muchas gracias y hasta la siguiente entrada!😁

domingo, 1 de diciembre de 2019

Sensor de luz V2 (prototipo)

Hoy voy a  intentar programar un sensor de luz que varíe progresivamente la luminosidad del led dependiendo de la luz que reciba el LDR.






Primero, he creado una variable a la que he llamado "luminos"


Luego, he hecho que la variable sea el valor del LDR.
Después, he declarado que mi variable sea el valor del LDR, multiplicado por 255 (salida analógica) y ese resultado dividido entre 1024 (entrada analógica).

Con esto, he mapeado el rango de valores, aunque también podemos usar este bloque, que lo hace directamente:




Para terminar, he mandado al pin 11 (donde esta conectado el led) la información de la variable "luminos" que es el valor resultado de la operación matemática anteriormente realizada.


Este es el final de la programación del prototipo numero uno del la segunda versión del sensor de luz, espero que os haya gustado.

Sensor de luz V1

Hoy os voy a enseñar a programar un sensor de luz con Bitbloq, de manera muy rapida y sencilla.

Primero, creamos una variable a la que llamamos LUZ




Luego, en el "bucle" hacemos que loque lea esa variable sea la información del LDR y ponemos un bloque de "esperar".
Después de esto, declaramos que si la variable luz es mayor que 500, el led se apagará.
Y, con otro bloque, decimos que si esto no ocurre, que se encienda el led.


Por último, añadimos unos códigos, que son los bloques verdes, para poder ver los valores que mide el LDR.




Estos bloques son la interpretación del código del arduino.



Bueno, ya estaría terminado nuestro sensor de luz, espero que os haya gustado, hasta la próxima.

¿Que es Bitbloq? (apuntes)

Bitbloq es un programa o página web para trabajar con placas como arduino a base de bloques sin tener que escribir el código a mano.



Así es por ejemplo, el arduino uno con una led  y un LDR

Y estos son los bloques con los que podemos programar.


Esto ha sido todo por hoy, próximamente os enseñaré como programar un sensor de luz.

arduino 1 (apuntes)


Hola, en la entrada de hoy os voy a explicar por encima como funciona un arduino uno.




GND à tierra (polo negativo)

5V  3V à fuente de corriente (polo positivo)
                  Sin control (suministro continuo)

Pin Digital (2-13) à salida/entrada digital
                                    Digital: 1= encendido/on
                                                  0= apagado/off

~ Salida analógica: salida regulable entre 0 (off) y 255 (máx-on)

Entrada analógica ( Analog in ) A0àA5 : reciben una señal variable
                                                                           0 (no recibe) ----- 1024 (señal máx)

Aquí os dejo un gráfico para que podáis ver la diferencia entre los pines analógicos y digitales