Ошибка в программе устройства, способное автоматически поддерживать уровень жидкости в указанных диапазонах, управляя насосом
- Войдите на сайт для отправки комментариев
Сб, 23/04/2022 - 19:47
Код программы:
//Программа управления насосом по датчику расстояния
#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); //ПОДКЛЮЧИЛИ ПИН ПОПЛАВКОВОГО ВЫКЛЮЧАТЕЛЯ (НА СЛУЧАЙ ПЕРЕЛИВА)
}
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); // задержка
}
Ошибка программы:

Cхема подключений:

Так выглядит со стороны:

Как исправить ошибку в коде программы?
Спросить у автора кода. Твой IQ самостоятельно этого не вывезет.
Спросить у автора кода. Твой IQ самостоятельно этого не вывезет.
вывезет, если объяснишь в чём проблема
если твоё IQ выше моего, ты бы написал решение, а не давал бы мне жизненные советы
Не вывезет. Я настаиваю.
мне тут вывозить многого и не нужно, я хочу, чтобы мне 1 строчку изменили, чтобы всё работало правильно и всё
но судя по твоим комментариям, у тебя IQ не выше моего, раз ты не можешь написать решение проблемы, а только сваливаешь, чтобы я обратился к другому человеку
мне тут вывозить многого и не нужно, я хочу, чтобы мне 1 строчку изменили, чтобы всё работало правильно и всё
но судя по твоим комментариям, у тебя IQ не выше моего, раз ты не можешь написать решение проблемы, а только сваливаешь, чтобы я обратился к другому человеку
Мае IQ ниже тваева примерно в 5 рас, паэтаму, не пацкажу. Могу тока посоветовать выложить ошибку текстом, а не картинкой, на которой нихрена не видна. Настока вот я тупой. Или не я?
мне тут вывозить многого и не нужно, я хочу, чтобы мне 1 строчку изменили, чтобы всё работало правильно и всё
С таким подходом лучше топать в раздел "Ищу исполнителя" и там излагать любые свои "хочу", но только вместе с "за это дам".
Последний бесплатный совет - там, где взяли этот код, возьмите и библиотеки именно те, которые использовал автор кода.
На форум запостить ума хватило, а в онлайн переводчике узнать перевод фразы - 'class Ultrasonic' has no member named 'Ranging' не хватает ???
Ваш код написан для другой библиотеки Ultrasonic. В свежей библиотеке расстояние читается по другому - https://github.com/ErickSimoes/Ultrasonic/blob/master/examples/UltrasonicSimple/UltrasonicSimple.ino
С таким подходом лучше топать в раздел "Ищу исполнителя" и там излагать любые свои "хочу", но только вместе с "за это дам".
"Я б вам дала, но вы сами не захотите", и так бывает...(
спасибо за решение, но я его не тестировал, а я скачал библиотеку SoftwareSerial, на которой у меня всё заработало