byte val = 0; int speed1 = 9; int speed2 = 10; int g1a = 4; int g1b = 5; int g2a = 7; int g2b = 6; void stop() { digitalWrite(g1a, LOW); digitalWrite(g1b, LOW); analogWrite(speed1, 0); digitalWrite(g2a, LOW); digitalWrite(g2b, LOW); analogWrite(speed2, 0); } void izquierda(int iz) { //stop(); //delay(100); digitalWrite(g1a, HIGH); digitalWrite(g1b, LOW); //digitalWrite(g2a, LOW); //digitalWrite(g2b, LOW); analogWrite(speed2, 0); /*for (int i=64; i <= iz; i=i+10){ analogWrite(speed1, i); delay(100); } */ analogWrite(speed1, iz); } void derecha(int der) { //stop(); //delay(100); digitalWrite(g2a, HIGH); digitalWrite(g2b, LOW); //digitalWrite(g1a, LOW); //digitalWrite(g1b, LOW); analogWrite(speed1, 0); /*for (int i=64; i <= der; i=i+10){ analogWrite(speed2, i); delay(100); } */ analogWrite(speed2, der); } void retrocede(int re) { stop(); //delay(100); digitalWrite(g2a, HIGH); digitalWrite(g2b, LOW); digitalWrite(g1a, HIGH); digitalWrite(g1b, LOW); /*for (int i=64; i <= re; i=i+10){ analogWrite(speed1, i); analogWrite(speed2, i); delay(100); } */ analogWrite(speed2, re); analogWrite(speed1, re); } void avanza(int av) { stop(); //delay(100); digitalWrite(g2a, LOW); digitalWrite(g2b, HIGH); digitalWrite(g1a, LOW); digitalWrite(g1b, HIGH); /*for (int i=64; i <= av; i=i+10){ analogWrite(speed1, i); analogWrite(speed2, i); delay(100); } */ analogWrite(speed2, av); analogWrite(speed1, av); } void setup() { Serial.begin(9600); delay(100); pinMode(g2a, OUTPUT); pinMode(g2b, OUTPUT); pinMode(g1a, OUTPUT); pinMode(g1b, OUTPUT); } void loop() { if (Serial.available()) { val = Serial.read(); switch (val) { case 0x80: avanza(255); break; case 0x81: retrocede(255); break; case 0x82: izquierda(255); break; case 0x83: derecha(255); break; case 0x84: stop(); break; } } }