1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Куда поставить кнопку в стенде, чтобы я мог показать работоспособность поплавкового выключатель?

Ответить

Автор темы
polyana
новенький
новенький
Сообщения: 1
Зарегистрирован: 30 май 2022, 19:19
Имя: Иван
Страна: Россия
город/регион: Челябинск

Куда поставить кнопку в стенде, чтобы я мог показать работоспособность поплавкового выключатель?

Сообщение polyana »

Куда подключить кнопку или что нужно поменять в коде, чтобы срабатывал поплывковый выключатель?

У меня работает ультразвуковой датчик так, если уровень воды достигает от 4 до 7 см, то насос отключается, если уровень больше или меньше этих значений - насос работает.
Для защиты от перелива установлен поплывковый выключатель, который активируется, если его задевает вода и приходит сигнал на пьезо пищалку, она отключается с помощью сенсорной кнопки.

Мне нужно чтобы я мог показать, что поплавковый выключатель работает.
Но в данный момент, без кнопки, я это показать не могу, потому что уровень воды до датчика не может быть меньше 4 см.

Подключал всё по схеме подключения:
https://imgur . com/a/w9a3vP2 (скопируй ссылку и вставь в поисковую строку, убери пробелы между точкой)

Стенд состоит из:
Ultrasonic Sensor + Mounting Bracket (Ультразвуковой датчик расстояния)
Поплавковый выключатель
Сенсорная кнопка
Arduino Nano V3 (Ардуино НАНО)
Type Switch (Выключатель питания, кнопка, которая ещё не подключена)
lithium batteries 3300mAh (аккумуляторы)
Plastic Battery Holder (Держатель для 18650 аккумуляторов)
Active Passive Buzzer Alarm (пьезо пищалка для сигнала)
Насос для воды
Реле для включения нагрузки

Работа стенда без подключённой кнопки:
https://www.youtube . com/watch?v=tpv1S-kxxbM (скопируй ссылку и вставь в поисковую строку, убери пробелы между точкой)

Код для работы стенда:

Код: Выделить всё

//Программа управления насосом по датчику расстояния
#include "Ultrasonic.h"
 
 
boolean pereliv = 0; //переменная для хранения значения с датчика перелива
boolean key = 0;    //переменная для хранения значения с кнопки (1 если кнопка нажата, 0 если нет)
boolean trevoga = 0; //переменная сигнализирующая о наличии тревоги
float maxLevel=4.00;  //расстояние в сантиметрах, соответствующее максимальному уровню жидкости в емкости
float minLevel=7.00; //расстояние в сантиметрах, соответствующее минимальному уровню жидкости в емкости
 
Ultrasonic ultrasonic(3, 4); //подключили датчик расстояния (TRIG к 3 пину. ECHO к 4)
 
 
 
void setup()
{
  Serial.begin(9600);    // запускаем серийный порт
  pinMode(8, INPUT_PULLUP);  //ПОДКЛЮЧИЛИ ПИН КНОПКИ (ИСПОЛЬЗУЕТСЯ ДЛЯ ОТКЛЮЧЕНИЯ РЕЖИМА ТРЕВОГИ)
  pinMode(10, INPUT_PULLUP);  //ПОДКЛЮЧИЛИ ПИН ПОПЛАВКОВОГО ВЫКЛЮЧАТЕЛЯ (НА СЛУЧАЙ ПЕРЕЛИВА)
  pinMode(12, OUTPUT); 
  pinMode(13, OUTPUT);
}
 
void loop()
{
  float rast = ultrasonic.Ranging(CM);  // получаем расстояние с ультразвукового датчика и сохраняем его в rast
  pereliv = digitalRead(10); // считываем состояние поплавкового выключателя
  key = digitalRead(8); // считываем состояние кнопки
 
  Serial.print(rast);                   // выводим растояние до воды в монитор порта
  
  if (rast > minLevel) { //если растояние до поверхности воды больше 7 см
    digitalWrite(12, HIGH);  //включаем питание на реле
    digitalWrite(13, HIGH);  //подаем сигнал реле на включение насоса
    Serial.println("    OnNasos");
  }
 
  if (rast < maxLevel) { //если растояние до поверхности воды меньше maxLevel;
    digitalWrite(13, LOW); //даем сигнал на отключение реле
    digitalWrite(12, LOW); //отключаем питание реле
      Serial.println("    OFFNasos");
  }
 
  if (pereliv == 1) {//если сработал поплавковый выключатель, то
    trevoga = 1;  //включаем режим тревоги
  }
 
  if (trevoga == 1) {  //если режим тревоги включен, то
    digitalWrite(13, LOW); //даем сигнал на отключение реле
    digitalWrite(12, LOW); //отключаем питание реле
    tone(7, 2500, 250); //подаем сигнал тревоги с частотой 2500 и длительностью 250мс
  }
 
  if (key == 1) {  //если нажата кнопка, то
    trevoga = 0;  //отключаем режим тревоги
  }
 
 if (trevoga == 0) {  //если режим тревоги отключен, то
    noTone(7);  //отключаем пьезопищалку
  }
 
 
 
  delay(500);                               // задержка
 
  
}
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Куда поставить кнопку в стенде, чтобы я мог показать работоспособность поплавкового выключатель?

Сообщение keysansa »

polyana писал(а): 30 май 2022, 19:25 У меня работает ультразвуковой датчик так, если уровень воды достигает от 4 до 7 см, то насос отключается, если уровень больше или меньше этих значений - насос работает.
Тут скорее наоборот.
polyana писал(а): 30 май 2022, 19:25 Мне нужно чтобы я мог показать, что поплавковый выключатель работает.
Когда звенит зуммер - поплавковый работает.
polyana писал(а): 30 май 2022, 19:25 Но в данный момент, без кнопки, я это показать не могу, потому что уровень воды до датчика не может быть меньше 4 см.
Положите поплавковый выключатель на подставку, выше 4 см
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

Вернуться в «Вопросы от студентов»