Untitled

 avatar
unknown
plain_text
2 years ago
2.3 kB
5
Indexable
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

#define UP 4
#define DOWN 5
#define RIGHT 3
#define LEFT 7
#define BUTTON 6

#define YPIN A0
#define XPIN A1
#define SWPIN 2

boolean gra = false;
int punkty = 0;

void setup() {
  pinMode(SWPIN, INPUT);
  digitalWrite(SWPIN, HIGH);

  pinMode(UP, OUTPUT);
  pinMode(DOWN, OUTPUT);
  pinMode(RIGHT, OUTPUT);
  pinMode(LEFT, OUTPUT);
  pinMode(BUTTON, OUTPUT);

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;)
      ;
  }

  Serial.begin(115200);
  display.clearDisplay();
  display.display();
  delay(2000);
}

void loop() {
  if (!gra) {
    // Wyświetlanie informacji o rozpoczęciu gry
    display.clearDisplay();
    display.setTextSize(1);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 0);
    display.print("Naciśnij przycisk");
    display.setCursor(0, 10);
    display.print("aby rozpocząć grę!");
    display.display();

    // Oczekiwanie na naciśnięcie przycisku
    while (digitalRead(SWPIN) == HIGH) {
      // Odczekaj na naciśnięcie przycisku
    }
    gra = true;
    punkty = 0;
  }

  // Aktualizacja na ekranie OLED
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.print("Punkty: ");
  display.print(punkty);
  display.display();

  // Wyświetlanie informacji o stanie przycisku, osi X i Y
  Serial.print("\nPrzycisk: ");
  Serial.println(digitalRead(SWPIN));
  Serial.print("Oś X: ");
  Serial.println(analogRead(XPIN));
  Serial.print("Oś Y: ");
  Serial.println(analogRead(YPIN));
  Serial.print("\n\n");

  delay(1000); // Odczekaj przed następną rundą

  int ranNum = random(3, 7);
  digitalWrite(ranNum, HIGH);

  if (analogRead(YPIN) == 1023 && digitalRead(UP) == HIGH) {
    punkty += 1;
  } else if (analogRead(YPIN) == 0 && digitalRead(DOWN) == HIGH) {
    punkty += 1;
  } else if (analogRead(XPIN) == 0 && digitalRead(RIGHT) == HIGH) {
    punkty += 1;
  } else if (analogRead(XPIN) == 1023 && digitalRead(LEFT) == HIGH) {
    punkty += 1;
  }
}
Editor is loading...
Leave a Comment