Tabla de contenido:

Robot de seguimiento y evitación de luz basado en Arduino: 5 pasos
Robot de seguimiento y evitación de luz basado en Arduino: 5 pasos

Video: Robot de seguimiento y evitación de luz basado en Arduino: 5 pasos

Video: Robot de seguimiento y evitación de luz basado en Arduino: 5 pasos
Video: ROBOTICA - ROBOT SIGUE LINEA - EVITA OBSTACULOS - Construccion muy Facil paso a paso 2024, Noviembre
Anonim
Robot de seguimiento y evitación de luz basado en Arduino
Robot de seguimiento y evitación de luz basado en Arduino

Este es un proyecto simple que sigue o evita la luz.

Hice esta simulación en Proteus 8.6 pro. Componentes necesarios: -1) Arduino uno.

2) 3 LDR.

3) 2 motores de engranajes de CC.4) Un servo.5) Tres resistencias de 1k.6) Un puente en H l290D7) Un interruptor de encendido y apagado [para cambiar la condición del programa]

8) Batería de 9v y 5v

Paso 1: Código Ardunio

El código Arduino se modifica un poco el 23 de febrero de 2016]

Este código está muy comentado, no quiero explicarlo, pero si necesita ayuda, no dude en ponerse en contacto conmigo en ([email protected])

Nota: -Utilizo dos condiciones en este programa, la primera para el seguimiento de la luz, y la segunda para evitar la luz.

En la medida en que se cumplan estas condiciones, el robot seguirá o evitará la luz. [Este es el valor mínimo de LDR que yo elijo. En luz normal, su rango es de 80 a 95, pero a medida que su intensidad aumenta, más y más voltajes inducen a través de él, ya que está trabajando en el principio del divisor de voltaje int a = 400; // Valor de tolerancia]

Paso 2: Archivos Proteus

Para descargar la biblioteca Arduino desde ese enlace

Paso 3: Cómo funciona su puente en H

Cómo funciona su puente en H
Cómo funciona su puente en H
Cómo funciona su puente en H
Cómo funciona su puente en H

El L293NE / SN754410 es un puente en H muy básico. Tiene dos puentes, uno en el lado izquierdo del chip y otro en el derecho, y puede controlar 2 motores. Puede conducir hasta 1 amperio de corriente y operar entre 4.5V y 36V. El pequeño motor de CC que está utilizando en este laboratorio puede funcionar de manera segura con un voltaje bajo, por lo que este puente en H funcionará bien. El puente H tiene los siguientes pines y características: Pin 1 (1, 2EN) habilita y deshabilita nuestro motor ya sea que esté en HIGH o LOW Pin 2 (1A) es un pin lógico para nuestro motor (la entrada es HIGH o LOW) Pin 3 (1Y) es para uno de los terminales del motor El pin 4-5 es para tierra El pin 6 (2Y) es para el otro terminal del motor El pin 7 (2A) es un pin lógico para nuestro motor (la entrada es ALTA o BAJA) Pin 8 (VCC2)) es la fuente de alimentación para nuestro motor, esto debe tener el voltaje nominal de su motor El pin 9-11 está desconectado ya que solo está usando un motor en este laboratorio El pin 12-13 es para tierra El pin 14-15 está desconectado El pin 16 (VCC1) es conectado a 5V. Arriba hay un diagrama del puente H y qué pines hacen qué en nuestro ejemplo. Con el diagrama se incluye una tabla de verdad que indica cómo funcionará el motor de acuerdo con el estado de los pines lógicos (que configura nuestro Arduino).

En este proyecto, el pin de habilitación se conecta a un pin digital en su Arduino para que pueda enviarlo ALTO o BAJO y encender o apagar el motor. Los pines lógicos del motor también están conectados a los pines digitales designados en su Arduino para que pueda enviarlo ALTO y BAJO para que el motor gire en una dirección, o BAJO y ALTO para que gire en la otra dirección. La tensión de alimentación del motor se conecta a la fuente de tensión del motor, que suele ser una fuente de alimentación externa. Si su motor puede funcionar con 5 V y menos de 500 mA, puede usar la salida de 5 V de Arduino. La mayoría de los motores requieren un voltaje más alto y un consumo de corriente más alto que este, por lo que necesitará una fuente de alimentación externa.

