Quantcast
Channel: Arduino Forum - Latest topics
Viewing all articles
Browse latest Browse all 16055

Invalid Header File in tinkercad

$
0
0

Hello all! I am aware of the existence of other topics but it did not help my case.
Tinkercad returns the invalid header file error. Arduino IDE doesnt return any errors while compiling but the code is not running on the board even after checking the wiring multiple times.

#include <Wire.h>
#include <Adafruit_LiquidCrystal.h>

#define LCD_ADDRESS 0x27
#define LCD_COLUMNS 16
#define LCD_ROWS 2

Adafruit_LiquidCrystal lcd(LCD_COLUMNS, LCD_ROWS); 

int yellow = 3;
int green = 2;  
int blue = 1;   
int red = 0;    

int buzzer = 12;  
int buttonPins[] = {8, 9, 10, 11};  

int sequence[100];
int playerSequence[100];
int sequenceLength = 1;
int playerTurn = false;

void setup() {
  pinMode(yellow, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(red, OUTPUT);
  pinMode(buzzer, OUTPUT);

  for (int i = 0; i < 4; i++) {
    pinMode(buttonPins[i], INPUT_PULLUP);
  }

  lcd.begin(LCD_COLUMNS, LCD_ROWS); 
  lcd.setBacklight(1); 
  lcd.setCursor(0, 0);
  lcd.print("Simon Game");
  delay(1000);
  lcd.clear();

  randomSeed(analogRead(0)); 
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Level: " + String(sequenceLength));

  delay(1000);

  generateSequence();
  playSequence();

  playerTurn = true;
  int playerIndex = 0;

  while (playerTurn) {
    for (int i = 0; i < 4; i++) {
      if (digitalRead(buttonPins[i]) == LOW) {
        playButton(i);
        playerSequence[playerIndex] = i + 1;

        if (playerSequence[playerIndex] != sequence[playerIndex]) {
          playerTurn = false;
          gameOver();
          break;
        }

        playerIndex++;

        if (playerIndex == sequenceLength) {
          playerTurn = false;
          delay(500);
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Next Level!");
          delay(1000);
        }
        delay(200);
      }
    }
  }

  delay(500);
  sequenceLength++;
}

void generateSequence() {
  for (int i = 0; i < 100; i++) {
    sequence[i] = random(1, 5); 
  }
}

void playSequence() {
  for (int i = 0; i < sequenceLength; i++) {
    playButton(sequence[i] - 1);
    delay(500);
    turnOffButtons();
    delay(200);
  }
}

void playButton(int button) {
  switch (button) {
    case 0:
      digitalWrite(yellow, HIGH);
      tone(buzzer, 440, 300);
      break;
    case 1:
      digitalWrite(green, HIGH);
      tone(buzzer, 523, 300);
      break;
    case 2:
      digitalWrite(blue, HIGH);
      tone(buzzer, 659, 300);
      break;
    case 3:
      digitalWrite(red, HIGH);
      tone(buzzer, 783, 300);
      break;
  }
}

void turnOffButtons() {
  digitalWrite(yellow, LOW);
  digitalWrite(green, LOW);
  digitalWrite(blue, LOW);
  digitalWrite(red, LOW);
}

void gameOver() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Game Over!");
  lcd.setCursor(0, 1);
  lcd.print("Level: " + String(sequenceLength - 1));
  delay(2000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Restarting...");
  delay(2000);

  sequenceLength = 1;
  lcd.clear();
}

This is the tinkercad link if it offers any help.
Thank you for any help.

4 posts - 4 participants

Read full topic


Viewing all articles
Browse latest Browse all 16055

Latest Images

Trending Articles



Latest Images