Загрузка данных


#define POT A0
#define LED 8
#define BUZ 3

int signal;
int brightness;

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(BUZ, OUTPUT);
}

void loop() {

  // Фильтрация: 3 измерения и среднее
  signal = (analogRead(POT) + analogRead(POT) + analogRead(POT)) / 3;

  // Яркость светодиода
  brightness = map(signal, 0, 1016, 0, 255);
  analogWrite(LED, brightness);

  // От 1% до 90% - звук 100-700 Гц
  if (signal < 914) {
    tone(BUZ, map(signal, 10, 914, 100, 700));
  }

  // От 90% до 100% - сирена
  else {
    int t = millis() % 1000;

    if (t < 500)
      tone(BUZ, map(t, 0, 500, 300, 700));
    else
      tone(BUZ, map(t, 500, 1000, 700, 300));
  }
}