Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ledPin 13
- #define motorDerecha1 4
- #define motorDerecha2 5
- #define motorIzquierda1 2
- #define motorIzquierda2 3
- #define echoPin 6
- #define triggerPin 7
- char estado = 'q';
- void setup() {
- pinMode(ledPin, OUTPUT);
- pinMode(motorDerecha1, OUTPUT);
- pinMode(motorDerecha2, OUTPUT);
- pinMode(motorIzquierda1, OUTPUT);
- pinMode(motorIzquierda2, OUTPUT);
- pinMode(triggerPin, OUTPUT);
- pinMode(echoPin, INPUT);
- digitalWrite(ledPin, LOW);
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, LOW);
- digitalWrite(motorIzquierda2, LOW);
- Serial.begin(9600);
- }
- void loop() {
- long tiempo;
- long distancia;
- digitalWrite(triggerPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(triggerPin, LOW);
- tiempo = pulseIn(echoPin, HIGH);
- distancia = (tiempo/29)/3;
- Serial.println(distancia);
- Serial.println(estado);
- if(distancia <= 15) {
- digitalWrite(ledPin, HIGH);
- } else {
- digitalWrite(ledPin, LOW);
- }
- //adelante y evadir
- if(estado == 'w' && distancia <= 15) {
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, HIGH);
- digitalWrite(motorIzquierda1, HIGH);
- digitalWrite(motorIzquierda2, LOW);
- }
- //adelante
- if(estado == 'w' && distancia > 15) {
- digitalWrite(motorDerecha1, HIGH);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, HIGH);
- digitalWrite(motorIzquierda2, LOW);
- }
- //atras
- if(estado == 's') {
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, HIGH);
- digitalWrite(motorIzquierda1, LOW);
- digitalWrite(motorIzquierda2, HIGH);
- }
- //stop
- if(estado == 'q') {
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, LOW);
- digitalWrite(motorIzquierda2, LOW);
- }
- //derecha
- if(estado == 'd' && distancia <= 15) {
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, HIGH);
- digitalWrite(motorIzquierda1, HIGH);
- digitalWrite(motorIzquierda2, LOW);
- }
- if(estado == 'd' && distancia > 15) {
- digitalWrite(motorDerecha1, LOW);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, HIGH);
- digitalWrite(motorIzquierda2, LOW);
- }
- //izquierda
- if(estado == 'a' && distancia <= 15) {
- digitalWrite(motorDerecha1, HIGH);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, LOW);
- digitalWrite(motorIzquierda2, HIGH);
- }
- if(estado == 'a' && distancia > 15) {
- digitalWrite(motorDerecha1, HIGH);
- digitalWrite(motorDerecha2, LOW);
- digitalWrite(motorIzquierda1, LOW);
- digitalWrite(motorIzquierda2, LOW);
- }
- }
- void serialEvent() {
- if(Serial.available() > 0 ){
- int x = Serial.read();
- if(x>=97) {
- estado = (char) x;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement