Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sistema Transporte Paciente Arduino

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

#include <Servo.

h> //

Servo servo1; //

int izqA = 5;

int izqB = 6;

int derA = 9;

int derB = 10;

int vel = 255; // velocidad de los motores (0-255)

int estado = 'c'; // 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 duracion, distancia; // para Calcular distancia

void setup() {

Serial.begin(9600); // inicia el puerto serial para comunicación 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)

pinMode(13,OUTPUT);

servo1.attach (11,660,1400); // Asocia el servo1 al pin 11, define el min y max del ancho del
pulso

// eso depende del fabricante del servo

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

estado = Serial.read();

if(estado=='a'){ // boton desplazar al Frente

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, vel);

analogWrite(izqA, vel);

if(estado=='b'){ // boton IZQ

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, vel);

if(estado=='c'){ // boton Parar

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, 0);

if(estado=='d'){ // boton DER

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(izqA, 0);

analogWrite(derA, vel);

}
if(estado=='e'){ // Boton Reversa

analogWrite(derA, 0);

analogWrite(izqA, 0);

analogWrite(derB, vel);

analogWrite(izqB, vel);

if (estado =='f'){ // boton ON, se mueve sensando distancia

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

delay(0.01);

digitalWrite(ptrig, LOW);

duracion = pulseIn(pecho, HIGH); // lee el tiempo del Echo

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

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 600 milisegundos


analogWrite(izqB, 0);

analogWrite(derA, 0);

analogWrite(izqA, vel);

delay(600);

digitalWrite(13,LOW);

else{ // si no hay obstaculos se desplaza al frente

analogWrite(derB, 0);

analogWrite(izqB, 0);

analogWrite(derA, vel);

analogWrite(izqA, vel);

if(estado=='g'){ // boton SER, activa el Servomotor

servo1.write(30); // gira el servo a 30 grados

delay(1000); // espera 1000 mili segundos a que el servo llegue a la posición

servo1.write(90); // gira el servo a 90 grados

delay(700); // espera 700 mili segundos a que el servo llegue a la posicion

servo1.write(150); //Gira el servo a 150 grados

delay(700);

if(estado=='h'){ //programacion de los botones 13-10-9-6-5

digitalWrite(13,1);

if(estado=='m'){

digitalWrite(13,0);

}
if(estado=='i'){

digitalWrite(derB,1);

if(estado=='n'){

digitalWrite(derB,0);

if(estado=='j'){

digitalWrite(derA,1);

if(estado=='o'){

digitalWrite(derA,0);

if(estado=='k'){

digitalWrite(izqB,1);

if(estado=='p'){

digitalWrite(izqB,0);

if(estado=='l'){

digitalWrite(izqA,1);

if(estado=='q'){

digitalWrite(izqA,0);

También podría gustarte