#include <Arduino.h>
// Определение пинов для весовой датчика и кнопок
double WEIGHT_SENSOR_PIN = (A0, A2);
const int BUTTON1_PIN = 2;
const int BUTTON2_PIN = 3;
// Определение пинов для звуковой сигнализации
const int BUZZER_PIN = 9;
const int LED_PIN = 13;
// Пороговые значения для каждого диапазона веса
int LOW_THRESHOLD = 100;
int MEDIUM_THRESHOLD = 300;
int HIGH_THRESHOLD = 500;
void setup() {
// Установка пинов кнопок в режим ввода
pinMode(BUTTON1_PIN, INPUT);
pinMode(BUTTON2_PIN, INPUT);
// Включение внутреннего подтягивающего резистора для пинов кнопок
digitalWrite(BUTTON1_PIN, HIGH);
digitalWrite(BUTTON2_PIN, HIGH);
// Установка пина звуковой сигнализации и светодиода в режим вывода
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
// Начальная настройка последовательного порта для вывода результатов
Serial.begin(9600);
}
void loop() {
// Чтение значения с весового датчика
double weight = analogRead(WEIGHT_SENSOR_PIN);
// Чтение состояний кнопок
int button1State = digitalRead(BUTTON1_PIN);
int button2State = digitalRead(BUTTON2_PIN);
// Проверка нажатия кнопки 1 и настройка нижнего порога веса
if (button1State == LOW) {
LOW_THRESHOLD = weight;
Serial.print("Нижний порог настроен на ");
Serial.println(LOW_THRESHOLD);
delay(500); // Задержка для предотвращения дребезга контактов кнопки
}
// Проверка нажатия кнопки 2 и настройка верхнего порога веса
if (button2State == LOW) {
HIGH_THRESHOLD = weight;
Serial.print("Верхний порог настроен на ");
Serial.println(HIGH_THRESHOLD);
delay(500); // Задержка для предотвращения дребезга контактов кнопки
}
// Проверка веса и воспроизведение соответствующей звуковой сигнализации
if (weight < LOW_THRESHOLD) {
tone(BUZZER_PIN, 1000); // Воспроизведение низкой частоты
digitalWrite(LED_PIN, HIGH); // Включение светодиода
} else if (weight >= LOW_THRESHOLD && weight < MEDIUM_THRESHOLD) {
tone(BUZZER_PIN, 2000); // Воспроизведение средней частоты
digitalWrite(LED_PIN, HIGH); // Включение светодиода
} else if (weight >= MEDIUM_THRESHOLD && weight <= HIGH_THRESHOLD) {
tone(BUZZER_PIN, 3000); // Воспроизведение высокой частоты
digitalWrite(LED_PIN, HIGH); // Включение светодиода
} else {
noTone(BUZZER_PIN); // Остановка воспроизведения звука
digitalWrite(LED_PIN, LOW); // Выключение светодиода
}
}