Professional Documents
Culture Documents
#include <Servo.h>.
long duracion;
int distancia;
int A;
// MOTOR
Servo servo; // Creates a servo object for controlling the servo motor
char BluetoothData;
char estado;
void setup() {
Serial.begin(9600);
pinMode (motorA,OUTPUT);//MOTOR L
pinMode (motorB,OUTPUT);//MOTOR R
void loop() {
// rotates the servo motor from 15 to 165 degrees
for(int i=15;i<=165;i++){
if (Serial.available() >0) {
estado = Serial.read();
Serial.println(estado);
if(estado=='F')
A=255;
if(estado=='W'){
//if (contador<=44){
analogWrite(motorA,A);
analogWrite(motorB,A);
// delay(900);
digitalWrite(motorA,LOW);
digitalWrite(motorB,LOW);
//delay(300);
// contador=0;
// estado='s';
if(estado=='S'){
//carro quieto;
digitalWrite(motorA,LOW);
digitalWrite(motorB,LOW);
//IZQUIERDA
if(estado=='D'|| distancia<=30){
//if(contador==19){
digitalWrite(motorA,LOW);
analogWrite(motorB,A);
//delay(470);
//DERECHA
if(estado=='A'){
//if(contador==19){
analogWrite(motorA,A);
digitalWrite(motorB,LOW);
// delay(470);
servo.write(i);
delay(20);
distancia = calcularDistancia();// Calls a function for calculating the distance measured by the
Ultrasonic sensor for each degree
Serial.print(","); // Sends addition character right next to the previous value needed later in the
Processing IDE for indexing
Serial.print("."); // Sends addition character right next to the previous value needed later in the
Processing IDE for indexing
for(int i=165;i>15;i--){
if (Serial.available() >0) {
estado = Serial.read();
Serial.println(estado);
if(estado=='F')
A=255;
if(estado=='W'){
//if (contador<=44){
analogWrite(motorA,A);
analogWrite(motorB,A);
// delay(900);
digitalWrite(motorA,LOW);
digitalWrite(motorB,LOW);
//delay(300);
// contador=0;
// estado='s';
if(estado=='S'){
//carro quieto;
digitalWrite(motorA,LOW);
digitalWrite(motorB,LOW);
//IZQUIERDA
if(estado=='D' || distancia<=30){
//if(contador==19){
digitalWrite(motorA,LOW);
analogWrite(motorB,A);
//delay(470);
}
//DERECHA
if(estado=='A'){
//if(contador==19){
analogWrite(motorA,A);
digitalWrite(motorB,LOW);
// delay(470);
servo.write(i);
delay(20);
distancia = calcularDistancia();
Serial.print(i);
Serial.print(",");
Serial.print(distancia);
Serial.print(".");
int calcularDistancia(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracion = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in
microseconds
distancia= duracion*0.034/2;
return distancia;