Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 1 / 0
Регистрация: 18.06.2023
Сообщений: 26

Весы на ардуино, два режима работы. Тензодатчик+семисегментный дисплей

18.06.2023, 11:08. Показов 3407. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Прошу подсказать, в каком направлении двигаться?
На множестве ютуб роликов каждый указывает разную библиотеку для работы с датчиками давления. И они по разному калибруются. Какую качать? Какая наиболее распространена?

Первый режим работы, какой охота сделать, мгновенное значение массы. В готовых примерах это занимает более двух секунд, потому что считываются десятки значений, и ищется среднее. Мне бы хотелось показывать мгновенное значение, пусть и не точное. В некоторых примерах нужно шаблонную массу использовать каждый раз перед каждым включением, чтоб оно посчитало коэффициент. В других примерах этот коэффициент потом ещё как то пересчитывается из унций в граммы. По итогу я запутался. Как найти этот коэффициент, чтоб он работал с граммами? Номинал датчика до 10 килограмм. Потом значение планирую выводить на четырехпозиционный дисплей. Физически весы полностью собраны.
Спасибо всем откликнувшимся, у кого есть опыт работы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2023, 11:08
Ответы с готовыми решениями:

Семисегментный дисплей на 4 цифры. Как с этим работать?
Есть дисплей Kingbright CA56-125 RWA R. Работаю с подобными впервые - не ругайте за тупизну, пожалуйста. Там 4 цифры (на каждую по 7...

Два режима работы чекбоксов
Здравствуйте! По клику на кнопке показывается/скрывается палитра из разноцветных квадратиков. Есть 5 чекбоксов внутри фрейма. В режиме...

USB Device, нужно два режима работы
Здравствуйте, я новичок в разработке для ARM, сейчас работаю с STM32 F4 Dyscovery, подключил к нему SD карту. В проекте нужно чтобы...

21
0 / 1 / 0
Регистрация: 18.06.2023
Сообщений: 26
20.01.2024, 17:50  [ТС]
Студворк — интернет-сервис помощи студентам
Как погасить незначащие нули при выводе на дисплей? (UPD изменил третий параметр)
Code
1
2
3
4
5
6
#include <Arduino.h>
#include <TM1637TinyDisplay.h>
....
if (max > 100) {
        display.showNumberDec(max/10, 0b01000000, 0); // если третий параметр true то будут показаны левые нули
      }
Если положить на весы 1580 грамм. Делим на 10 чтоб убрать мелочи. Включаем отображение двоеточия по центру дисплея. На дисплее отображается 01:58 . При 610 грамм будет отображаться 00:61 . Как можно выключить эти нули слева?
0
0 / 1 / 0
Регистрация: 18.06.2023
Сообщений: 26
21.01.2024, 08:04  [ТС]
Так как брусок умеет измерять в обе стороны, то я добавил возможность измерения как толкать, так и тянуть. Для исключения случайных сбросов поднял ничегонеделать до 200 грамм. В будущем придётся заменить датчик на 20 кг. В коде оставил команды для вывода на монитор порта на всякий случай. Всем спасибо за подсказки. Весь код получился такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "HX711.h"
#include <Arduino.h>
#include <TM1637TinyDisplay.h>
 
 
HX711 scale;
 
#define CLK 3
#define DIO 5
uint8_t dataPin = 9;
uint8_t clockPin = 7;
float max = 0;
 
TM1637TinyDisplay display(CLK, DIO);
 
void setup()
{
  Serial.begin(115200);
  Serial.println();
 
  scale.begin(dataPin, clockPin);
  display.begin();
  display.setBrightness(1);
 
  display.showNumber(8888);
  scale.set_scale(-249.5);       // TODO you need to calibrate this yourself.
  scale.tare(10);             // reset the scale to zero = 0
  //Serial.println(scale.get_offset());
  delay(1000);
  display.showNumber(0);
}
 
void loop()
{
  if (scale.is_ready())
  {
    float curent = scale.get_units(1);
    if (curent < 0) curent = curent * (-1);
    //Serial.println(curent);
 
    if (curent > max) {
      max = curent;
 
      if (max > 200) {
        //Serial.println(max);
        display.showNumberDec(max / 10, 0b01000000, 0);
      }
    }
    if (curent < 200 ) {
      max = 199;
    }
  }
}
// -- END OF FILE --
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2024, 08:04
Помогаю со студенческими работами здесь

(AT89C51, стенд СУ-МК51) Очистить семисегментный дисплей и вывести на него какую нибудь цифру
Здравствуйте.Данный код компилируется в ProView32, но проблема в том что мы получаем .HEX файл, а не .com/.exe. Вопрос: в какой среде...

Дисплей и ардуино
Добрый день! Использую Ардуино Мега и дисплей ITDB02-2.4e, подключаю через шилд ITDB02 ARDUINO SHIELD v2.0 загружаю скетч ...

Как подключить дисплей shd0032 к ардуино?
Как подключить дисплей shd0032 (http://www.smartmodule.ru/0032.html) к ардуино и вывести на него произвольные данные? Я только начал...

Не могу подключить дисплей к ардуино nano
Здравствуйте я бы хотел задать вопрос как подключить дисплей(tftlcd for arduino uno(spiflash) 2.4д)к ардуино nano. Картинку я приложил.

Написать программу на языке СИ++ для установки графического режима работы экрана и вывода основных характеристик этого режима
Задание: 1. Написать программу на языке СИ++ для установки графического режима работы экрана и вывода основных характеристик этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru