Весы на ардуино hx711. Электронные весы на Arduino с HX711 и тензодатчиком: пошаговая инструкция по сборке

Как собрать электронные весы на Arduino с помощью АЦП HX711 и тензодатчика. Какие компоненты нужны для создания весов. Как подключить и откалибровать тензодатчик. Как запрограммировать Arduino для работы с HX711. Какие проблемы могут возникнуть при сборке весов и как их решить.

Принцип работы электронных весов на основе тензодатчика

Электронные весы на основе тензодатчика работают по следующему принципу:

  1. Тензодатчик представляет собой упругий элемент с наклеенными тензорезисторами, соединенными в мостовую схему.
  2. При деформации упругого элемента под действием веса груза изменяется сопротивление тензорезисторов.
  3. Это вызывает разбаланс моста и появление напряжения на его выходе, пропорционального приложенной нагрузке.
  4. Выходной сигнал тензодатчика очень мал (единицы милливольт), поэтому требуется его усиление.
  5. Усиленный сигнал поступает на АЦП для преобразования в цифровой код.
  6. Микроконтроллер обрабатывает полученный код и выводит значение веса на дисплей.

Таким образом, тензодатчик преобразует механическое воздействие (вес) в электрический сигнал, который затем обрабатывается электронной схемой весов.


Необходимые компоненты для сборки весов на Arduino

Для сборки электронных весов на Arduino потребуются следующие основные компоненты:

  • Arduino (например, Arduino Uno или Nano)
  • Тензодатчик (например, на 5 кг)
  • Модуль АЦП HX711
  • LCD дисплей (например, 1602 или 2004)
  • Макетная плата
  • Соединительные провода
  • Резисторы и конденсаторы по схеме
  • Источник питания 5В

Дополнительно могут понадобиться кнопки, корпус, монтажная платформа для тензодатчика. Выбор конкретных компонентов зависит от желаемых характеристик весов.

Подключение тензодатчика к модулю HX711

Подключение тензодатчика к модулю HX711 осуществляется следующим образом:

  1. Красный провод тензодатчика (E+) подключается к E+ на HX711
  2. Черный провод (E-) — к E- на HX711
  3. Белый провод (A-) — к A- на HX711
  4. Зеленый провод (A+) — к A+ на HX711

При этом важно соблюдать следующие правила:

  • Не перепутать подключение проводов, иначе показания будут некорректными
  • Обеспечить надежный контакт в соединениях
  • Не допускать замыканий между проводами
  • Использовать экранированный кабель при большой длине соединений

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


Подключение модуля HX711 к Arduino

Модуль HX711 подключается к Arduino следующим образом:

  • VCC — к 5V на Arduino
  • GND — к GND на Arduino
  • DT (data) — к цифровому пину Arduino (например, D2)
  • SCK (clock) — к цифровому пину Arduino (например, D3)

При подключении необходимо учитывать следующие моменты:

  • Питание HX711 должно быть стабильным 5В
  • Линии данных и тактирования желательно делать как можно короче
  • Не располагать провода рядом с источниками помех
  • Использовать подтягивающие резисторы на линиях данных при необходимости

Корректное подключение HX711 обеспечит надежное считывание данных с тензодатчика.

Программирование Arduino для работы с HX711

Для программирования Arduino для работы с HX711 можно использовать следующий алгоритм:

  1. Подключить библиотеку HX711 в скетч
  2. Создать объект HX711 и указать пины подключения
  3. В setup() инициализировать HX711 и выполнить тарирование
  4. В loop() считывать значение с HX711
  5. Преобразовывать считанное значение в вес
  6. Выводить полученный вес на дисплей

Пример базового кода для Arduino:


«`cpp #include «HX711.h» #define DOUT_PIN 2 #define SCK_PIN 3 HX711 scale; void setup() { Serial.begin(9600); scale.begin(DOUT_PIN, SCK_PIN); scale.set_scale(); scale.tare(); } void loop() { if (scale.is_ready()) { long reading = scale.get_units(); Serial.print(«Вес: «); Serial.println(reading); } else { Serial.println(«HX711 не готов»); } delay(1000); } «`

