Есть ошибка, не знаю как исправить

По сути, у меня есть макет со светодиодом RGB и зуммером Peizo с фотоэлементом.

У меня есть коды для обоих. Если я ввожу код для RGB, он работает. Если я ставлю код для пейзо, то всё работает. Как только я вставляю в него оба кода, он говорит, что произошла ошибка, поскольку «void setup» и «void Loop» уже определены. Что мне сделать, чтобы обе вещи работали?

Код светодиода RGB:

/*
Adafruit Arduino - Lesson 7. RGB Fader
*/
int redLEDPin = 11;
int greenLEDPin = 10;
int blueLEDPin = 9;
int redSwitchPin = 7;
int greenSwitchPin = 6;
int blueSwitchPin = 5;
int red = 0;
int blue = 0;
int green = 0;

void setup()
{
  pinMode(redLEDPin, OUTPUT);
  pinMode(greenLEDPin, OUTPUT);
  pinMode(blueLEDPin, OUTPUT);
  pinMode(redSwitchPin, INPUT_PULLUP);
  pinMode(greenSwitchPin, INPUT_PULLUP);
  pinMode(blueSwitchPin, INPUT_PULLUP);
}

void loop()
{
  if (digitalRead(redSwitchPin) == LOW)
  {
    red ++;
    if (red > 255) red = 0;
  }
  if (digitalRead(greenSwitchPin) == LOW)
  {
    green ++;
    if (green > 255) green = 0;
  }
  if (digitalRead(blueSwitchPin) == LOW)
  {
    blue ++;
    if (blue > 255) blue = 0;
  }
  analogWrite(redLEDPin, red);
  analogWrite(greenLEDPin, green);
  analogWrite(blueLEDPin, blue);
  delay(10);
}

Код Пейзо:

int speakerPin = 12;
int photocellPin = 0;

void setup()
{
}

void loop()
{
  int reading = analogRead(photocellPin);
  int pitch = 200 + reading / 4;
  tone(speakerPin, pitch);
}

, 👍0

Обсуждение

у вас может быть только один блок setup() и только один блок loop() .... вам нужно объединить код из каждой пары блоков в один блок, @jsotola


1 ответ


2

Оставляя в стороне все другие возможные проблемы, такие как конфликты выводов и синхронизации.

Переименуйте функции скетча setup() и loop(), например, rgb_led_setup() и rgb_led_loop() и peizo_setup() и peizo_loop(), затем перепишите:

void setup() { 
  rgb_led_setup(); 
  peizo_setup(); 
} 

void loop() { 
  rgb_led_loop(); 
  peizo_loop(); 
}

Удачи!

,