Перейти к содержанию

Весы на atmega8


Рекомендуемые сообщения

Делаю весы на atmega8. Использую плату АЦП hx711 и 4 тензодатчика полумост до 50 кг.
Подключаю их по схеме

photo_2022-07-04_14-10-27.jpg.01245408ff0362694073f74b7458b4b4.jpg
Архив проекта в Proteus  Prj.zip
Архив исходника из Microchip Studio GccApplication5.zip
Для платы hx711 использую библиотеку

#include "hx711.h"
 
#define HX_PORT PORTB
#define HX_DDR  DDRB
#define HX_PIN  PINB
 
#define data 5
#define sck 4
 
void HX711_Init(void)
{   
    //sck выход, data - вход
    HX_DDR |= (1<<sck);
    HX_DDR &= ~(1<<data);
    
    //подтягиваем data к питанию, на sck устанавливаем лог.единицу
    HX_PORT |= (1<<data);
    HX_PORT &= ~(1<<sck);
}
 
uint32_t Weighing(void)
{
    //результат взвешивания
    uint32_t adc_value = 0;
    
    uint8_t i = 0;
    adc_value = 0;
 
    HX_PORT &= ~(1<<sck);
    //ждём пока закончится преобразование
    while((HX_PIN & (1<<data)));
    
    for(i=0; i<24; i++)
    {
        //поднимаем строб
        HX_PORT |= (1<<sck);
        //сдвигаем значение АЦП влево, теперь значение АЦП выглядит так .......0
        adc_value <<= 1;
        //опускаем строб
        HX_PORT &= ~(1<<sck);
        //проверяем, что на выводе data, если ноль то самый правый символ так и останется ноль .......0
        //если 1, то самый правый символ будет один .......1
        if(HX_PIN & (1<<data))
        {
            adc_value++;
        }   
    }
 
    //выборки будем брать с канала А, с коэф.усиления 128
    //поэтому стробируем еще один раз
    HX_PORT |= (1<<sck);
    HX_PORT &= ~(1<<sck);
    
    return adc_value;
}

Так вот, в протеус все работает, а в железе нет. В железе с нагрузкой и без выводит 8388. Спаяно все вроде правильно.
В чем ошибка? В программе? Или в пайке?

 

 

Изменено пользователем HipMan
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, HipMan сказал:

В чем ошибка? В программе? Или в пайке?

Можно монетку подбросить, можно в хрустальный шар посмотреть, можно тестовый мост собрать и найти ответ. Решать Вам.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

53 минуты назад, Виталий Белый сказал:

Подключите один

Собрал тестовый мост. Подключил один тензодатчик и 2 резистора 1 кОм по схеме

860170eb9e9d195332ad01c811a698ed.png.3ddecb5d6264bb6d8d46ef321485248a.png

Также прозвонил тензодатчик. У него одно плечо 1 кОм, второе 2 кОм.

На железе также выводит 8388608. Ничего не поменялось по сравнению с 4 тензодатчиками.

Попробовал без тензодатчиков выводит случайные большие числа.

Если на двух мостах одно и тоже отображает, то значит ошибка не в железе. Получается в прошивке. Но я не понимаю где. В Proteus все работает.

Или проблема в тензодатчиках..

Изменено пользователем HipMan
Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я к сожалению совсем не разбираюсь в программировании, чуть-чуть в Адуино. По Вашему коду подсказать ничего не могу. Подклячите просто датчик без резисторов и запустите самую простую програмку, которая меряла-бы показания с АЦП. При механическом воздействии на датчик, показания должны изменяться. Добьётесь этого, значит железо работает, останеться писать программу.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, HipMan сказал:

В Proteus все работает

Уверены? А в уведомлениях Протеуса есть два жёлтых треугольничка с восклицательным знаком внутри и надпись: logic contention detected on net#....? Где-то в коде косяк.

Ссылка на комментарий
Поделиться на другие сайты

23 минуты назад, andrusha152 сказал:

есть два жёлтых треугольничка

Да подправил, теперь все зеленое. Архив GccApplication55.zip

Но проблемы это не устранило. Опять тоже число выводится и не меняется.

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте задержки добавить. В текущем варианте длительность тактового импульса весьма сомнительна.

Спойлер

286109146_.png.b6ef651f202359ac51bb5035c5eef08d.png

И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

Ссылка на комментарий
Поделиться на другие сайты

В 31.07.2022 в 22:26, zeconir сказал:

Попробуйте задержки добавить

Сделал, не помогло. Я изменил чувствительность тензодатчика в Proteus Prj.zip. И теперь в Proteus тоже выводит 8388607 и не меняется. Видимо АЦП в зашкале. Как это исправить?

Ссылка на комментарий
Поделиться на другие сайты

