Tabla de contenido:

Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: 5 pasos
Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: 5 pasos

Video: Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: 5 pasos

Video: Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: 5 pasos
Video: MODULO I2C PARA PANTALLAS LCD (display 16x2) + CODIGO ARDUINO + CONEXIONES|| BIEN EXPLICADO 2024, Mes de julio
Anonim
Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python
Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python

Al ser Arduino una herramienta económica pero altamente eficiente y funcional, programarlo en Embedded C hace que el proceso de hacer proyectos sea tedioso. El módulo Arduino_Master de Python simplifica esto y nos permite realizar cálculos, eliminar valores basura y trazar un gráfico para una representación visual de los datos.

Si aún no conoce este módulo, instálelo usando el comando pip install Arduino_Master

No se preocupe si no sabe cómo usar este módulo, visite este enlace => Arduino_Master

Sin embargo, el código para este proyecto siempre estará disponible en este instructable.

Suministros

Para este proyecto, necesitará lo siguiente:

  1. Un arduino
  2. Una resistencia dependiente de la luz (LDR) y
  3. Python 3 instalado en su computadora.

Paso 1: Construyendo su circuito:

Construyendo su circuito
Construyendo su circuito

Usaremos el pin A1 de Arduino para obtener datos de entrada. También puede usar los pines 5V y GND de Arduino en lugar de la batería. Realice la conexión de la siguiente manera:

  1. Conecte un extremo del LDR al terminal positivo de una batería de 5V o al pin de 5V del Arduino.
  2. Conecte el otro extremo del LDR en paralelo al pin A1 y al terminal negativo de la batería o pin GND de Arduino.
  3. Use una resistencia para asegurarse de que toda la corriente no fluya hacia el GND, lo que provocaría que no obtenga una señal lo suficientemente fuerte como para detectarla en el terminal A1 del Arduino. (Estoy usando una resistencia de 10k ohmios).

Paso 2: Programa tu Arduino:

El módulo Arduino_Master utiliza Serial Monitor de Arduino para enviar y recibir datos. La ventaja de usar este módulo es que, una vez que programe su Arduino, puede cambiar el programa Python solo para diferentes proyectos, ya que programar en Python es comparativamente más fácil.

Código:

// La variable LDR_1 se usa para denotar el pin A1 de Arduino.

int LDR_1 = A1;

// Los datos recibidos de A1 se almacenarán en LDR_Value_1.

float LDR_Value_1;

Entrada de cadena;

configuración vacía ()

{pinMode (LDR_1, ENTRADA); // LDR_1 está configurado como pin INPUT. Serial.begin (9600); // La velocidad en baudios de comunicación se establece en 9600.}

bucle vacío ()

{if (Serial.available ()> 0) // si hay alguna entrada disponible en el monitor en serie, proceda. {input = Serial.readString (); // Lee la entrada como una cadena. si (entrada == "DATOS") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) es el factor de conversión para obtener el valor en Voltios. Serial.println (LDR_Value_1); // Si la entrada es igual a "DATOS", lea la entrada de LDR_1 e imprímalo en el Monitor serial. } más int i = 0; // si la entrada no es igual a "DATA", ¡no haga nada! }

}

Paso 3: Programación de Python para graficar datos desde Arduino:

Todos y cada uno de los LDR tendrían sus propios valores de resistencia y debemos recordar que no todos los componentes electrónicos son exactamente idénticos en funcionamiento. Por lo tanto, primero tenemos que encontrar el voltaje a diferentes intensidades de luz.

Sube el siguiente programa a tu Python IDE y ejecútalo:

Haga esto para diferentes intensidades de luz y use el gráfico para sacar una conclusión, por ejemplo, si la intensidad es menor que 1, la habitación está demasiado oscura. Para una intensidad entre 1 y 2, la habitación está considerablemente oscura. Para una intensidad superior a 2, la luz se enciende.

# Importando el módulo Arduino_Master

desde la importación Arduino_Master *

# recolectando datos

datos = filtro (ardata (8, apriete = falso, dinámico = verdadero, msg = "DATOS", líneas = 30), tipo_esperado = 'num', límite = [0, 5])

El límite # está establecido en 5 ya que estamos usando una batería de 5V.

# Trazando los valores

Gráfico (datos, stl = 'dark_background', label = 'Intensidad de luz')

Paso 4: Programa final para comprobar la intensidad de la luz en una habitación

Después de llegar a una conclusión a partir de los datos que obtuvo, cargue el siguiente programa y asegúrese de cambiar los límites según su conclusión.

# Importando el módulo Arduino_Master

from Arduino_Master import # recolectando datos de datos = filtro (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), esperaba_type = 'num', limit = [0, 5]) #clasificando datos basado en la conclusión info = para i en rango (len (datos)): intensidad = datos si intensidad 1 e intensidad = 2: info.append ('Luz encendida') # Trazando el gráfico. compGraph (datos, información, stl = 'dark_background', label1 = 'Intensidad de luz', label2 = 'Estado')

Paso 5: Resultado:

Resultado
Resultado

El programa tardaría uno o dos minutos en ejecutarse, ya que está leyendo 50 valores instantáneos de Arduino.

Si desea acelerar el proceso, intente cambiar el parámetro de líneas de la función ardata. Pero recuerde que cuanto menores sean las observaciones, menor será la calidad de los datos.

Nota: Si el gráfico completo en la imagen anterior no es visible, consulte el gráfico sobre la sección Introducción.

Recomendado: