Top.Mail.Ru
Ответы

Tinkercad вылезает ошибка

вылезает ошибка в коде, что делать?

По дате
По рейтингу
Аватар пользователя
Просветленный

Судя по ошибке в Tinkercad, проблема может быть связана с тем, что функции setup() и loop() объявлены с неправильной линковкой. Давайте исправим ваш код, чтобы он компилировался правильно. Вот как должен выглядеть исправленный код:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 #include <Arduino.h> 
 
const int buzzerPin = 9; 
const int buttonPin = 2; 
const int potPin = A0; 
 
int melodyIndex = 0; 
long lastDebounceTime = 0; 
long debounceDelay = 50; 
bool buttonState = false; 
bool lastButtonState = LOW; 
 
int melody[][2] = { 
  {262, 500}, {294, 500}, {330, 500}, {349, 500}, // Первая мелодия 
  {392, 500}, {440, 500}, {494, 500}, {523, 500}  // Вторая мелодия 
  // Добавьте больше мелодий, если нужно 
}; 
 
void setup() { 
  pinMode(buzzerPin, OUTPUT); 
  pinMode(buttonPin, INPUT); 
  Serial.begin(9600); 
} 
 
void loop() { 
  int reading = digitalRead(buttonPin); 
  if (reading != lastButtonState) { 
    lastDebounceTime = millis(); 
  } 
 
  if ((millis() - lastDebounceTime) > debounceDelay) { 
    if (reading != buttonState) { 
      buttonState = reading; 
      if (buttonState == HIGH) { 
        melodyIndex = (melodyIndex + 1) % (sizeof(melody) / sizeof(melody[0])); 
      } 
    } 
  } 
 
  lastButtonState = reading; 
 
  int potValue = analogRead(potPin); 
  int melodyDuration = melody[melodyIndex][1] * potValue / 1023; 
  tone(buzzerPin, melody[melodyIndex][0], melodyDuration); 
 
  delay(melodyDuration + 50); // Добавляем небольшую паузу между звуками 
}