Подключите один тензодатчик без резисторов, по схеме из документации. Потом вообще без датчика. Может сам АЦП мёртв? Есть ещё вариант прицепить к ардуино, вкатать скетч и убедиться в работоспособности железа.

Ссылка на комментарий
Поделиться на другие сайты

Нашел в чем ошибка. Но не знаю как ее исправить)

Вот, что написано об hx711:

Поскольку на выходе измерительного моста изменяется напряжение, то именно оно преобразуется в бинарный код. Диапазон контролируемых напряжений зависит от выбранного коэффициента усиления. Если коэффициент равен 128, диапазон измеряемых напряжений варьируется от – 20 mV до + 20 mV, выбор коэффициента усиления 64 определяет пределы измерения от – 40 mV до + 40 mV и при коэффициенте равном 32 пределы измерения определяются величинами – 80 mV и + 80 mV. Эти данные будут корректными только при напряжении питания +5 V. Если входное напряжение выйдет за нижнюю границу диапазона, АЦП выдаст код 800000h, а если за верхнюю, то код будет 7FFFFFh.

 

У меня как раз выводит 8388607 в десятичной системе, а если в шестнадцатиричной системе, то 800000. Значит это выход за нижнюю границу. Только какого? Питания 5В или диапазона от – 20 mV до + 20 mV?

Изменено пользователем HipMan
Ссылка на комментарий
Поделиться на другие сайты

5 Вольт - это питание датчика. 20 мВ - это максимальная  разница на выходе с датчика. Я уже Вам говорил, что без нагрузки на выходе напряхение стремится к нулю. Возьмите прибор и измерьте, где у Вас не так.

Ссылка на комментарий
Поделиться на другие сайты

Очевидно

55 минут назад, HipMan сказал:

диапазона от – 20 mV до + 20 mV

1230174599_.JPG.665d1c1e63a306a1f8e0754c629a8304.JPG

Для людей, которые пишут "мФ" вместо "мкФ", в аду приготовлен отдельный котёл. 1 мФ = 1000 мкФ.

Ссылка на комментарий
Поделиться на другие сайты

Вообщем подключил тензодатчик до 3 кг 4-х проводной и другую зеленую плату hx711. Их есть две версии. Одна красная, другая зеленая. Все работает. 

Потом присмотрелся к моим тензодатчикам до 50 кг. На картинке в магазине 3 провода: красный, белый, черный. У моих же красный, белый, зеленый. И мне казалось, что зеленый и черный это одно и тоже. Но потом понял, что нет. Подключил один тензодатчик с 2 резисторами, но только зеленый не заземлил, то есть не E-, а к A-подключил. И тоже все заработало. Получается зеленый и черный провод у полумостовых датчиков не одно и тоже.

сподвигло на это вот эта статья https://wiki.iarduino.ru/page/hx_711_with_tenzo/

79AA5557-17A1-4972-A09C-56645E00C9ED.thumb.jpeg.48310be701d2531acd725ff2b44893d3.jpeg

Но теперь не знаю, как подключить 4 тензодатчика вот по этой схеме

62697DBD-C7F2-4C00-80EE-42F301E4FE28.thumb.png.f0912f1c1f719dd0ca3f2209d51f7de9.png

Похоже буду новые покупать, только чтобы провода были красный, белый, черный.

Ссылка на комментарий
Поделиться на другие сайты

28 минут назад, HipMan сказал:

Похоже буду новые покупать, только чтобы провода были красный, белый, черный.

Сдается, что этим не закончится по тому, что следующим этапом будет калибровка - 25кг, 50кг, 100кг...

Ссылка на комментарий
Поделиться на другие сайты

сейчас померил напряжение на выходе тензодатчика с резисторами, оно меньше 1 мВ. Может я ошибся насчет того, что зеленый и черный это не одно и тоже. Вообщем с 4-х проводным тензодатчиком работает. А с 3-х проводными запутался уже)

Ссылка на комментарий
Поделиться на другие сайты

Сесть и составить схему или методом перебора. С какого-то раза получиться. Меньше 1мВ без нагузки это правильно. Осталось получить напряжение близкое к 0 мВ при соединении 4-х датчиков.

Ссылка на комментарий
Поделиться на другие сайты

HX711 имеет два канала, соединение ваши 4 полумоста в два полноценных моста и подключите каждый к своему каналу.

А то уперлись в ту ардуиновскую статью. 

Изменено пользователем korsaj
Ссылка на комментарий
Поделиться на другие сайты

44 минуты назад, HipMan сказал:

Зато 4 смог соединить.

молодец!!!:clapping::dance2:
h711_1.jpg.314a5b31808540c572328b0a1fc5f9e2.jpg
так понятней?

 

4 минуты назад, korsaj сказал:

HX711 имеет два канала, соединение ваши 4 полумоста в два полноценных моста и подключите каждый к своему каналу.

и из этого роя не выйдет них.. ничего...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...