Ошибка в программе устройства, способное автоматически поддерживать уровень жидкости в указанных диапазонах, управляя насосом
- Войдите на сайт для отправки комментариев
Сб, 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, на которой у меня всё заработало