Lil Gamer — Arduino Nano simulation

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

Components

Sketch code

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Arduino.h>
#include <Bounce2.h>


#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

const int b1 = 5;
const int b2 = 6;
Bounce debouncer = Bounce();




//Add buttons with pullup resistors

//add rotary encoder


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }
  pinMode(b1, INPUT_PULLUP);
  pinMode(b2, INPUT_PULLUP);
  debouncer.attach(b1);
  debouncer.interval(25);
  debouncer.attach(b2);
  debouncer.interval(25);


  Serial.println("SET UP COMPLETE");
  display.clearDisplay();
  display.display();
  delay(1000);

}

void loop() {
    int x = 1;
    debouncer.update();
    display.clearDisplay();
    display.fillTriangle(64, 10, 30, 50, 98, 50, SSD1306_WHITE);
    display.display();


  while(digitalRead(b1) == LOW){
    if(x==1){Serial.println("CIRCLE"); // only writes to serial once when pressed
    x++;
    }
    display.clearDisplay();
    display.fillCircle(64, 28, 10, SSD1306_WHITE);
    display.display();
    delay(10);
  }

  while(digitalRead(b2) == LOW){
    if(x==1){Serial.println("RECTANGLE");
    x++;
    }
    display.clearDisplay();
    display.fillRect(40, 20, 50, 20, SSD1306_WHITE);
    display.display();
    delay(10);
  }
}