Please enable JavaScript.
Coggle requires JavaScript to display documents.
TECNOLOGÍA (Programa saludo incial robot (Void loop (If (derecho…
TECNOLOGÍA
Programa saludo incial robot
Void loop
sensor = digitalRead(3);
Lo primero que hace el robot es avanzar
El programa lee el pin de la patilla D0 del sensor y lo guardamos en la variable sensor
digitalWrite(13, LOW);
izquierdo.write(150);
derecho.write(150);
delay(1000);
If
derecho.write(150);
delay(1000);
izquierdo.write(30);
Y luego un giro a la izquierda
digitalWrite(13, HIGH);
izquierdo.write(30);
Si se cumple el coche hará un reroceso
derecho.write(30);
Esta condición comprueba si el sensor está sobre negro
delay(1000);
Void setup
Declaraciones
En los pines 9 y 10 conectamos los motores (derecho.attach(9); izquierdo.attach(10);)
Declaramos el pin 3 como entrada de la patilla D0 del sensor infrarrojos (pinMode(3, INPUT);)
Pongo un diodo en el pin 13 que se encenderá cuando el sensor detecte negro (pinMode (13, OUTPUT);)
Motores parados
derecho.write(90)
delay(5000);
izquierdo.write (90);
Primero dejo los motores parados por 5 segundos
Bucle while
While( sensor == 0) {
izquierdo.write(30);
El bucle while hace que el robot vaya hacia atrás si no detecta el negro
derecho.write(150);
delay(15);
Volvemos a leer el sensor para ver si ha detectado el negro. Si no lo ha hecho, el bucle while se repetirá. Si lo detecta, el bucle no se repetirá
Después bucle while
izquierdo.write(150);
derecho.write(30);
Cuando el sensor detecte el negro, la variable sensor no será un 0 y el bucle while no se repetirá. Entonces, hago que avance
delay(1000);
Antes void setup
Declaramos una variable (int sensor = 0) que guardará un 0 si el sensor infrarrojos no detecta negro y un 1 si lo detecta
Declaramos los dos motores (Servo derecho; Servo izquierdo;)
Incluimos la librería servo (#include <Servo.h>)
Como conectar dos servomotores
Problema
Si lo hacemos es posible que puedan girar, pero no a la velocidad deseada y además la placa se reseteará continuamente.
La solución consiste en utilizar una placa protoboard y un portapilas independiente.
La placa Arduino no ofrece suficiente corriente como para poder mover dos servomotores a la vez.
Colocación
Placa protoboard
Todos los huecos de la placa están unidos por una placa metálica que va por dentro
Cables
Unimos el cable rojo del portapilas a una columna. A esa misma columna con otros dos cables conectamos el cable rojo de cada motor.
Unimos con un cable del ping GND de la placa de Arduino a una columna. A esa misma columna con otros dos cables conectamos el cable negro de cada motor y el cable negro del portapilas.
Por último unimos el cable blanco del motor derecho al pin 9 de la placa de Arduino y el cable blanco del motor izquierdo al pin 10.
Hay que desconectar el cable rojo del portátil es cuando nos esté trabajando con los motores
Solución del problema
Vamos a necesitar dos portapilas de 4 pilas cada uno.
Uno, el que tiene en su extremo un conector negro, lo conectaremos directamente a la placa Arduino.
El otro lo conectaremos a la placa protoboard para alimentar a los motores.
Servomotores giro continuo y funciones
Servomotores
Servomotor de giro continuo
Servomotor que gira de forma ilimitada en uno u otro sentido, pudiendo controlar la velocidad
Void setup
Pines PWM: 3, 3, 6, 9, 10, 11. Orden: Servo.attach (PWM)
Programación de los motores
Si escribimos Izquierdo.write desde 89 hasta 0 el motor girará en un sentido, de tal manera que cuanto más cercano estemos del 0, más rápido girará.
Si escribimos Izquierdo.write desde 91 hasta 180 el motor girará en el sentido contrario, de tal manera que cuanto más cercano estemos del 180, más rápido girará.
Antes del void setup
Para programar este tipo de motores, también tendremos que incluir en el programa la librería: #include <Servo.h>
Posteriormente, al estar haciendo un robot con dos motores tendremos que indicar que tendremos dos servos: Servo izquierdo y derecho
Funciones
Una función es una parte del código que se escribe fuera del void loop
Esta función se ejecutará cada vez que se la llame desde el void loop
Usos
Para tener mejor organizado y estructurado el código.
Para evitar escribir varias veces el mismo código.
Sensor de infrarrojos MH SERIES
Diodos
Uno emite una luz de infrarrojos , cuando ésta rebota contra un obstáculo
El otro diodo recibe el rebote.
Se usa para detectar el negro
Pines
GND (conectado a tierra)
DO (conectado como INPUT a un pin digital)
Vcc (conectado a 5 voltios)
Como funciona
El diodo emisor emite la luz infrarroja, ésta choca contra un obstáculo y la recibe el otro diodo
Cuando la luz infrarroja choque contra un color negro, como el negro absorbe todos los colores y no refleja ninguno, el diodo receptor no recibirá el rebote y el pin DO mandará un 1 a la placa de Arduino
Conexiones
El pin GND del sensor lo conectamos a GND, o bien en la placa protoboard o bien en la misma placa Arduino
El pin VCC del sensor lo conectamos a 5v EN LA PLACA ARDUINO
El PIN DO del sensor lo conectamos a cualquiera de los pines del 1 al 12 que tengamos libre