Learn Arduino with Olympia Circuits
Learn Arduino
  • Home
    • Get Started
    • How to Use This Site
  • Electronics
    • The Basics
    • Electricity Flows like Water
    • Electronic Components
    • The Arno Board
  • Programming
    • The Basics
    • setup and loop Blocks
    • Variables and Arrays
    • Connecting with the Pins
    • Flow Control >
      • if Statement
      • Loops
      • Delays
    • Functions
    • Serial Communication
    • USB
    • Some Thoughts
  • Projects
    • Projects 1 >
      • 1.01: Blink
      • 1.02 Blink x2
      • 1.03 Blink Faster
      • 1.04 LED Chase!
      • 1.05 Wait To Blink
      • 1.06 Blink a Little Faster Now
      • 1.07 LED Fade
      • 1.08 RGB Blink
      • 1.09 Change RGB Color with SW1
      • 1.10 Fade RGB Colors
      • 1.11 Reaction Time Game
    • Projects 2 >
      • 2.01 Hello World
      • 2.02 Talk Back
      • 2.03 ASCII Values
      • 2.04 Ski Game
      • 2.05 Demonstration of the String Object
    • Projects 3 >
      • 3.01 Read the Potentiometer
      • 3.02 ASCIIbet Soup
      • 3.03 Potentiometer sets LED Brightness
      • 3.04 Potentiometer Sets Blink Rate
      • 3.05 LED Chase, Part II
    • Projects 4 >
      • 4.01 Bringing the Piezo to Life
      • 4.02 Controlling the Piezo with a Function
      • 4.03 Piezo C Major
      • 4.04 Piezo Greensleaves
      • 4.05 Piezo Metronome
      • 4.06 Piezo as an Input
      • 4.07 Piezo as an Input 2
      • 4.08 Metronome II
      • 4.09 Piezo Playback
      • 4.10 Piezo Fireworks
      • 4.11 Piezo Mosquito
    • Projects 5 >
      • 5.01 The Phototransistor
      • 5.02 Light and Sound
      • 5.03 Light and Sound II
    • Projects 6 >
      • 6.01 EEPROM
      • 6.02 I2C Address Scan
      • 6.03 Read the I2C Temperature Sensor
      • 6.04 High Temperature Alarm
    • Projects 7 >
      • 7.01 Arno Phone Home
      • 7.02 Keyboard Alphabet
      • 7.03 Move Mouse
      • 7.04 Draw Squares
    • Special Projects >
      • Bike Light Demo
  • References
    • Arno Pin Key
    • Arno Schematic
    • Project Index

Project 7.03 Move Mouse

This project demonstrates the Mouse object that it supported by the Arno and Arduino Leonardo.  Upload the sketch and then press the SW1. Watch the mouse pointer quickly move in a square pattern.

Concepts: Mouse object

Circuits:
  • Circuit 2


  • Select Sketch

    ///////////////////////////////////////////////////
    //Project 7.03 Move Mouse
    int SW1 = 1;
    void setup(){
    pinMode(SW1,INPUT);
    }
    void loop(){
    if(digitalRead(SW1)==LOW){
    Mouse.begin();
    for(int x = 0; x < 100; x++){
    Mouse.move(1,0,0);
    }
    for(int x = 0; x < 100; x++){
    Mouse.move(0,1,0);
    }
    for(int x = 0; x < 100; x++){
    Mouse.move(-1,0,0);
    }
    for(int x = 0; x < 100; x++){
    Mouse.move(0,-1,0);
    }
    }//end if for SW1
    } //end loop()
    ///////////////////////////////////////////////////

    At the top of the loop() block, we wait until SW1 is pressed.  Then we create an instance of the Mouse object:

      if(digitalRead(SW1)==LOW){

        Mouse.begin();

    Next we use the Mouse.move command to move the mouse pointer.  Mouse.move has three arguments: the number of pixels to move in the horizontally direction (x-axis), the vertical direction (y-axis) and the amount to move the scroll wheel.  The point where the x and y values equal zero (the origin) is at the top-left corner of the screen.

    Within the if block, we first move 100 pixels to the right:

        for(int x = 0; x < 100; x++){

          Mouse.move(1,0,0);

        }

    Next we move down the screen:

        for(int x = 0; x < 100; x++){

          Mouse.move(0,1,0);

        }

    And back left:

        for(int x = 0; x < 100; x++){

          Mouse.move(-1,0,0);

        }

    And then back up the where we began:

        for(int x = 0; x < 100; x++){

          Mouse.move(0,-1,0);

        }

    That finished the if  block:

      }//end if for SW1

    We could have moved the mouse 100 pixels at a time (e.g, Mouse.move(100,0,0) ) but it can produce a jerky effect.  We instead chose to move the mouse pointer 1 pixel at a time within the for loops.

     

    Back to Projects 7

    Copyright Olympia Circuits LLC 2014. All Rights Reserved.