Не работает обновление данных

Приветствую всех.
Всем благ!!
Я собрал свой проект. Сам собрал как смог.
Нашел скетч. Немного подправил его.
Но столкнулся вот с проблемой. Данные с датчика обновляются только после перезагрузки.




Менял, время обновления в скетче не помогает.

Прошу помощи! Если непонятно обьясняю, Извините. Задавайте вы вопросы.
Собрано на ; ардуино Nano, ina226, и жк дисплей. К ina подключен датчик давления, с него измеряю выходной ток.

Спс. Щя проверю. А почему программа это пропускает?

Что пропускает? Картинки? Она для этого создавалась ))

Я наверное щя затупил конкретно)))) и полез в програиму эти апострофы вставлять)))) я правильнл понимаю, что вы просите программный код скинуть в обсуждение через апострофы?

‘’’

#include “LiquidCrystal_I2C.h”
#include “INA226a.h”

#define ADDRESS_INA226 0X40
#define SET_OVER_VOLTAGE 4400

LiquidCrystal_I2C lcd(0x27, 16, 2);
INA226_Class sensor;

int8_t Rsh = 10;
uint8_t stateSensor = 0;
bool answerDevice;

void setup()
{
Serial.begin(115200);
lcd.begin();
lcd.backlight();
lcd.clear();
lcd. print(" TEST INA226");
delay(1000);
lcd.clear();
lcd. print(“Sensor INA226”);
lcd.setCursor(2, 1);
answerDevice = sensor.begin(ADDRESS_INA226);
if (answerDevice == true) lcd.print(" found");
else
{
lcd.print(" isn’t found");
while(1);
}
sensor.setModeDevice(MODE_SHUNT_CONTINUOUS, ADDRESS_INA226);
sensor.setAveraging(AVERAGING_64, ADDRESS_INA226);
sensor.setBitExcess(SHUNT_VOLTAGE_OVER, ADDRESS_INA226);
sensor.setAlertLimit(SET_OVER_VOLTAGE, ADDRESS_INA226);
delay(2000);
lcd.clear();

void loop()
{
int16_t kodVoltRaw = sensor.getVoltBus(ADDRESS_INA226);
int16_t current_mA = (int32_t)kodVoltRaw;
lcd.setCursor(0, 0);
lcd.print(" V = “);
if (current_mA < 0)
{
lcd.print(”-“);
current_mA *= -1;
}
lcd.print(current_mA / 1000);
lcd.print(”.");
lcd.print(current_mA % 1000);
lcd.print("V ");

delay(20);
‘’’

Это точно!

Перечитайте ещё раз то, что Вам указали и попробуйте вставить кож ещё раз. Может, со второго раза лучше получится.

Мне всегда нравятся чаты! На этом ссайте))) . Здесь столько умных людей!
Помогите уж убогому. Несмейтесь.

А никто и не смеется. Что проще, как правильно вставить код. Если вы с этим справиться не в состоянии, то о чем вообще говорить?

Для вставки кода используются обратные апострофы. Обратные, а не абы какие. Находится сей чудный символ на кнопке с буквой ё. Так же можно воспользоваться кнопкой </>.

Я тоже так подумал. И слово мне знакомое, но черт дернул спросить у гугля и он ответил что этот знак находится с права от кнопки ентэр. Ну я его и использовал до 3 раза и после.
Я не думаю, что для знающих людей это проблем.
Вопрос остается тотже. Что с кодом не так?

А еще буквы ë у меня на клаве нет))))

Во первых, вставлен не по правилам. Обсуждать его в таком виде нет смысла. Нам по пальцам номера проблемных строк высчитывать?
Во вторых, даже так видно, что код не полный. Исправляйтесь.

1 лайк

///
/* ТЕСТ МОНИТОРА ТОКА (МОЩНОСТИ) INA226 */
#include “LiquidCrystal_I2C.h” // подключение библиотеки LCD дисплея
#include “INA226a.h” // подключение библиотеки датчика

#define ADDRESS_INA226 0X40 // адрес датчика по шине I2C
#define SET_OVER_VOLTAGE 4400 // уставка превышения по напряжению шунта (чуть больше 1А)

// Объекты
LiquidCrystal_I2C lcd(0x27, 16, 2);
INA226_Class sensor;

int8_t Rsh = 10; // сопротивление шунта в милиОмах
uint8_t stateSensor = 0;
bool answerDevice;
‘’’
void setup()
{
Serial.begin(115200);
lcd.begin(); // настройка дисплея
lcd.backlight(); // включение подсветки
lcd.clear(); // очистка экрана
lcd. print(" TEST INA226"); // вывод надписи
delay(1000); // пауза 1 секунда
lcd.clear(); // очистка экрана
lcd. print(“Sensor INA226”); // вывод надписи
lcd.setCursor(2, 1); // переход на 2 строку
answerDevice = sensor.begin(ADDRESS_INA226); // инициализация датчика INA226
if (answerDevice == true) lcd.print(" found"); // если датчик присутствует на шине, то выводим надпись “Датчик найден”"
else
{
lcd.print(" isn’t found"); // иначе выводим надпись “Датчик не найден”
while(1); // и зависаем!
}
sensor.setModeDevice(MODE_SHUNT_CONTINUOUS, ADDRESS_INA226); // установка режима “Измерение Ush, непрерывно”
sensor.setAveraging(AVERAGING_64, ADDRESS_INA226); // установка усреднения, равного 64
sensor.setBitExcess(SHUNT_VOLTAGE_OVER, ADDRESS_INA226); // установка режима тревоги “Превышение по Ush”
sensor.setAlertLimit(SET_OVER_VOLTAGE, ADDRESS_INA226); // запись в регистр сравнения уставки
delay(2000); // пауза 2 секунда
lcd.clear(); // очистка экрана
}

void loop()
{
int16_t kodVoltRaw = sensor.getVoltBus(ADDRESS_INA226); // получение “сырого кода” напряжения шины
int16_t current_mA = (int32_t)kodVoltRaw; // вычисление тока, мА
lcd.setCursor(0, 0); // переход на первую строку
lcd.print(" V = “); // начало вывода тока
if (current_mA < 0) // если ток отрицательный
{
lcd.print(”-“); // выводим знак “минус”
current_mA *= -1; // преобразуем отрицательное число в положительное
}
lcd.print(current_mA / 1000); // выводим значение тока в амперах (целай часть)
lcd.print(”."); // ставим разделительную точку
lcd.print(current_mA % 1000); // выводим значение тока в амперах (десятичная часть)
lcd.print("V "); // символ Вольт

delay(20); // пауза 200 милисек

}
///

Апостроф. Не слэш (косая палка), а АПОСТРОФ!!!

Похоже, тест на IQ вы успешно провалили ))

)))))))) Я так понимаю просто по ржать все это. Сам же писал, можно воспользоватся косой палкой.

Где я такое писал? Я писал про кнопку </>. Она находится на панели инструментов окна, где вы пишете свои сообщения в теме. И именно так и выглядит

1 лайк

Да нет, вы просто реально ничего не понимаете

#include "LiquidCrystal_I2C.h"                                                      //  подключение библиотеки LCD дисплея
#include  "INA226a.h"                                                               //  подключение библиотеки датчика

#define ADDRESS_INA226      0X40                                                    //  адрес датчика по шине I2C
#define SET_OVER_VOLTAGE    4400                                                    //  уставка превышения по напряжению шунта (чуть больше 1А)

//  Объекты
LiquidCrystal_I2C lcd(0x27, 16, 2);
INA226_Class  sensor;

int8_t Rsh = 10;                                                                    //  сопротивление шунта в милиОмах
uint8_t stateSensor = 0;
bool    answerDevice;
'''
void setup()
{
  Serial.begin(115200);
  lcd.begin();                                                                      //  настройка дисплея
  lcd.backlight();                                                                  //  включение подсветки
  lcd.clear();                                                                      //  очистка экрана
  lcd. print("  TEST INA226");                                                      //  вывод надписи
  delay(1000);                                                                      //  пауза 1 секунда
  lcd.clear();                                                                      //  очистка экрана
  lcd. print("Sensor INA226");                                                      //  вывод надписи
  lcd.setCursor(2, 1);                                                              //  переход на 2 строку
  answerDevice = sensor.begin(ADDRESS_INA226);                                      //  инициализация датчика INA226
  if (answerDevice == true) lcd.print("   found");                                  //  если датчик присутствует на шине, то выводим надпись "Датчик найден""
   else 
     {
       lcd.print(" isn't found");                                                   //  иначе выводим надпись "Датчик не найден"
       while(1);                                                                    //  и зависаем!
     }                                       
  sensor.setModeDevice(MODE_SHUNT_CONTINUOUS, ADDRESS_INA226);                      //  установка режима "Измерение Ush, непрерывно"
  sensor.setAveraging(AVERAGING_64, ADDRESS_INA226);                                //  установка усреднения, равного 64
  sensor.setBitExcess(SHUNT_VOLTAGE_OVER, ADDRESS_INA226);                          //  установка режима тревоги "Превышение по Ush"
  sensor.setAlertLimit(SET_OVER_VOLTAGE, ADDRESS_INA226);                           //  запись в регистр сравнения уставки
  delay(2000);                                                                      //  пауза 2 секунда
  lcd.clear();                                                                      //  очистка экрана
}

void loop()
{
  int16_t kodVoltRaw = sensor.getVoltBus(ADDRESS_INA226);                        //  получение "сырого кода" напряжения шины
  int16_t current_mA = (int32_t)kodVoltRaw;                                         //  вычисление тока, мА 
  lcd.setCursor(0, 0);                                                              //  переход на первую строку
  lcd.print("  V = ");                                                              //  начало вывода тока
  if (current_mA < 0)                                                               //  если ток отрицательный
  {
    lcd.print("-");                                                                 //  выводим знак "минус"
    current_mA *= -1;                                                               //  преобразуем отрицательное число в положительное
  }
  lcd.print(current_mA / 1000);                                                     //  выводим значение тока в амперах (целай часть)
  lcd.print(".");                                                                   //  ставим разделительную точку
  lcd.print(current_mA % 1000);                                                     //  выводим значение тока в амперах (десятичная часть)
  lcd.print("V    ");                                                               //  символ Вольт
  
    
  delay(20);                                                                       // пауза 200 милисек
  
  
}
введите или вставьте сюда код

Да. да я мало соображаю. Извините! уже писал.
Спасибо за доскональное обьяснение!!!