Этот базовый код позволяет считывать данные с HX711 и выводить их в монитор порта. Для точного измерения веса потребуется калибровка.

Калибровка весов на Arduino

Калибровка весов на Arduino с HX711 выполняется в несколько этапов:

  1. Определение значения тары (нулевого веса)
  2. Измерение показаний АЦП для эталонного груза известной массы
  3. Расчет калибровочного коэффициента
  4. Внесение калибровочных данных в программу

Для калибровки можно использовать следующий алгоритм:

  1. Запустить весы без нагрузки и записать показания АЦП
  2. Поместить на весы эталонный груз (например, 1 кг)
  3. Записать новые показания АЦП
  4. Рассчитать коэффициент: K = (показания с грузом — показания без груза) / масса груза
  5. Использовать полученный коэффициент в программе для пересчета показаний АЦП в вес

Точность калибровки напрямую влияет на точность измерений весов.


Возможные проблемы при сборке весов и их решение

При сборке электронных весов на Arduino могут возникнуть следующие проблемы:

  • Нестабильные показания:
    • Проверить качество соединений
    • Обеспечить стабильное питание
    • Использовать фильтрацию показаний в коде
  • Неверные показания веса:
    • Перепроверить калибровку
    • Убедиться в правильности подключения тензодатчика
    • Проверить соответствие тензодатчика нагрузке
  • Отсутствие показаний:
    • Проверить питание HX711
    • Убедиться в правильности подключения линий данных
    • Проверить исправность тензодатчика

При возникновении проблем рекомендуется проверять каждый этап сборки и калибровки весов.


Электронные весы на базе HX711

На сегодняшний день в продаже имеются необходимые инструменты, чтобы буквально «на коленке» собрать свои электронные весы: микросхема АЦП HX711 (продается на AliExpress), специально предназначенная для применения в весах разрядностью 24 бита и датчик массы, представляющий собой мостовой или полумостовой измеритель на базе тензорезисторов в качестве чувствительного элемента.

Если при подборе элементной базы микросхемы HX711 представлены практически одними и теми же модулями, то датчики массы можно подобрать различной конфигурации. Главный параметр таких датчиков – это измеряемая масса (1 кг, 3 кг, 5 кг, 50 кг и так далее), в зависимости от этого параметра датчики могут иметь так же различную форму и исполнение. По сути, датчики массы измеряют приложенное усилие относительно плоскости датчика – вес тела, но при помощи несложных физических формул можно вычислить массу тела. А раз мы измеряем силу, с которой тело давит на датчик, то и сфера применения подобных схем резко увеличивается.

В самом простом случае – это обычные весы, для которых масса тела будет пропорциональна данным, получаемым от АЦП. В более сложных случаях при помощи схем на основе данной элементной базы можно измерять, например, скорость ветра (сила, с которой ветер давит на опору датчика, будет пропорциональна размеру опоры и скорости ветра) или регулировать прикладываемую силу к какому-либо предмету относительно получаемых данных.

При измерении массы тела данным методом стоит учитывать при разработке некоторые нюансы. Как уже отмечалось, датчик регистрирует вес тела, а вес тела это масса, умноженная на ускорение свободно падения или силу тяжести (~9,8 м/c2). Таким образом, видим, что измеренная масса тела будет зависеть от значения силы тяжести планеты, что значит, что в разных точках Земли, а также с увеличением высоты (расстояния от поверхности земли) сила тяжести будет изменяться, что повлияет на то, что масса тела в различных условиях может быть в небольшой степени различна. Хотя масса тела неизменна, но способ измерения связан этими физическими явлениями, поэтому это может являться причинами погрешности измерений кроме основных причин.

Как же мы все-таки измеряем массу (вес) тела этим датчиком, с виду напоминающим железную болванку?

Для начала необходимо иметь понятие о чувствительном элементе этого датчика – тензорезисторе.

Тензорезистор – это резистор, сопротивление которого изменяется в зависимости от его деформации.

С этим понятно – есть некий резистор (обычно это гибкая пластинка – пленочный тензорезистор, на который напылены проводящие элементы), который при изгибе, растяжении и прочих деформациях изменяет свое сопротивление. На датчике массы тензорезистор располагается под слоем белого защитного полимера. Основание датчика – алюминиевый брусок с отверстиями для крепления и большим отверстием для задания модуля упругости бруска таким образом, чтобы тензорезистор улавливал упругую деформацию этого бруска в заданном диапазоне измерения массы. Итак, собирая воедино способность тензорезистора изменять свое сопротивление при его деформации и способность металла бруска при упругой деформации растягиваться или сжиматься (деформироваться) при воздействии силы, получаем датчик, который измеряет деформацию при приложенной силе к этому датчику. А так как модуль упругости в самом распространенном варианте имеет линейный характер (закон Гука), получаем вполне точный датчик, с помощью которого можно измерять усилие, приложенное к датчику в заданной плоскости, и, следовательно, вес тела (и массу), прикладывая груз перпендикулярно датчика.

Направление усилия (приложения груза) указывается на самом датчике, там же указывается и вес, на который рассчитан этот датчик. Схема измерителя на этом датчике является полумостовой – один тензорезистор сверху, второй снизу, при приложении усилия один тензорезистор растягивается, второй сжимается. Схема способна регистрировать вес до сотой грамма, но в этом диапазоне очень много шумов, поэтому схема вполне стабильно способна регистрировать вес до десятых долей грамма. Однако, это применительно к датчику FZ0967 на 5 кг, если взять датчик на 1 кг, то теоретически минимально стабильный порог будет меньше. И аналогично при применении датчиков на больший вес минимально стабильный порог увеличится.

Таким образом, при выборе датчика стоит учитывать сферу применения для получения максимально точного результата.

Для измерения массы различных тел был сделан измерительный столик из подручных материалов, а именно старой коробки DVD дисков и самих дисков (или подкладных болванок).

Одной стороной датчик прикручивается к центру коробки от дисков, ко второму конце датчика прикручивается диск, на которой будут ставиться грузы (диски хотя и гибкие, но при приложении чрезмерной силы хрупкие, это стоит учитывать при сверлении отверстий в них, чтобы не расколоть). Таким образом, один конец датчика зафиксирован, а вес прикладывается к другому концу – приложенный груз как бы действует на изгиб датчика, хотя этого вы не заметите.

Для работы с такими датчиками была специально разработана микросхема АЦП HX711.

На базе этой микросхемы в поднебесной делается несколько видов модулей: копеечные модули без экрана и чуть дороже с экранированием элементов. Модуль с экранированием теоретически должен давать более стабильный результат измерений.

Основные параметры микросхемы АЦП HX711:

  • Два входных канала для измерения
  • Регулируемый коэффициент усиления 32, 64, 128
  • Простой цифровой интерфейс, не требующий программирования (так гласит даташит, хотя по большому счету программирование параметров присутствует)
  • Регулируемое количество выборок 10 или 80
  • Разрядность АЦП 24 бита
  • Фильтр на 50 и 60 Гц питания
  • Потребление тока до 1,5 мА
  • Напряжение питания от 2,7 до 5,5 вольт
  • Диапазон рабочих температур от минус 40 до плюс 85 градусов Цельсия
  • Знаковые выходные данные от 800000h до 7FFFFFh

Для подключения к микроконтроллеру используется простой цифровой интерфейс, схожий с I2C, но имеющий с ним мало общего, поэтому придется управлять выводами интерфейса выводами микроконтроллера (в простонародии ногодрыг), так как аппаратного интерфейса ни на одном микроконтроллере нет – это некоторая импровизация для упрощения работы микросхемой, хотя на самом деле, уходя от стандартов, это все только усложняет. Пример использования этого интерфейса присутствует в даташите, поэтому все можно делать просто по примеру и аналогии.

После того, как получим данные от АЦП необходимо учесть два нюанса. Первое, значение представляет собой чистые данные АЦП, то есть количество отсчетов относительно приложенного веса. Что бы не забивать себе голову пересчетами количества отсчетов в значение веса или массы, вспоминаем, что все зависимости у нас линейные, а значит пропорциональные, поэтому нам нужен всего один общий коэффициент для этого пересчета. Для моего экземпляра коэффициент равен 430 при пересчете в единицы грамм. Как это узнать? Есть два способа – строгий математический, с поиском различных справочных данных по материалу из которого изготовлен датчик, поиска параметров тензорезисторов для выведения зависимости модуля упругости материала в данной геометрической конфигурации к сопротивлению тензорезисторов при упругой деформации датчика. Второй способ не самый точный, но крайне быстрый и простой. Необходимо просто замерить сколько отсчетов АЦП приходится на единицу приложенной массы. Для этого необходимо учесть второй нюанс – сама конструкция имеет некоторый вес и перед измерениями его нужно просто убрать – вычесть и получить «ноль» на весах. Далее поставить на весы гирьку определенной известной массы и получить некоторое значение АЦП. Это количество отсчетов будет приходится на единицу массы на весах:

К=(количество отсчетов с массой гирьки – количество отсчетов без приложенной массы) / масса гирьки

Далее этот коэффициент используется после каждого измерения АЦП для перевода в значение единиц массы и выводится на дисплей. Для моего экземпляра этот коэффициент равен 430.

Для сборки весов используем микроконтроллер STM32.

Исходный код для микроконтроллера находится в конце статьи. Схему удобно собирать на минимальной отладочной плате, потому что в этом случае необходимо минимум деталей для сборки — соединяем между собой плату с микроконтроллером, дисплей и модуль АЦП с датчиком, подключаем к питанию.

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

Как видим, схема показывает весьма неплохие результаты точности измерения (небольшое видео находится в конце статьи). Стоит помнить также о том, что датчик рассчитанный на измерение массы до 200 кг не даст такой точности до сотых долей грамма как датчик, рассчитанный на измерение массы до 100 г. Поэтому при выборе датчика обязательно нужно учитывать сферу применения весов для получения наиболее оптимальных результатов.

Список радиоэлементов
Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК STM32

STM32F103C8

1 Поиск в магазине ОтронВ блокнот
HG1 LCD-дисплейILI93411 Поиск в магазине ОтронВ блокнот
MOD1 Модуль АЦПHX7111 Поиск в магазине ОтронВ блокнот
MOD2 ТензодатчикFZ09671 5 кгПоиск в магазине ОтронВ блокнот
VR1 Линейный регулятор

AMS1117-3. 3

1 Поиск в магазине ОтронВ блокнот
Z1 Кварц8 МГц1 Поиск в магазине ОтронВ блокнот
S1, S2 Кнопка тактовая2 Поиск в магазине ОтронВ блокнот
HL1 Светодиод1 Поиск в магазине ОтронВ блокнот
R1 Резистор

100 Ом

1 Поиск в магазине ОтронВ блокнот
R2-R4 Резистор

10 кОм

3 Поиск в магазине ОтронВ блокнот
R5 Резистор

390 Ом

1 Поиск в магазине ОтронВ блокнот
C1, C2 Конденсатор22 пФ2 Поиск в магазине ОтронВ блокнот
C3-C7, C9 Конденсатор100 нФ6 Поиск в магазине ОтронВ блокнот
C8 Электролитический конденсатор220 мкФ1 Поиск в магазине ОтронВ блокнот
C10 Электролитический конденсатор100 мкФ1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Теги:
  • STM32
  • LCD
  • Весы
  • АЦП
  • Тензорезистор
  • Микроконтроллер

АЦП для весов с тензо-датчиком HX711 (зеленая плата)

Аналого-цифровой преобразователь для весов с тензо-датчиком на чипе HX711.

  • Два дифференциальных входных канала 
  • Встроенный активный малошумящий PGA с выбираемым усилением 32 (канал В), 64 или 128 (канал А)
  • Встроенный стабилизатор питания для тензодатчиков
  • Встроенный генератор, не требующий внешних компонентов с дополнительным внешним кристаллом
  • Простое цифровое управление и последовательный интерфейс
  • Возможность выбора выходной скорости передачи данных: 10 (по-умолчанию) или 80 измерений в секунду (устанавливается перемычкой на плате).
  • Потребляемый ток с учетом встроенного аналогового регулятора питания: нормальная работа <1,5 мА, отключение питания <1 мкА
  • Напряжение питания: 5 В
  • Диапазон рабочих температур: -40 … + 85 ℃.

Назначение контактов:

  • E+, E- питание тензодатчиков;
  • A-, A+ дифференциальный вход канала А;
  • B-, B+ дифференциальный вход канала B;
  • SD — экранирование;
  • VCC — напряжение питания;
  • GND – общий контакт;
  • DAT – линия данных;
  • SCK – линия синхронизации.

АЦП HX711  предназначен для работы с тензорезистивными датчиками веса, которые представляют собой мост Уитстона, состоящий и четырех тензо-резисторов, два из которых работают на растяжение и два на сжатие.

Сопротивление проводника можно вычислить по формуле R=p*l/S, где p — удельное сопротивление материала, l — длинна проводника, S — площадь поперечного сечения проводника.

Представьте нихромовую нить, при попытке растянуть её не только увеличится длина, но и уменьшится поперечное сечение (а при сжатии сечение наоборот увеличится). Это в свою очередь повлияет на сопротивление нихромовой нити, но не значительно. Чтобы усилить изменение сопротивления при растяжении или сжатии проводника, его (проводник) укладывют «змейкой». Но и в таком случае изменение сопротивления не столь велико, чтобы измерить его обыкновенным Омметром. Поэтому тензорезисторы подключают в виде моста Уитстона.

 

 

На плате предусмотрена цепь, которая обеспечивает стабильное питание для моста Уитстона. И хотя в datasheet указано рабочее напряжение микросхемы 2,7-5,5 вольт, стабильные значения питания тензодатчика допустимы только при напряжении 5 вольт.

Внимание!!! Данная плата содержит ошибку, которую легко исправить. Обратите внимание на принципиальную схему приведенную выше, на ней видно, что вывод Е- соединен с выводом GND. На печатной плате соединение Е- с GND отсутствует, также отсутствуют и конденсаторы 10uF и 0.1uF между выводами Е- и Е+. Чтобы АЦП работал без сбоев необходимо соединить Е- с GND и установить конденсаторы 10uF и 0.1uF между выводами Е- и Е+.

   

 

На выходе тензодатчика при приложении нагрузки появляется напряжение, но оно слишком мало и не превышает 40 милливольт. Поэтому в МС НХ711 сигнал предварительно усиливается, а затем поступает на 24-битный аналогово-цифровой преобразователь. Коэффициент усиление сигнала составляет 64 и 128 для канала А и 32 для канала В. После усиления на выходе аналого-цифрового преобразователя получается число, значение которого прямо пропорционально поступившему на вход напряжению и приложенному к тензодатчику весу. По сути, полученное значение — безразмерная величина (в «попугаях»), поэтому весы перед использованием необходимо калибровать.

Кроме линейности усилителя и АЦП микросхемы НХ711 линейная зависимость полученных значений от веса сильно зависит от свойств тензодатчиков. На данный момент нелинейность тензодатчиков составляет 0,015-0,02%, поэтому можно считать, что полученные данные имеют строгую линейную зависимость от напряжения.

Формула прямой выглядит следующим образом f(x)=a*x+b, где b в нашем случае — тара, совокупность веса самого датчика и опирающихся на него частей весов (например, чаша весов), а также балластный груз (тара). Буквой a обозначен поправочный коэффициент, некое значение, на которое делится полученное от АЦП значение.

При калибровке необходимо предварительно считать показания АЦП при пустых весах, таким образом мы получим значение тары, это значение необходимо будет вычитать из полученных от АЦП значений каждый раз. На этом этапе, после вычитания «веса» тары (полученного в «попугаях») мы должны получить 0.

Затем необходимо использовать эталонный вес с известным значением. Допустим, что для калибровки мы использовали гирьку весом 100 грамм и получили значение АЦП 1234567. Поделив полученное от АЦП значение на вес мы получаем тот самый поправочный коэффициент.

Стоит заметить, что HX711 чувствительна к температуре, поэтому предпочтительно создавать таблицу поправочных коэффициентов в зависимости от температуры, либо стабилизировать температуру окружающей HX711 среды.

Теперь алгоритм работы с весами выглядит так:

  • запомнить значение АЦП без нагрузки (тару)
  • измерить значение АЦП под нагрузкой
  • отнять от полученного АЦП значение тары
  • поделить полученное значение на коэффициент

Для работы с данным модулем рекомендуем использовать библиотеку для arduino, или если вы предпочитаете работать с другими микроконтроллерами, то необходимо ознакомиться с даташитом.

Комплект электронных весов Keyestudio Цифровой датчик веса 5 кг HX711 для Arduino Электронный комплект для самостоятельного программирования STEM

Комплект электронных весов Keyestudio Цифровой датчик веса 5 кг HX711 для Arduino Электронный комплект для самостоятельного программирования STEM

Your position: Home / Arduino / Starter Kit

Формат PDF

KS0345

2 отзыва(ов) Продано:14

  • Описание
  • Особенности
  • Документы
  • Отзывы(2)
  • 1. Многоцелевая функция: ввод и управление с клавиатуры, дисплей 1602, взвешивание, подсчет, расчет цены, будильник, отображение температуры и времени

  • 2. Простота сборки: подключение через паз и без пайки

  • 3. Новый стиль: использование прочной деревянной доски, акриловой доски, модулей RGB и LCD 1602.

  • 4. Высокое расширение: сохранение портов IIC, UART, SPI и расширение других датчиков и модулей.

  • 5. Базовое обучение программированию: использование языка C и кода.


    Параметры:

  • Входное напряжение: 7-12 В

  • Рабочее напряжение: 5 В

  • Рабочий ток: 100 мА

  • Максимальная потребляемая мощность: 1,5 Вт

  • 5 звезд100%
  • 4 звезды0%
  • 3 звезды0%
  • 2 звезды0%
  • 1 звезда0%

Средний рейтинг: 5,0 на основе 2 отзывов

Поделитесь своими мыслями с другими покупателями

Написать отзыв

Обзоры продуктов могут быть выполнены после входа в систему, пожалуйста, нажмите здесь, чтобы войти

keyestudio настольный робот для рисования пишущий робот Drawbot машина для рисования почерк машина для Arduino DIY

$ 102,00

Keyestudio 2560 макетная плата, совместимая с Arduino Uno R3 + USB-кабель

$ 26. 00

Keyestudio 328 WIFI PLUS основная плата управления для Arduino UNO R3 и ESP8266 макетная плата

$ 16,20

Keyestudio ESP32 Learning Kit Basic Edition ESP32 Starter Kit DIY Электронный набор для Arduino

$ 30,70

Фенни Ариэль Виола Солнечный

WeChat

Солнечно Виола Фенни Ариэль

Ариэль Виола Фенни

Ссылки:автозапчасти

Блок весов с диапазоном 20 кг (HX711)

ДОМ > МАГАЗИН > Блок весов с диапазоном 20 кг (HX711)

{% конец%}

    size}}»> {% для продукта в продуктах %} {% присвоить first_available_variant = false %} {% для варианта в product.variants %} {% if first_available_variant == false and variant.available %}{% assign first_available_variant = variant %}{% endif %} {% конец для %} {% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %} {% если product.images[0] %} {% assign feature_image = product.images[0] | img_url: ‘350x’ %} {% еще %} {% присвоить Featured_image = no_image_url | img_url: ‘350x’ %} {% конец%}
  • {%, если box.template.elements содержит ‘saleLabel’ и first_available_variant.compare_at_price > first_available_variant.price %} {{перевод.продажа}} {% конец%} {% если только продукт.доступен %} {{translation. sold_out}} {% бесконечный %} {{продукт.название}} {% присвоить варианты_размера = продукт.варианты | размер %}

    {% для варианта в product.variants %} {{variant.title}}{%, если только вариант.доступен %} — {{translation.sold_out}}{% endunless %} {% конец для %}

    {%, если box.template.elements содержит ‘цену’ %} first_available_variant.price %} ga-product_have_oldprice {% endif %}»>{{first_available_variant.price | деньги}} {% if first_available_variant.compare_at_price > first_available_variant.price %} {{первый_доступный_вариант.compare_at_price | деньги}} {% конец%} {% конец%} {%, если box.template.elements содержит ‘addToCartBtn’ %} {% конец%}
  • {% конец для %}

