Sie sind auf Seite 1von 13

CURSO: CHASIS CARRO ROBOT CON ARDUINO UNO

Arduino es una compaa de hardware libre, y comunidad tecnolgica, que disea y


manufactura placas de desarrollo de hardware y software compuesta respectivamente por
circuitos impresos que integran un micro controlador, y un entorno de desarrollo (IDE) en
donde se programa cada placa. Arduino se enfoca en acercar y facilitar el uso de la electrnica y
programacin de sistemas embebidos en proyectos multidisciplinarios. Toda la plataforma,
tanto para sus componentes de hardware como de software son liberados bajo licencia de
cdigo abierto que permite libertad de acceso a los mismos.

Este consta de 14 entradas digitales configurables como entradas y/o salidas que operan a 5
voltios. Cada contacto puede proporcionar o recibir como mximo 40 mA. Los contactos 3, 5, 6,
9, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta un
mdulo a los pines (0 y 1), eso interferir con la comunicacin serial. tambin tiene 6
entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto, aceptan de 0
hasta 5 voltios.
ENTORNO DE DESARROLLO (IDE)

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje


de programacin de alto nivel Processing que es similar a C++.

Sintaxis bsica
Delimitadores:;, {}
Comentarios: //, /* */
Cabeceras: #define, #include
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Operadores de comparacin: ==, !=,
<, >, <=, >=

Estructuras de control
Condicionales: if, if...else, switch
case
Bucles: for, while, do. while

Constantes
HIGH/LOW: representan los niveles alto
y bajo de las seales de entrada y salida.
Los niveles altos son aquellos de 3 voltios o
ms.
INPUT/OUTPUT: entrada o salida.

E/S digital
pinMode(pin, modo).
digitalWrite(pin, valor).

E/S analgica
analogWrite(pin, valor)

Tiempo.
delay(ms)
delayMicroseconds(microsegundos)
PUENTE H (l298n)

Un Puente en H es un circuito electrnico que permite a un motor elctrico DC girar en


ambos sentidos, avance y retroceso. Son ampliamente usados en robtica y como
convertidores de potencia.

Un puente H se construye con 4 interruptores (mecnicos o mediante transistores).

Los puentes H estn disponibles como circuitos integrados, pero tambin pueden
construirse a partir de componentes a los cuales se les llama mdulos.
CONEXIONES Y PROGRAMACIN PARA LA PRUEBA DEL MDULO PUENTE
H L298N
1 Identificar los pines que irn conectados del el puente H l298n al arduino uno y su
alimentacin externa. Siguiendo el anterior diagrama de conexiones para el puente H y el
arduino uno se podr hacer la prueba de los motores del carrito con ayuda de una fuente
de alimentacin externa la cual le dar mayor potencia a los motores que si estuvieran
conectados al arduino directamente.

A continuacin el sketch de programacin para arduino para la prueba de los motores.

