Проект с меню и подсчетом колличества по расстоянию.
оба режима - истинна. от выбора в меню линейки или диаметра и выбирается алгоритм работы.
касаемо возможностей датчика, то они должны до 3-4 метров работать с погрешностью в несколько миллиметров, а других датчиков чтоб мерили на 2 метра я не нашел.pony sonata писал(а): ↑08.08.2018{, 12:00}эти датчики вообще такое могут на такое расстояние и с заявляемой вами точностью измерения? мне сдается без хорошей фильтрации сигнала они будут показывать фигню. обычным усредняющим фильтром или с удалением выбросов тут не справиться - надо что-то серьезнее и то не факт, что это поможет
вас алгоритм интересует? при нажатии на кнопку даем время (секунд 5 например) за которое вычисляется среднее значение расстояния и записываем его в переменную. при следующем нажатии на кнопку операция повторяется
фильтра от ув. boroda - viewtopic.php?f=82&t=3098
немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения
динамики вообще нет. поставил и померил, без движений и прочего. я даже корпус такой изготовил чтоб без лишних дерганий!pony sonata писал(а): ↑08.08.2018{, 15:38}фильтра от ув. boroda - viewtopic.php?f=82&t=3098
я пользуюсь фильтрами от лешрак с ардуино.ру форума, "адаптированными" под флпрог
Отправлено спустя 2 минуты 26 секунд:немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения
на первой плате для приветственного сообщения. подскажите пожалуйста как можно сделать правильно?av писал(а): ↑08.08.2018{, 16:03}Во первых:
На 1 плате зачем вам складывать строки ? Тем более вы складываете константы строк.
Во вторых:
На плате 2 вы используете две переменные что бы управлять дисплеем. Начальный экран и отображение замера. Используйте одну переменную для управления. Допустим перемен."FIRST DISP" при значении 0 отображается начальный экран. При нажатии на кнопку изменяем значение "FIRST DISP" на значение 1 тем самым блокирую начальный экран и разрешая замер и отображение на экране значение замера.
кнопка сброса - это просто резет\перезагрузка соединенная на пин RST и gnd/av писал(а): ↑08.08.2018{, 20:44}Хорошо энкодером можно управлять меню. А кнопкой сброса чем будете управлять ? Сбросом показаний замеров ? Сброс здесь не нужен так как новый замер перезапишит значения и отображение значений длится 4 сек. После чего на дисплей выводится главный экран.
Вопрос по поводу меню:
Сколько и какими значениями будете управлять ?
Абсолютно верно) спасибо большое. Очень приятно когда понимают)))av писал(а): ↑08.08.2018{, 21:41}Я правильно вас понял.
Например:
Меню
1 Установки (10 предустановок)
2 Режим (диаметр или линейка)
3 Калибровка (прибавление или отнимание от замереного значения для точности замеров)
Что-то я запутался немного с калибровкой. Пока получилось так.
ответил выше. редактировал долго))))av писал(а): ↑10.08.2018{, 11:57}Mischa23, от вас нужна конкретика !!! Что вы замеряете каким образом и для чего ? В первом посте не понятно для чего вам делать замеры расстояния и диаметра. Опишите свое устройство более точнее, для каких целей. Если секрет можно в личку. От того как точно вы изложите свою хотелку будет зависеть результат помощи. Возможно что кто то из форумчан делал такой проект.
так и есть.av писал(а): ↑10.08.2018{, 12:51}Mischa23, все равно нет точных данных от вас ! То что линейкой вы будете замерять количество листов эт понятно (погрешность измерений будет большой из за разных факторов: вес стопки листов, не ровности листа.) А вот радиус не совсем понял для чего наверно для рулонов. Тогда нужна начальная точка отсчета которую нужно установить как константу т.е. положение оси на которой намотан рулон должна быть неизменна, а так же толщина оси должна быть постоянной.
1. просто надпись "для замера нажмите красную кнопку" в фаилике подписал.av писал(а): ↑10.08.2018{, 13:17}Mischa23, И так начнем с начала (Ваш проект):
1. Что отображается на начальном экране ?
2. Ваше видение меню (1. Переключение режимов замера,2. Предустановки толщины листа, 3. Калибровка датчика)
3. Измерение происходит по нажатию кнопки или постоянное (если постоянное то начальный экран отпадает)
4. Обработка данных замеров 1 (подсчет количества в режиме линейки в зависимости от выбранной предустановки толщины листа)
5. Обработка данных замеров 2 (подсчет диаметра или радиуса (не совсем понятно для чего) в зависимости от выбранной предустановки)
6. Вывод на дисплей данных замеров.
Одновременно никак. Замер происходит в зависимости от выбора режима работы.
Ну миллиметры можно разделить на 10 и получим сантиметры.av писал(а): ↑10.08.2018{, 19:44}Сокращение (см.) я так понимаю это сантиметры ? Но в сантиметрах возможно не получится считать т.к. датчик выводит значения в миллиметрах. И тип данных значений датчика (int), если масштабировать в сантиметры то в типе int нет запятых. Допустим датчик замерил 123 мм. переводим в сантиметры 12,3 см. Тип (int) округлит это значение до запятой. Получим 12 см. Вот такие вот дела. Есть такой тип переменной как (float) вот он выводит значения с запятой. Но ведь датчик работает только с типом (int).