Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Александр Сабиров Ученик (127), на голосовании 4 месяца назад
вылезает ошибка в коде, что делать?
Голосование за лучший ответ
Татьяна Просветленный (36384) 5 месяцев назад
Судя по ошибке в Tinkercad, проблема может быть связана с тем, что функции setup() и loop() объявлены с неправильной линковкой. Давайте исправим ваш код, чтобы он компилировался правильно. Вот как должен выглядеть исправленный код:
 #include  

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); // Добавляем небольшую паузу между звуками
}
Похожие вопросы