Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int In1 = 2; // pin motor derecho
- const int In2 = 3; // pin motor derecho
- const int In3 = 4; // pin motor izquierdo
- const int In4 = 5; // pin motor izquierdo
- const int ENA = 9; // habilita el motor derecho
- const int ENB = 10; // habilita el motor izquierdo
- const int PhotoSensorLeft = 6; // pin del Arduino conectado al sensor óptico Izquierdo
- const int PhotoSensorRight = 7; // pin del Arduino conectado al sensor óptico Derecho
- const int BLANCO = 0;
- const int NEGRO = 1;
- int vel = 100;
- const int velMax = 200;
- const int velMin = 140;
- void setup() {
- Serial.begin(9600);
- pinMode(In1, OUTPUT);
- pinMode(In2, OUTPUT);
- pinMode(In3, OUTPUT);
- pinMode(In4, OUTPUT);
- pinMode(ENA, OUTPUT);
- pinMode(ENB, OUTPUT);
- pinMode(PhotoSensorLeft, INPUT);
- pinMode(PhotoSensorRight, INPUT);
- /*digitalWrite(ENA,HIGH);
- digitalWrite(ENB,HIGH);*/
- vel = velMax;
- analogWrite(ENA, vel);
- analogWrite(ENB, vel);
- }
- void loop() {
- Serial.println(vel);
- int izq = digitalRead(PhotoSensorLeft);
- int drc = digitalRead(PhotoSensorRight);
- if (izq == BLANCO && drc == BLANCO) {
- if (vel > velMin) {
- vel = vel - 2;
- }
- } else if (izq != BLANCO && drc == BLANCO) {
- izquierda();
- if (vel < velMax) {
- vel = vel + 1;
- }
- } else if (izq == BLANCO && drc != BLANCO) {
- derecha();
- if (vel < velMax) {
- vel = vel + 1;
- }
- } else {
- adelante();
- if (vel < velMax) {
- vel = vel + 1;
- }
- }
- analogWrite(ENA, vel);
- analogWrite(ENB, vel);
- }
- void adelante() {
- digitalWrite(In1, HIGH);
- digitalWrite(In2, LOW);
- digitalWrite(In3, HIGH);
- digitalWrite(In4, LOW);
- }
- void atras() {
- digitalWrite(In1, LOW);
- digitalWrite(In2, HIGH);
- digitalWrite(In3, LOW);
- digitalWrite(In4, HIGH);
- }
- void derecha() {
- digitalWrite(In1, LOW);
- digitalWrite(In2, HIGH);
- digitalWrite(In3, HIGH);
- digitalWrite(In4, LOW);
- delay(10);
- }
- void izquierda() {
- digitalWrite(In1, HIGH);
- digitalWrite(In2, LOW);
- digitalWrite(In3, LOW);
- digitalWrite(In4, HIGH);
- delay(10);
- }
- void parar() {
- digitalWrite(In1, LOW);
- digitalWrite(In2, LOW);
- digitalWrite(In3, HIGH);
- digitalWrite(In4, HIGH);
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement