Luc Paquin
Published © CC BY-NC

Project #12: Robotics - Joystick - Mk35

Project #12: Robotics - Joystick - Mk35

BeginnerFull instructions provided1 hour18
Project #12: Robotics - Joystick - Mk35

Things used in this project

Hardware components

SparkFun RedBoard Qwiic
SparkFun RedBoard Qwiic
×1
SparkFun Thumb Joystick
×1
SparkFun Thumb Joystick Breakout
SparkFun Thumb Joystick Breakout
×1
L298N DC Motor Driver Module
×1
Motor DC
×2
SparkFun Power Switch
×1
18650 Battery Holder (11 Volts)
×1
18650 Battery
×3
DFRobot Micro USB Cable
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing

Code

DL2603Mk01p.ino

Arduino
/****** Don Luc Electronics © ******
Software Version Information
Project #12: Robotics - Joystick - Mk35
12-35
DL2603Mk01p.ino
DL2603Mk01
1 x SparkFun RedBoard Qwiic
1 x Thumb Joystick
1 x SparkFun Thumb Joystick Breakout
1 x L298N DC Motor Driver Module
2 x Motor DC
1 x Power Switch
1 x 18650 Battery Holder (11 Volts)
3 x 18650 Battery
1 x Micro USB Cable
*/

// Include the Library Code

// Joystick
// Vertical
const int VERT = A0;
int vertical;
// Horizontal
const int HORIZ = A1;
int horizontal;
// Sel
const int SEL = 7;
int select;

// Motor DC 1 
int motor1pin1 = 2;
int motor1pin2 = 3;

// Motor DC 2
int motor2pin1 = 4;
int motor2pin2 = 5;

// Software Version Information
String sver = "12-35";

void loop() {

  // is Joystick
  isJoystick();

}

getJoystick.ino

Arduino
// Joystick
// is Joystick
void isJoystick(){

  // Vertical
  vertical = analogRead(VERT);

  // Moving Forward
  if (vertical < 20) {
      
    // Moving Forward
    digitalWrite(motor1pin1, HIGH);
    digitalWrite(motor1pin2, LOW);
    digitalWrite(motor2pin1, HIGH); 
    digitalWrite(motor2pin2, LOW);    
    
  }
  
  // Moving Backwards
  if (vertical > 500) {
    
    // Moving Backwards
    digitalWrite(motor1pin1, LOW);
    digitalWrite(motor1pin2, HIGH);
    digitalWrite(motor2pin1, LOW); 
    digitalWrite(motor2pin2, HIGH);
  
  }

  // Horizontal
  horizontal = analogRead(HORIZ);

  // Moving Right
  if (horizontal < 25){

    // Moving Right
    digitalWrite(motor1pin1, LOW);
    digitalWrite(motor1pin2, HIGH);
    digitalWrite(motor2pin1, LOW); 
    digitalWrite(motor2pin2, LOW);

  }

// Moving Left
  if (horizontal > 500 ){

    // Moving Left
    digitalWrite(motor1pin1, LOW);
    digitalWrite(motor1pin2, LOW);
    digitalWrite(motor2pin1, LOW); 
    digitalWrite(motor2pin2, HIGH);

  }

  // LOW (0) if pressed
  select = digitalRead(SEL);

  // Select
  if (select == LOW) {
      
    // Stop
    digitalWrite(motor1pin1, LOW);
    digitalWrite(motor1pin2, LOW);
    digitalWrite(motor2pin1, LOW); 
    digitalWrite(motor2pin2, LOW);

  }

}

setup.ino

Arduino
// Setup
void setup()
{
 
  // Motor DC 1
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);

  // Motor DC 2
  pinMode(motor2pin1, OUTPUT);
  pinMode(motor2pin2, OUTPUT);

  // SEL Input
  pinMode(SEL, INPUT_PULLUP);

}

Credits

Luc Paquin
70 projects • 5 followers
Teacher, Instructor, E-Mentor, R&D and Consulting -Programming Language -Microcontrollers -IoT -Robotics -Machine Learning -AI -Sensors

Comments