gimbal - v2 — Arduino Nano simulation

An interactive Arduino Nano circuit simulation you can run free in your browser on Velxio, by a36274595.

Components

Sketch code

#include <Servo.h>

Servo armHorizontal;
float positionHorizontal = 0.0;
float stepHorizontal = 1.0;

//vertical
Servo armVertical;
float positionVertical = 0.0;
float stepVertical = 1.0;

void setup() {

  // LED
  pinMode(13, OUTPUT);
  pinMode(5, INPUT_PULLUP);

  pinMode(A1, INPUT_PULLUP); // left
  pinMode(A2, INPUT_PULLUP); // right
  pinMode(A3, INPUT_PULLUP); // down
  pinMode(A4, INPUT_PULLUP); // up

  armHorizontal.attach(2);
  armVertical.attach(3);

  armHorizontal.write(positionHorizontal);
  armVertical.write(positionVertical);
}

void loop()
{
  // LED FIXED (this was wrong logic)
  digitalWrite(13, !digitalRead(5));

  // LEFT
  if (digitalRead(A1) == LOW) {
    positionHorizontal -= stepHorizontal;
    if (positionHorizontal < 0) positionHorizontal = 0;

    armHorizontal.write(positionHorizontal);
    delay(10);
  }

  // RIGHT
  if (digitalRead(A2) == LOW) {
    positionHorizontal += stepHorizontal;
    if (positionHorizontal > 180) positionHorizontal = 180;

    armHorizontal.write(positionHorizontal);
    delay(10);
  }

  // DOWN
  if (digitalRead(A3) == LOW) {
    positionVertical -= stepVertical;
    if (positionVertical < 0) positionVertical = 0;

    armVertical.write(positionVertical);
    delay(10);
  }

  // UP
  if (digitalRead(A4) == LOW) {
    positionVertical += stepVertical;
    if (positionVertical > 180) positionVertical = 180;

    armVertical.write(positionVertical);
    delay(10);
  }
}

More projects by a36274595