/*Cdigo arduino para la Prueba del Puente H (L293n)


int izqA = 5; /* Se define a que pines del arduino ira conectado
int izqB = 6; el Puente H(L293n)
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)

void setup() {
pinMode(derA, OUTPUT); /* Se define en qu estado se encontraran
pinMode(derB, OUTPUT); los pines del Arduino (OUTPUT= salida).
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}

void loop() {
analogWrite(derB, 0); // Detiene los Motores
analogWrite(izqB, 0);
delay (500);
analogWrite(derA, vel); // Frente 2 segundos
analogWrite(izqA, vel);
delay (2000);

analogWrite(derA, vel); // Derecha 0,5 segundos


analogWrite(izqA, 0);
delay (500);

analogWrite(derA, 0); // Izquierda 0,5 segundos


analogWrite(izqA, vel);
delay (500);
analogWrite(derA, 0); // Detiene los Motores
analogWrite(izqA, 0);
delay (500);
analogWrite(derB, vel); // Reversa 2 segundos
analogWrite(izqB, vel);
delay (2000);
}
SENSOR ULTRASONICO HC-04

El HC-SR04 es un sensor ultrasnico de bajo costo que no slo puede detectar si un


objeto se presenta, como un sensor PIR (Passive Infrared Sensor), sino que tambin
puede sentir y transmitir la distancia al objeto.

Tienen dos transductores, bsicamente, un altavoz y un micrfono.

Ofrece una excelente deteccin sin contacto (remoto) con elevada precisin y lecturas
estables en un formato fcil de usar.

El funcionamiento no se ve afectado por la luz solar o el material negro como


telmetros pticos (aunque acsticamente materiales suaves como telas pueden ser
difciles de detectar).

La velocidad del sonido en el aire (a una temperatura de 20 C) es de 343 m/s. (Por


cada grado centgrado que sube la temperatura, la velocidad del sonido aumenta en
0,6 m/s)
Prueba del Sensor ultrasnico (HC-SR04) al detectar un objeto a menos de 10cm enva
un pulso de alarma por el pin 13.

1.- Realiza las conexiones como se muestra en el diagrama.

2.- cargar la programacin del sketch del cdigo de arduino para la prueba del sensor

#define Pecho 2 /* Echo al Arduino pin 2


#define Ptrig 3 /* Trig al Arduino pin 3
long duracion, distancia;

void setup() {
Serial.begin (9600); // inicializa el puerto seria a 9600 baudios
pinMode(Pecho, INPUT); // define el pin 2 como entrada (echo)
pinMode(Ptrig, OUTPUT); // define el pin 3como salida (triger)
pinMode(13, 1); // Define el pin 13 como salida
}

void loop() {
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);

duracion = pulseIn(Pecho, HIGH);


distancia = (duracion/2) / 29; // calcula la distancia en centimetros

if (distancia >= 500 || distancia <= 0){ // si la distancia es mayor a 500cm o menor a 0cm
Serial.println("---"); // no mide nada
}
else {
Serial.print(distancia); // envia el valor de la distancia por el puerto serial
Serial.println("cm"); // le coloca a la distancia los centimetros "cm"
digitalWrite(13, 0); // en bajo el pin 13
}
if (distancia <= 10 && distancia >= 1){
digitalWrite(13, 1); // en alto el pin 13 si la distancia es menor a 10cm
Serial.println("Alarma......."); // envia la palabra Alarma por el puerto serial
}
delay(400); // espera 400ms para que se logre ver la distancia en la
consola
}
MODULO BLUETOOTH HC-06

Es un pequeo dispositivo que permite comunicar a la placa arduino con otros dispositivos
tales como celulares o computadoras, de forma inalmbrica.
DIAGRAMA COMPLETO DE CONEXIONES PARA EL CARRO CONTROLADO POR
BLUETOOTH
SKETCH: PROGRAMACIN DE LA PLACA ARDUINO PARA EL CONTROL DEL CARRO
ROBOT BLUETOOTH

El siguiente cdigo integra el funcionamiento de los mdulos puente H,


sensor ultrasnico y bluetooth hc06. El control se hace mediante la aplicacin
que debe ser instalada en un dispositivo android, el cual enviara de forma
inalmbrica comandos interpretado en el arduino como nmeros o letras, en
este caso se utilizaron las letas A,B.

int izqA = 5; // define el pin 5 como salida para el puente H


int izqB = 6; // define el pin 6 como salida para el puente H
int derA = 9; // define el pin 9 como salida para el puente H
int derB = 10; // define el pin 10 como salida para el puente H
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido

int pecho = 2; // define el pin 2 como (pecho) para el Ultrasonido


int ptrig = 3; // define el pin 3 como (ptrig) para el Ultrasonido
int duracin, distancia; // para Calcular distancia

void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicacin con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(pecho, INPUT); // define el pin 2 como entrada (pecho)
pinMode(ptrig,OUTPUT); // define el pin 3 como salida (ptrig)

void loop() {

if(Serial.available()>0){ // lee el bluetooth y almacena en estado


estado = Serial.read();
}
if (estado =='A'){ // Botn ON, se mueve censando distancia

digitalWrite(ptrig, HIGH); // genera el pulso de trigger por 10us


delay(0.01);
digitalWrite(ptrig, LOW);
duracin = pulseIn(pecho, HIGH); // Lee el tiempo del Echo
distancia = (duracin/2) / 29; // calcula la distancia en centmetros
delay(10);

if (distancia <= 15 && distancia >=2){ // si la distancia es menor de 15cm


digitalWrite(13,HIGH); // Enciende LED

analogWrite(derB, 0); // Parar los motores por 200 mili segundos


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
else{ // Si no hay obstculos se desplaza al frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
}
if(estado=='B'){ // Botn IZQ
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='a'){ // Botn Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='D'){ // Botn DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}

if(estado=='E'){ // Botn Reversa


analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
}
if (estado =='f'){ // Botn ON, se mueve censando distancia

digitalWrite(ptrig, HIGH); // genera el pulso de trigger por 10us


delay(0.01);
digitalWrite(ptrig, LOW);

duracin = pulseIn(pecho, HIGH); // Lee el tiempo del Echo


distancia = (duracin/2) / 29; // calcula la distancia en centmetros
delay(10);

if (distancia <= 15 && distancia >=2){ // si la distancia es menor de 15cm


digitalWrite(13,HIGH); // Enciende LED

analogWrite(derB, 0); // Parar los motores por 200 mili segundos


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
delay (200);

analogWrite(derB, vel); // Reversa durante 500 mili segundos


analogWrite(izqB, vel);
delay(500);

analogWrite(derB, 0); // Girar durante 1100 milisegundos


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
delay(1100);

}
else{ // Si no hay obstculos se desplaza al frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
}
if(estado=='g'){ // Botn OFF, detiene los motores no hace nada
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
}

Das könnte Ihnen auch gefallen