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

HipMan

Members
  • Постов

    13
  • Зарегистрирован

  • Посещение

Информация

  • Город
    Москва

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    Микроконтроллеры
  • Оборудование
    Мультиметр

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения HipMan

Новичок

Новичок (1/14)

  • Преданный
  • 10 постов на форуме
  • Месяц на форуме
  • Неделя на форуме

Последние значки

0

Репутация

  1. Зато 4 смог соединить.
  2. сейчас померил напряжение на выходе тензодатчика с резисторами, оно меньше 1 мВ. Может я ошибся насчет того, что зеленый и черный это не одно и тоже. Вообщем с 4-х проводным тензодатчиком работает. А с 3-х проводными запутался уже)
  3. Вообщем подключил тензодатчик до 3 кг 4-х проводной и другую зеленую плату hx711. Их есть две версии. Одна красная, другая зеленая. Все работает. Потом присмотрелся к моим тензодатчикам до 50 кг. На картинке в магазине 3 провода: красный, белый, черный. У моих же красный, белый, зеленый. И мне казалось, что зеленый и черный это одно и тоже. Но потом понял, что нет. Подключил один тензодатчик с 2 резисторами, но только зеленый не заземлил, то есть не E-, а к A-подключил. И тоже все заработало. Получается зеленый и черный провод у полумостовых датчиков не одно и тоже. сподвигло на это вот эта статья https://wiki.iarduino.ru/page/hx_711_with_tenzo/ Но теперь не знаю, как подключить 4 тензодатчика вот по этой схеме Похоже буду новые покупать, только чтобы провода были красный, белый, черный.
  4. Нашел в чем ошибка. Но не знаю как ее исправить) Вот, что написано об 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?
  5. Сделал, не помогло. Я изменил чувствительность тензодатчика в Proteus Prj.zip. И теперь в Proteus тоже выводит 8388607 и не меняется. Видимо АЦП в зашкале. Как это исправить?
  6. Да подправил, теперь все зеленое. Архив GccApplication55.zip Но проблемы это не устранило. Опять тоже число выводится и не меняется.
  7. Собрал тестовый мост. Подключил один тензодатчик и 2 резистора 1 кОм по схеме Также прозвонил тензодатчик. У него одно плечо 1 кОм, второе 2 кОм. На железе также выводит 8388608. Ничего не поменялось по сравнению с 4 тензодатчиками. Попробовал без тензодатчиков выводит случайные большие числа. Если на двух мостах одно и тоже отображает, то значит ошибка не в железе. Получается в прошивке. Но я не понимаю где. В Proteus все работает. Или проблема в тензодатчиках..
  8. HipMan

    Весы на atmega8

    Делаю весы на atmega8. Использую плату АЦП hx711 и 4 тензодатчика полумост до 50 кг. Подключаю их по схеме Архив проекта в 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. Спаяно все вроде правильно. В чем ошибка? В программе? Или в пайке?
  9. Если не вынимать, то надо предусмотреть разъемы на плате от разъемов аккума, и купить переходники для подключения imax. Думаю удобнее купить модуль и заряжаться по micro usb от обычного адаптера. Я посмотрел видео работы с ним. Там аккум подключали к нему через 2-х выводной разъем, и 3-х выводной. 2-х выводной для зарядки, 3-х выводной для балансировки. Интересно, а только по 3-х выводному можно заряжать?
  10. Дорогой он. Да и аккумулятор надо будет вынимать. Лучше буду использовать модуль зарядки TP4056, повышающий преобразователь до 5В, и липольку 3,7В вместо 7,4В. Так на одну плату меньше будет (без балансира BMS). Вот что значит, когда всегда пользовался батарейками. Даже не знал, что с аккумуляторами такие тонкости существуют)
  11. Я использую еще дисплей lcd1602. Он требует 5В.
  12. Спасибо, разобрался. А вот такой подойдет? https://aliexpress.ru/item/32779335508.html Указано - Режим зарядки: CC-CV То что нужно вроде.
  13. Всем спасибо за ответы! Это я задавал вопрос, сейчас зарегистрировался. Жаль на рынке нет аккумулятора на 5В. Мне в проекте необходимо питать МК Atmega8. Придумал только использовать понижающий преобразователь до 5В и этот аккумулятор. Мог бы использовать крону, но она не помещается в корпус, а этот аккум спокойно входит. Не совсем понял, что значит для балансировки. Имеете ввиду, что разъем 3-х выводной, но подключены только красный и черный провод, и для балансировки разъема используется еще синий вывод? И для зарядки используются только красный и черный провода, синий не используется? Из ответов понял, что надо использовать лабораторный блок питания для зарядки аккума, чтобы ограничение по току выставлять. Это конечно не очень удобно...
×
×
  • Создать...