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

Считать данные с эл. весов (сделать весы чуть умнее)

07.02.2025, 10:50. Показов 1415. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Идея. Взять обычные эл. весы и добавить им функцию отправки данных.

Несколько лет назад я уже пытался получать данные с этих весов M-ER 335ACL. Тогда я заменил плату взвешивания на HX711. Далее после использования эта самоделка показала себя не очень хорошо. Вес плыл. Собрал весы в заводское состояние.
Теперь к конкретике вопроса.
На весах есть 2 панели. Основная на 16 индикаторов и дополнительная на 11. Дополнительное табло получает те же данные, что и основное. Передача на дополнительную панель идёт по 4 проводам. VCC, CLK, DIO, GDN.

есть библиотека для передачи данных на TM1640, но вот библиотеки для чтения данных для TM1640 я не нашёл.

Подключил Arduino UNO CLK_PIN 2, DIO_PIN 3, VCC +5v, GDN.

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
#define CLK_PIN 2
#define DIO_PIN 3
 
void setup() {
  Serial.begin(9600);
  pinMode(CLK_PIN, INPUT);
  pinMode(DIO_PIN, INPUT);
}
 
void loop() {
  uint8_t data[16]; // Массив для хранения данных с табло
  readTM1640(data, 16); // Считываем данные с основного табло
  
  // Выводим данные в Serial Monitor
  for (int i = 0; i < 16; i++) {
    Serial.print(data[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  
  delay(1000); // Задержка для удобства чтения данных
}
 
void readTM1640(uint8_t *data, uint8_t length) {
  for (uint8_t i = 0; i < length; i++) {
    data[i] = 0;
    for (uint8_t j = 0; j < 8; j++) {
      while (digitalRead(CLK_PIN) == HIGH); // Ждем низкого уровня на CLK
      data[i] |= digitalRead(DIO_PIN) << j;
      while (digitalRead(CLK_PIN) == LOW); // Ждем высокого уровня на CLK
    }
  }
}
Получаю вот такие данные
Кликните здесь для просмотра всего текста

40 90 0 0 0 0 0 44 20 63 0 0 0 0 80 8
0 4A 0 0 0 0 0 20 20 C6 0 0 0 0 80 0
0 CA 0 0 0 0 0 11 C8 10 0 0 0 40 80 0
20 8A 0 0 0 0 0 11 48 8 0 0 0 0 1 1
40 CA 0 0 0 0 0 10 C0 8 0 0 0 0 0 0
40 4A 0 0 0 0 0 2 20 86 0 0 0 0 80 8
40 94 1 0 0 0 0 C4 40 84 1 0 0 0 4 44
40 42 0 0 0 0 0 2 20 C2 0 0 0 0 1 22
40 4A 0 0 0 0 0 11 10 63 0 0 0 0 0 11
40 C0 0 0 0 0 0 10 10 30 0 0 0 80 80 8
40 94 1 0 0 0 0 44 40 44 0 0 0 0 3 11
40 C2 0 0 0 0 0 1 88 1 0 0 0 0 80 8
40 C0 0 0 0 0 80 8 88 21 0 0 0 0 0 13
0 65 0 0 0 0 40 4 62 4 0 0 0 40 40 0
40 C8 0 0 0 0 0 11 20 8 0 0 0 0 88 40
40 CA 0 0 0 0 0 11 C0 18 0 0 0 0 0 10
40 CA 0 0 0 0 0 2 60 4 0 0 0 10 0 2
40 94 0 0 0 0 0 22 90 31 0 0 0 0 40 4
0 A 30 1A B7 82 40 0 10 31 0 0 0 0 A0 8
40 CA 9D 8F C9 1 41 13 8 31 0 0 0 0 0 8
40 8A 19 AF 29 9 81 22 90 31 0 0 0 0 80 8
0 10 75 7C 53 17 2 24 0 22 0 0 0 0 50 11
40 94 35 F8 4C 19 0 28 0 62 0 0 0 0 0 44
40 14 15 FC A6 7 82 22 90 31 0 0 0 0 48 10
40 2 2A 1A 53 B 41 1 10 31 0 0 0 0 84 8
40 4A 38 3F F8 85 40 10 C8 18 0 0 0 0 84 8
0 CA 15 F 53 B 81 22 10 43 0 0 0 0 20 2
40 94 71 3C 86 17 4 4A 20 46 0 0 0 0 A8 8
40 8A D D5 D4 85 0 10 C0 8 0 0 0 0 2A 0
40 14 25 3A 53 17 2 5 40 84 1 0 0 0 20 5
40 14 25 3A A4 C 4 A 80 8C 1 0 0 0 0 85
40 CA 12 3F D3 9 40 10 90 21 0 0 0 0 A0 8
40 C0 3A 7E D2 B 81 22 20 61 0 0 0 0 48 11
40 66 1D BF E9 85 40 11 88 11 0 0 0 0 40 11
C0 94 8D 17 E9 5 41 1 0 31 0 0 0 0 80 8
40 CA 2D 33 C3 1B 82 22 0 61 0 0 0 0 10 12
40 94 71 7E A6 17 4 4 40 86 0 0 0 0 88 8
0 25 0 0 0 0 0 11 C8 18 0 0 0 0 80 0
40 94 1 0 0 0 0 44 20 43 0 0 0 80 80 8
40 C2 0 0 0 0 0 8 8 18 0 0 0 0 40 4
40 C2 0 0 0 0 0 1 90 31 0 0 0 0 80 8
40 CA 0 0 0 0 80 8 C4 18 0 0 0 80 0 8


Строки
40 CA 0 0 0 0 80 8 C4 18 0 0 0 80 0 8 - Индикаторы панели отключены
40 66 1D BF E9 85 40 11 88 11 0 0 0 0 40 11 - На индикаторах показывается вес

Вопрос собственно в интерпретации данных. А может я вообще получаю что-то не то.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.02.2025, 10:50
Ответы с готовыми решениями:

Сложная задачка: как связать камеру и электронные весы так, чтобы на камере показывали данные с весов?
Здравствуйте, вопрос может и не по теме но не нашел куда её писать. Итак. Задачка такая: Есть Ip камера и есть электронные весы ...

Что нужно(Варианты\способы), имея драйвер весов с печатью .dll, реализовать выгрузку Номенклатуры в весы?
Здравствуйте, РАЗБИРАЮ Что нужно(Варианты\способы), имея драйвер весов с печатью .dll, реализовать выгрузку Номенклатуры в весы? ...

Тело массой 10кг падает на весы с высоты 2 метра. Какими будут показания весов? (с точки зрения YaGPT)
Опыт общения с YaGPT: -тело массой 10кг падает на весы с высоты 2 метра. Какими будут показания весов? -Показания весов будут...

4
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
07.02.2025, 12:27
А вы уверены что табло хоть что-то возвращает?
ТМ1640 имеет двухпроводной последовательный интерфейс (CLK, DIN), вы с него "считать" ничего не сможете.
Можете вешать свой контроллер параллельно ему, и уже "снифать" данные передаваемые на него. Ну или сделать passthrough контроллер.
0
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
07.02.2025, 12:54  [ТС]
Я же пишу, что имеется 2 панели. На каждой свой ТМ1640. Вместо второй панели установлена ардуинка. Она получает данные для ТМ1640. Схема так распаяна, что данные идут и на главную панель и на ардуинку. При взвешивании, включении и отключении индикаторов данные изменяются.
0
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
07.02.2025, 13:18
****arunt,
тогда берем даташит, раздел VII Data Command и вперед, смотреть какие сегменты засвечены и соответсвенно генерить числа.
И да, получаете вы явно что-то не совсем то. В адресе, согласно даташиту старший нибл должен быть 0xC всегда
0
656 / 409 / 76
Регистрация: 21.09.2008
Сообщений: 1,407
07.02.2025, 14:36
Цитата Сообщение от ****arunt Посмотреть сообщение
есть библиотека для передачи данных на TM1640, но вот библиотеки для чтения данных для TM1640 я не нашёл
Как вариант написать самому. Здесь неплохо описана работа с ней, в комментарии автор прикрепил исходный код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.02.2025, 14:36
Помогаю со студенческими работами здесь

Сделать компьютер умнее в угадывании чисел
Изучаю С++ через программирование игр (Майкл Доусон), прочел вторую главу. В конце, было предложено написать свой вариант программы Guess...

Схема подключения реле (дом пытаюсь сделать умнее)
Прошу помощи в правильном подключении реле. На его схеме (слева) нарисована схема подключения выключателя. (я красным обвел) А я хочу...

Считать матрицу весов или список смежности из файла
Здравствуйте! Помогите пожалуйста со следующим: В файле хранится описание графа одним способом (только матрицей весов или только списком...

Данные с Весов
Здравствуйте уважаемые программисты, подскажите пожалуйста как привести шестнадцатиричный код к нормальному виду- может неправильно...

Получаем данные с весов Mettler Toledo
Добрый день, сейчас на флешке нашел свой старый проект, в котором я подключался на весы Mettler toledo ics 429 и снимал вес с весов и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru