Pascal Cotret
Published © GPL3+

Controlling a low-cost robot with two potentiometers

This tutorial will present a simple way to control directions of robot with two potentiometers and several wires.

BeginnerProtip1 hour2,754
Controlling a low-cost robot with two potentiometers

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Cytron 2A Motor Shield
×1
Arexx ARX-CH09 Robot base
×1
4xAA battery holder
4xAA battery holder
×1
Jumper wires (generic)
Jumper wires (generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Fritzing schematic

Fritzing image

Code

Two-potentiometer command

Arduino
int roue_droite = 10;
int roue_gauche = 11;
int potentiometre_direction = 2;
int potentiometre_vitesse = 3;

void setup() {
  pinMode(roue_droite, OUTPUT);
  pinMode(roue_gauche, OUTPUT);
  pinMode(potentiometre_direction, INPUT);
  pinMode(potentiometre_vitesse, INPUT);
}

void loop() {
  if (analogRead(potentiometre_direction) <= 100)
    { analogWrite(roue_droite,255 );
    analogWrite(roue_gauche, 0);
    delay(10);
  }
  if (analogRead(potentiometre_direction) >100 && analogRead(potentiometre_direction) < 200)
    { analogWrite(roue_droite,230);
    analogWrite(roue_gauche,25 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >200 && analogRead(potentiometre_direction) < 300)
    { analogWrite(roue_droite,200 );
    analogWrite(roue_gauche,55 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >300 && analogRead(potentiometre_direction) < 400)
    { analogWrite(roue_droite,175 );
    analogWrite(roue_gauche,80 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >400 && analogRead(potentiometre_direction) < 500)
    { analogWrite(roue_droite,155 );
    analogWrite(roue_gauche, 100);
    delay(10);
    }
  if (analogRead(potentiometre_direction) >500 && analogRead(potentiometre_direction) < 600) 
    { analogWrite(roue_droite,0 );
    analogWrite(roue_gauche,0 );
    delay(10);
    }
    if (analogRead(potentiometre_direction) >600 && analogRead(potentiometre_direction) < 700) //aller  droite
    { analogWrite(roue_droite,100 );
    analogWrite(roue_gauche,155 );
    delay(10);
    }
    if (analogRead(potentiometre_direction) >700 && analogRead(potentiometre_direction) < 800)
    { analogWrite(roue_droite, 80);
    analogWrite(roue_gauche,175 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >800 && analogRead(potentiometre_direction) < 900)
    { analogWrite(roue_droite,55 );
    analogWrite(roue_gauche,200 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >900 && analogRead(potentiometre_direction) < 1000)
    { analogWrite(roue_droite,25);
    analogWrite(roue_gauche,230 );
    delay(10);
    }
  if (analogRead(potentiometre_direction) >1000 && analogRead(potentiometre_direction) < 1023)
    { analogWrite(roue_droite,0 );
    analogWrite(roue_gauche, 255);
    delay(10);
    }
}

Credits

Pierre Ruffy & Roxane Alexandre

Posted by Pascal Cotret

Comments