#define POT_PIN A0
#define LED_PIN 9
#define BUZ_PIN 3
int signal;
int brightness;
int frequency;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUZ_PIN, OUTPUT);
}
void loop() {
// ФИЛЬТРАЦИЯ: 3 измерения и среднее значение
signal = (analogRead(POT_PIN) +
analogRead(POT_PIN) +
analogRead(POT_PIN)) / 3;
// ВИЗУАЛЬНОЕ ОПОВЕЩЕНИЕ
// Яркость светодиода зависит от напряжения
brightness = map(signal, 0, 1023, 0, 255);
analogWrite(LED_PIN, brightness);
// От 1% до 90% сопротивления
if (signal < 920) {
// Частота от 100 до 700 Гц
frequency = map(signal, 10, 920, 100, 700);
if (frequency < 100) {
frequency = 100;
}
tone(BUZ_PIN, frequency);
}
// От 90% до 100% - сирена
else {
// Период сирены = 1 секунда
int t = millis() % 1000;
int sirenFrequency;
if (t < 500) {
sirenFrequency = map(t, 0, 499, 400, 800);
}
else {
sirenFrequency = map(t, 500, 999, 800, 400);
}
tone(BUZ_PIN, sirenFrequency);
}
}