Бочка
- Войдите на сайт для отправки комментариев
Чт, 11/10/2018 - 12:04
Здравствуйте. Решил научиться програмированию в среде ардуино. создал новый проект под названием "бочка". Задача: изначально мониторинг уровня воды в бочке посредством 1602 экрана и датчика HC-SR04.вывод на экран количество воды в литрах. Но вот незадача. везде идет расстояние в см. Помогите пожалуйста завершить проект.
та мерий для наглядности объем воды в сантиметрах, раз тебе в школе за формулу обьема цилиндра не рассказывали.
Infernus, HC-SR04 не годится, заржавеет через пару месяцев от конденсата. Нужен гермо-датчик.
Но вот незадача. везде идет расстояние в см.
А что, объём никак теперь не посчитать, если расстояние в сантиметрах? Подсказываю: один литр воды - это один кубический дециметр. Т.е. объём можно считать не только в кубометрах, внезапно. И переводить из одних единиц в другие - тоже можно, арифметика.
Если не секрет: в каком классе учишься? Если до шестого - я ещё пойму, если старше - лучше тогда бросить ардуину до тех пор, пока не будет повторен курс арифметики и начал геометрии.
Что это? Ни когда такого не видел.
Спасибо. заказал. ждем.
дак там тоже расстояние до зеркала воды в сантиметрах будут
//сонар бочки 10,2018 // -------НАСТРОЙКИ------- #include <LCD_1602_RUS.h> LCD_1602_RUS lcd(0x3F,16,2); // Устанавливаем какой дисплей #define FIRST_KEY_PIN A0 #define KEY_CONT 3 // сонар #define ECHO 3 #define TRIG 2 #define LED_PIN 6 int brightness = 0; // Диапазон от 0 до 255. Лампу не включать идут помехи на измерение датчиком HC-SR04 // крутая библиотека сонара #include <NewPing.h> NewPing sonar(TRIG, ECHO, 400); float dist_3[3] = {0.0, 0.0, 0.0}; // массив для хранения трёх последних измерений float middle, dist, dist_filtered; float k; byte i, delta; unsigned long dispIsrTimer, sensTimer; void setup() { pinMode(10,OUTPUT); // Реле №1 , красный светодиод pinMode(11,OUTPUT); // Реле №2 , желтый светодиод pinMode(12,OUTPUT); // Реле №3, зеленый светодиод pinMode(LED_PIN,OUTPUT); // +12V лампа lcd.init(); // инициализируем дисплей lcd.backlight(); // Включаем подсветку дисплея lcd.setCursor(0, 0); lcd.print(L"уровень в бочке"); } void loop() { if (millis() - sensTimer > 500) { // измерение и вывод каждые 0,5с // счётчик от 0 до 2 // каждую итерацию таймера i последовательно принимает значения 0, 1, 2, и так по кругу if (i > 1) i = 0; else i++; dist_3[i] = (float)sonar.ping() / 1; if (!digitalRead) dist_3[i]; // dist = middle_of_3(dist_3[0], dist_3[1], dist_3[2]); // получить расстояние в текущую ячейку массива // фильтровать медианным фильтром из 3ёх последних измерений delta = abs(dist_filtered - dist); // расчёт изменения с предыдущим if (delta > 1) k = 0.7; // если большое - резкий коэффициент else k = 0.1; // если маленькое - плавный коэффициент dist_filtered = dist * k + dist_filtered * (1 - k); // фильтр "бегущее среднее" // очистить дисплей // вывести sensTimer = millis(); // сбросить таймер lcd.setCursor(1,1); lcd.print(dist_filtered,1); } if (digitalRead(A0)==HIGH){digitalWrite(11,LOW); } else {digitalWrite(11,HIGH);} if (dist_filtered <= 250) { // первое условие, если расстояние меньше либо равно 30, digitalWrite(12,LOW); // тогда включить первый светодиод } else { digitalWrite(12,HIGH); // если условие не выполняется, выключить светодиод } if (dist_filtered >= 2583) { // первое условие, если расстояние меньше либо равно 30, digitalWrite(10,LOW); // тогда включить первый светодиод } else { digitalWrite(10,HIGH); // если условие не выполняется, выключить светодиод } } // медианный фильтр из 3ёх значений float middle_of_3(float a, float b, float c) { if ((a <= b) && (a <= c)) { middle = (b <= c) ? b : c; } else { if ((b <= a) && (b <= c)) { middle = (a <= c) ? a : c; } else { middle = (a <= b) ? a : b; } } return middle; }как сантиметры преобразовать в литры с обратным отсчетом. домустим 42 см= 0 литрам, а 3 см= равны 40 литрам???
из расстояния до дна пустой бочки вычесть измеренное расстояние.
как сантиметры преобразовать в литры с обратным отсчетом. домустим 42 см= 0 литрам, а 3 см= равны 40 литрам???
https://o-builder.ru/kalkulyator-obema-zidkosti-bochki/
http://www.center-pss.ru/math/obiemvlitrah/emkost.htm
из расстояния до дна пустой бочки вычесть измеренное расстояние.
Это если он пессимист.
А ежели человек оптимист, то надо бы прибавлять что-то.
как сантиметры преобразовать в литры с обратным отсчетом. домустим 42 см= 0 литрам, а 3 см= равны 40 литрам???
А что - пропорциям нынче в школе не учат? Вот совсем всё так плохо?
вопрос не о геометрии, а как в скейтч это проприсать.
вопрос не о геометрии, а как в скейтч это проприсать.
Пропорции - это не геометрия, а арифметика. На, дарю: https://planetcalc.ru/1028/
1л.дист.=1дм.куб=1кг=1000мл.=1000см.куб.=1000мг. Меряйте в чем душа просит.
Чего данная тема делает в разделе "Проекты"? Пойду, пожалуй, попрошу Александра эту дичь отсюда перенести...
Чего данная тема делает в разделе "Проекты"? Пойду, пожалуй, попрошу Александра эту дичь отсюда перенести...
лучше вообще грохнуть :)
Чего данная тема делает в разделе "Проекты"? Пойду, пожалуй, попрошу Александра эту дичь отсюда перенести...
лучше вообще грохнуть :)
Ну это уже на откуп всемогущим :)
лучше вообще грохнуть :)
Вай, зачем такой как собак собак злой?
лучше вообще грохнуть :)
Вай, зачем такой как собак собак злой?