Conecte el motor al puente H Conecte el motor al puente H como se muestra en la segunda imagen.

O, si está utilizando una fuente de alimentación externa para el Arduino, puede utilizar el pin Vin.

Paso 4: Cómo funciona LDR

Ahora, lo primero que puede necesitar más explicación es el uso de las resistencias dependientes de la luz. Las resistencias dependientes de la luz (o LDR) son resistencias cuyo valor cambia según la cantidad de luz ambiental, pero ¿cómo podemos detectar la resistencia con Arduino? Bueno, realmente no puedes, sin embargo, puedes detectar niveles de voltaje usando los pines analógicos, que pueden medir (en uso básico) entre 0-5V. Ahora puede preguntarse "Bueno, ¿cómo convertimos los valores de resistencia en cambios de voltaje?", Es simple, hacemos un divisor de voltaje. Un divisor de voltaje toma un voltaje y luego genera una fracción de ese voltaje proporcional al voltaje de entrada y la relación de los dos valores de las resistencias utilizadas. La ecuación para la cual es:

Voltaje de salida = Voltaje de entrada * (R2 / (R1 + R2)) Donde R1 es el valor de la primera resistencia y R2 es el valor de la segunda.

Ahora bien, esto todavía plantea la pregunta "¿Pero qué valores de resistencia tiene el LDR?", Buena pregunta. Cuanto menor sea la cantidad de luz ambiental, mayor será la resistencia, más luz ambiental significa menor resistencia. Ahora, para los LDR particulares que usé, su rango de resistencia era de 200 a 10 kilo ohmios, pero esto cambia para otros diferentes, así que asegúrese de buscar dónde los compró e intente encontrar una hoja de datos o algo por el estilo. caso R1 es en realidad nuestro LDR, así que recuperemos esa ecuación y hagamos un poco de magia matemática (magia eléctrica matemática). Ahora primero tenemos que convertir esos valores de kiloohmios en ohmios: 200 kilo-ohmios = 200, 000 ohmios 10 kilo-ohms = 10, 000 ohms Entonces, para encontrar cuál es el voltaje de salida cuando estamos en tono negro, conectamos los siguientes números: 5 * (10000 / (200000 + 10000)) La entrada es de 5 V, ya que eso es lo que estamos obteniendo. desde el Arduino. Lo anterior da 0.24V (redondeado). Ahora encontramos cuál es el voltaje de salida en brillo máximo usando los siguientes números: 5 * (10000 / (10000 + 10000)) Y esto nos da 2.5V exactamente. Entonces, estos son los valores de voltaje que vamos a ingresar en los pines analógicos del Arduino, pero estos no son los valores que se verán en el programa, "¿Pero por qué?" Tu puedes preguntar. El Arduino utiliza un chip analógico a digital que convierte el voltaje analógico en datos digitales utilizables. A diferencia de los pines digitales en el Arduino que solo pueden leer un estado ALTO o BAJO siendo 0 y 5V, los pines analógicos pueden leer de 0-5V y convertir esto en un rango numérico de 0-1023.. De hecho, podemos calcular qué valores leerá el Arduino.

Debido a que esta será una función lineal, podemos usar la siguiente fórmula: Y = mX + C Donde; Y = Digital ValueWhere; m = pendiente, (subida / carrera), (valor digital / valor analógico) Donde; C = Intersección en Y La intersección en Y es 0, por lo que nos da: Y = mXm = 1023/5 = 204.6 Por lo tanto: Valor digital = 204.6 * Valor analógico Entonces, en tono negro, el valor digital será: 204.6 * 0.24 Lo que da aproximadamente 49. Y en brillo máximo será: 204.6 * 2.5 Lo que da aproximadamente 511. Ahora, con dos de estos configurados en dos pines analógicos, podemos crear dos variables enteras para almacenar sus valores dos y hacer operadores de comparación para ver cuál tiene el valor más bajo, girando el robot en esa dirección.

Recomendado: