Hx711 (весы) не получается перенести пины

Тема в разделе "Arduino & Shields", создана пользователем Михаил123, 10 авг 2020.

  1. Сделаны пины снятия величины 2 и 3.
    Пробовал 51,52 ; A8 и А9.
    не работают.
    Что я не учёл?
     
  2. Asper Daffy

    Asper Daffy Иксперд

    Миша, в каждой теме одно и тоже. Ни скетча, ни схемы, ни какого-то описания. Вам каждый раз это говорят, а воз и ныне там. Вы меня простите, конечно, но Вы дебил "альтернативно одарённый"?
     
  3. Мурзик, ну что там может быть непонятного? Вроде, это всё в нете идёт как отче наш. Любой стандартный скетч с этими примерами.
    однако:
    Код (C++):
    #include "HX711.h"
    HX711 scale;
    const int LOADCELL_DOUT_PIN = 2;
    const int LOADCELL_SCK_PIN = 3;
    setup
    {
          scale.begin(LOADCELL_DOUT_PI, LOADCELL_SCK_PIN);
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
          scale.set_scale(2280.f);
          scale.tare();
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
    }
    loop
    {
             //scale.power_up();
              delay(50);
              Serial.println(scale.get_units(10), 1);
              //scale.power_down();
    }
    вопрос в том, почему я не умею переводить на другие пины эту штуку.
    есть примеры того же, но на пинах А0 и А1, А0 и AN...
    но мне надо это перекинуть на расширенный разъём меги2560. Другие заняты, теперь.

    ну и появился вопрос 2:
    scale.begin не булевая фигня. Как понять, что порт открылся?
     
  4. a1000

    a1000 Гуру

    А что вы собственно хотите получить в ответ? Откройте папку с библиотекрй и загляните в файл HX711.cpp. Находите интересующую вас функцию
    Код (C++):
    void HX711::begin(byte dout, byte pd_sck, byte gain) {
        PD_SCK = pd_sck;
        DOUT = dout;

        pinMode(PD_SCK, OUTPUT);
        pinMode(DOUT, INPUT_PULLUP);

        set_gain(gain);
    }
    Что видим. тип void - возвращать она ничего не будет. Что в ней делается - конфигурируется режим работы пинов для линии данных и синхронизации. Ещё вызывается функция set_gain в которой выбирается канал и коэфициент усиления. Но вы при вызове функции begin не передаёте ей значение gain. По этому осуществляется выбот по умолчанию - канал "А", коэфициент 128. Так-что там нет ничего, что может дать сбой.
     
  5. ну а если просто проводок отвалился ?
    как понять что всё фунциклирует, только по выводимым значениям?
     
  6. почему тогда на пинах 2 и 3 библиотека работает, а на пинах 42 и 43 -нет ?
     
  7. a1000

    a1000 Гуру

    Команда pinMode выполниться в любом случае. Ей глубоко по барабану подключено что-то к пину или нет.
    Ну а по остальным вопросом повторю Asper Daffy - показывайте свой скетч, схему и более подробно опишите, что знеачит "не получается".
     
  8. Код (C++):
    #include "HX711.h"
    HX711 scale;
    const int LOADCELL_DOUT_PIN = 32; // это меняю
    const int LOADCELL_SCK_PIN = 33;
    setup
    {
          scale.begin(LOADCELL_DOUT_PI, LOADCELL_SCK_PIN);
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
          scale.set_scale(2280.f);
          scale.tare();
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
    }
    loop
    {
             //scale.power_up();
              delay(50);
              Serial.println(scale.get_units(10), 1);
              //scale.power_down();
    }
     
  9. Код (C++):
    #include "HX711.h"
    HX711 scale;
    const int LOADCELL_DOUT_PIN = 42; // или так
    const int LOADCELL_SCK_PIN = 43;
    setup
    {
          scale.begin(LOADCELL_DOUT_PI, LOADCELL_SCK_PIN);
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
          scale.set_scale(2280.f);
          scale.tare();
          scale.read();
          scale.read_average(20);
          scale.get_value(5);
          scale.get_units(5), 1;
    }
    loop
    {
             //scale.power_up();
              delay(50);
              Serial.println(scale.get_units(10), 1);
              //scale.power_down();
    }
     
  10. a1000

    a1000 Гуру

    А теперь схему и в чем выражается "не получается"
     
  11. схему чего?
    "не получается" - не работает приблуда на пинах, отличных от 2 и 3
     
  12. a1000

    a1000 Гуру

    Я пас. Пусть кто-то другой вытягивает из вас информацию.
     
    Andrey12 нравится это.
  13. Asper Daffy

    Asper Daffy Иксперд

    ТС - известный персонаж. Его на соседнем форуме послали, так он посчитал, что то место, куда послали как раз здесь находится :)
     
    b707 и Andrey12 нравится это.
  14. по-человечьи спросить можно?
    я не понимаю, какую схему надо дать.
     
  15. parovoZZ

    parovoZZ Гуру

    В связи с возможным баном топикстартера, я тоже не буду ёрничать.
     
    Михаил123 нравится это.
  16. Airbus

    Airbus Радиохулиган Модератор

    А здесь всегда так. Там посылают а идут сюда почему то. Нет чтоб на Бредборд
     
    Andrey12 и Михаил123 нравится это.
  17. Unixon

    Unixon Оракул Модератор

    Лучше фото штуки в сборе, чтобы видно было, где какие провода (не)перепутаны.
     
    Михаил123 нравится это.
  18. ПОНЯЛ,спс
    однако, уже ОПЯТь сам разобрался.
    пока тут "умники" мне мозг выносили...
     
    Airbus нравится это.
  19. "Умники", всем спасибо
    Не умничали, дали время.
    сделал :
    constint LOADCELL_DOUT_PIN =62;
    constint LOADCELL_SCK_PIN =63;
    посадил выводы на а8 и а9.
    Всё пошло.
     
    Последнее редактирование модератором: 12 авг 2020
    Airbus нравится это.
  20. что за Бредборд?