KIT COCHE DE ULTRASONIDOS
Materiales:
- Arduino
- Cables para conectar
- 2 servomotores
- Sensor de ultrasonidos
Características:
Voltaje de alimentación: +5VDC
Corriente en espera: <2mA
Corriente de trabajo: 15mAÁ
ngulo
eficaz: <15°
Rangos de distancia: 2cm a 400cm ó 1’’ a 13ft
Resolución: 0.3cm
Ángulo de medida:
30°
Ancho de pulso de disparo (Trigger Input Pulse Width): 10us se aplica pulso de
(10us en Trig)
Eco (Echo): salida del sensor.
Frecuencia de ultrasonido: 40KHz
PINES DE CONEXIÓN
VCC = +5VDC
Trig = Trigger input of Sensor
, entrada
del pulso de disparo para iniciar la
medición.
Echo = Echo output of Sensor
, pin de eco,
que retorna un pulso proporcional
a la distancia que rebota el sonido
- Sensor Bluetooth XBee 2mW (S2C)
Serial arduino
Características:
1. Chip de Bluetooth: XBee 2mW (S2C)
2.Protocolo Bluetooth
Códigos:
#include <Servo.h>
const int EchoPin = 5;
const int TriggerPin = 6;
Servo myservoDer;
Servo myservoIzq;
void setup() {
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
myservoDer.attach(10);
myservoIzq.attach(11);
}
void loop() {
int cm = ping(TriggerPin, EchoPin);
Serial.print("Distancia: ");
Serial.println(distanceCm);
if (distanceCm < 10){
retrocede();
gira();
}else{
avanza();
}
delay(1000);
}
int ping(int TriggerPin, int EchoPin) {
long duration, distanceCm;
digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos
distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm
return distanceCm;
}
void avanza (){
myservoDer.write(0);
myservoIzq.write(180);
}
void retrocede (){
myservoDer.write(180);
myservoIzq.write(0);
}
void gira (){
myservoDer.write(90);
myservoIzq.write(180);
}
Piezas para descargar:
Esquema:
#include <Servo.h>
const int EchoPin = 5;
const int TriggerPin = 6;
Servo myservoDer;
Servo myservoIzq;
void setup() {
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
myservoDer.attach(10);
myservoIzq.attach(11);
}
void loop() {
int cm = ping(TriggerPin, EchoPin);
Serial.print("Distancia: ");
Serial.println(distanceCm);
if (distanceCm < 10){
retrocede();
gira();
}else{
avanza();
}
delay(1000);
}
int ping(int TriggerPin, int EchoPin) {
long duration, distanceCm;
digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos
distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm
return distanceCm;
}
void avanza (){
myservoDer.write(0);
myservoIzq.write(180);
}
void retrocede (){
myservoDer.write(180);
myservoIzq.write(0);
}
void gira (){
myservoDer.write(90);
myservoIzq.write(180);
}
Piezas para descargar:
Esquema:

Comentarios
Publicar un comentario