{% elsif box. template.id == 2 или box.template.id == ‘2’ %}

{% if box.title и box.title.text и box.title.text != » %}

{{box.title.text}}

{% endif %} {% if box.subtitle и box.subtitle.text и box.subtitle.text != » %}

{{box.subtitle.text}}

{% endif %} {% присвоить total_price = 0 %}

{% для продукта в продуктах %} {% присвоить first_available_variant = false %} {% для варианта в product.variants %} {% if first_available_variant == false and variant.available %}{% assign first_available_variant = variant %}{% endif %} {% конец для %} {% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %} {%, если first_available_variant.available и box.template.selected %} {% присвоить total_price = total_price | плюс: first_available_variant. price %} {% конец%} {% если product.images[0] %} {% assign feature_image = product.images[0] | img_url: ‘350x’ %} {% еще %} {% присвоить Featured_image = no_image_url | img_url: ‘350x’ %} {% конец%}

{% если только продукт.доступен %} {{translation.sold_out}} {% бесконечный %}

{% конец для %}

{%, если box.template.elements содержит ‘цену’ %}

{{translation.total_price}} {{total_price | деньги}}

{% конец%} {%, если box.template.elements содержит ‘addToCartBtn’ %} {% конец%}

    {% для продукта в продуктах %} {% присвоить first_available_variant = false %} {% для варианта в product.variants %} {% if first_available_variant == false and variant. available %}{% assign first_available_variant = variant %}{% endif %} {% конец для %} {% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %} {% если product.images[0] %} {% assign feature_image = product.images[0] | img_url: ‘350x’ %} {% еще %} {% присвоить Featured_image = no_image_url | img_url: ‘350x’ %} {% конец%}
  • {% if product.id == cur_product_id %} {{translation.this_item}} {% endif %}{{product.title}}{%, если только product.available %} — {{translation.sold_out}}{% бесконечный %} {% присвоить варианты_размера = продукт.варианты | размер %}

    {% для варианта в product.variants %} {{variant.title}}{%, если только вариант.доступен %} — {{translation.sold_out}}{% endunless %} {% конец для %}

    {%, если box.template.elements содержит ‘цену’ %} first_available_variant. price %} ga-product_have_oldprice {% endif %}»>{{first_available_variant.price | деньги}} {% if first_available_variant.compare_at_price > first_available_variant.price %} {{первый_доступный_вариант.compare_at_price | деньги}} {% конец%} {% конец%}
  • {% конец для %}

{% elsif box.template.id == 3 или box.template.id == ‘3’ %}

{% if box.title и box.title.text и box.title.text != » %}

{{box.title.text}}

{% endif %} {% if box.subtitle и box.subtitle.text и box.subtitle.text != » %}

{{box.subtitle.text}}

{% endif %} {% присвоить total_price = 0 %}

    {% для продукта в продуктах %} {% присвоить first_available_variant = false %} {% для варианта в product.variants %} {% if first_available_variant == false and variant. available %}{% assign first_available_variant = variant %}{% endif %} {% конец для %} {% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %} {%, если first_available_variant.available и box.template.selected %} {% присвоить total_price = total_price | плюс: first_available_variant.price %} {% конец%} {% если product.images[0] %} {% assign feature_image = product.images[0] | img_url: ‘100x’ %} {% еще %} {% присвоить Featured_image = no_image_url | img_url: ‘100x’ %} {% конец%}
  • {% если только продукт.доступен %} {{translation.sold_out}} {% бесконечный %}

    {% if product.id == cur_product_id %} {{translation.this_item}} {% endif %}{{product.title}}{%, если product.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *