#include <Arduino.h>
// Пин, к которому подключена кнопка
const int buttonPin = A0;
// Переменная для хранения состояния кнопки
int buttonState = 0;
// Определение пинов для весовой датчика и кнопок
//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(buttonPin, INPUT);
// Начальное значение генератора случайных чисел
randomSeed(analogRead(100));
// Инициализация последовательности случайных чисел
random();
// Установка пинов кнопок в режим ввода
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() {
// Считывание состояния кнопки
buttonState = digitalRead(buttonPin);
// Если кнопка нажата, генерируем случайное число и выводим его на Serial Monitor
if (buttonState == HIGH) {
int randomNumber = random(1, 500); // Генерация случайного числа от 0 до 99
Serial.println(randomNumber); // Вывод случайного числа на Serial Monitor
}
// Чтение значения с весового датчика
//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); // Выключение светодиода
}
}