top of page

ROBOT MAGIC

CHAPTER Nine: Ray Gun Control Station

Make_RobotMagic_Cover_01jb.jpg

Copy + Paste this code to your Arduino Sketch:

Watercolor Stain
Untitled_Artwork.png

#include <Button.h>

 

/*

 

A momentary button is a component that, when pressed, 

connects two wires together like a switch, and when 

released, separates those two wires again. “Button.h” is a 

tiny library created for the Arduino to be able to read the 

state of a button. We create digital pin 5 as an input 

"Button button = Button(5,INPUT);” and use 

"byte pressCount = 0;” and "pressCount++;” to help count 

each time the button is pressed. Each time we press the 

button, a new case "case 1: -case 10:” is performed. Within 

those cases, we create our own custom blinking LED patterns.



 

*/

 

Button button = Button(5,INPUT);


 

int ONE = 12;

int TWO = 11;

int THREE = 10;

int FOUR = 9;

int FIVE = 8;


 

void setup(){


 

pinMode(ONE,OUTPUT);

pinMode(TWO,OUTPUT);

pinMode(THREE,OUTPUT);

pinMode(FOUR,OUTPUT);

pinMode(FIVE,OUTPUT);


 

}


 

// Keep count of the number of times you press the button.

byte pressCount = 0;

 

void loop()

{

 

   delay(10);

   

   if(button.uniquePress())

      pressCount++;

 

/* A SWITCH() STATEMENT KEEPS COUNT OF AN EVENT, AND

   MAKES THE ARDUINO DO DIFFERENT THINGS DEPENDING ON

   THE COUNT.

*/

   

   switch(pressCount)

   {

 

    /* WHEN THE BUTTON IS PRESSED (FIRST TIME), CASE 1 IS

          A RANDOM PATTERN OF BLINKING  */

          case 1:

          digitalWrite(FIVE, HIGH);

          delay(20);

          digitalWrite(FIVE, LOW);

          delay(40);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(30);

          digitalWrite(FOUR, HIGH);

          delay(20);

          digitalWrite(FOUR, LOW);

          delay(20);

          digitalWrite(TWO, HIGH);

          delay(20);

          digitalWrite(TWO, LOW);

          delay(50);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(20);

          digitalWrite(ONE, HIGH);

          delay(30);

          digitalWrite(ONE, LOW);

          delay(20);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (SECOND TIME), CASE 2

       STOPS AT THE COLOR BELOW */  

          case 2:

          digitalWrite(FOUR, HIGH);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (THIRD TIME), CASE 3

       BLINKS ALL THE LEDS "RANDOMLY" AGAIN */     

          case 3:

          digitalWrite(FIVE, HIGH);

          delay(20);

          digitalWrite(FIVE, LOW);

          delay(40);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(30);

          digitalWrite(FOUR, HIGH);

          delay(20);

          digitalWrite(FOUR, LOW);

          delay(20);

          digitalWrite(TWO, HIGH);

          delay(20);

          digitalWrite(TWO, LOW);

          delay(50);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(20);

          digitalWrite(ONE, HIGH);

          delay(30);

          digitalWrite(ONE, LOW);

          delay(20);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (FOURTH TIME), CASE 4

      STOPS AT THE COLOR BELOW!*/

          case 4:

          digitalWrite(TWO, HIGH);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (FIFTH TIME), CASE 5 IS

       MORE RANDOM BLINKING */

          case 5:

          digitalWrite(FIVE, HIGH);

          delay(20);

          digitalWrite(FIVE, LOW);

          delay(40);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(30);

          digitalWrite(FOUR, HIGH);

          delay(20);

          digitalWrite(FOUR, LOW);

          delay(20);

          digitalWrite(TWO, HIGH);

          delay(20);

          digitalWrite(TWO, LOW);

          delay(50);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(20);

          digitalWrite(ONE, HIGH);

          delay(30);

          digitalWrite(ONE, LOW);

          delay(20);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (SIXTH TIME), CASE 6

       STOPS AT THE COLOR BELOW! */

          case 6:

          digitalWrite(FIVE, HIGH);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (SEVENTH TIME), CASE 7 IS

       AGAIN "RANDOM BLINKING"*/

          case 7:

          digitalWrite(FIVE, HIGH);

          delay(20);

          digitalWrite(FIVE, LOW);

          delay(40);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(30);

          digitalWrite(FOUR, HIGH);

          delay(20);

          digitalWrite(FOUR, LOW);

          delay(20);

          digitalWrite(TWO, HIGH);

          delay(20);

          digitalWrite(TWO, LOW);

          delay(50);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(20);

          digitalWrite(ONE, HIGH);

          delay(30);

          digitalWrite(ONE, LOW);

          delay(20);

          break;

 

   /* WHEN THE BUTTON IS PRESSED (EIGHTH TIME), CASE 8

       STOPS AT THE FORCED COLOR BELOW! */

          case 8:

          digitalWrite(TWO, HIGH); // THIS COLOR IS FORCED!

          break;

 

   // BUTTON IS PRESSED (NINTH TIME) AGAIN "RANDOM BLINKING"

          case 9:  

          digitalWrite(FIVE, HIGH);

          delay(20);

          digitalWrite(FIVE, LOW);

          delay(40);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(30);

          digitalWrite(FOUR, HIGH);

          delay(20);

          digitalWrite(FOUR, LOW);

          delay(20);

          digitalWrite(TWO, HIGH);

          delay(20);

          digitalWrite(TWO, LOW);

          delay(50);

          digitalWrite(THREE, HIGH);

          delay(20);

          digitalWrite(THREE, LOW);

          delay(20);

          digitalWrite(ONE, HIGH);

          delay(30);

          digitalWrite(ONE, LOW);

          delay(20);

          break;


 

   /* WHEN THE BUTTON IS PRESSED (TENTH TIME), CASE 10

       STOPS AT THE COLOR BELOW! */

          case 10:  

          digitalWrite(ONE, HIGH);

          pressCount = 0;

          break;     

               

    }

}

Show us your finished projects! Use #robotmagic in your social media posts and tag Mario!

  • Facebook
  • Instagram
  • Twitter
  • YouTube
  • TikTok
bottom of page