Приветствую всех.
Всем благ!!
Я собрал свой проект. Сам собрал как смог.
Нашел скетч. Немного подправил его.
Но столкнулся вот с проблемой. Данные с датчика обновляются только после перезагрузки.
Менял, время обновления в скетче не помогает.
Прошу помощи! Если непонятно обьясняю, Извините. Задавайте вы вопросы.
Собрано на ; ардуино Nano, ina226, и жк дисплей. К ina подключен датчик давления, с него измеряю выходной ток.
Спс. Щя проверю. А почему программа это пропускает?
BOOM
09.Июнь.2024 12:42:58
4
Что пропускает? Картинки? Она для этого создавалась ))
Я наверное щя затупил конкретно)))) и полез в програиму эти апострофы вставлять)))) я правильнл понимаю, что вы просите программный код скинуть в обсуждение через апострофы?
‘’’
#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);
‘’’
Это точно!
Перечитайте ещё раз то, что Вам указали и попробуйте вставить кож ещё раз. Может, со второго раза лучше получится.
Мне всегда нравятся чаты! На этом ссайте))) . Здесь столько умных людей!
Помогите уж убогому. Несмейтесь.
v258
09.Июнь.2024 13:55:41
9
А никто и не смеется. Что проще, как правильно вставить код. Если вы с этим справиться не в состоянии, то о чем вообще говорить?
v258
09.Июнь.2024 13:58:06
10
Для вставки кода используются обратные апострофы. Обратные, а не абы какие. Находится сей чудный символ на кнопке с буквой ё. Так же можно воспользоваться кнопкой </>.
Я тоже так подумал. И слово мне знакомое, но черт дернул спросить у гугля и он ответил что этот знак находится с права от кнопки ентэр. Ну я его и использовал до 3 раза и после.
Я не думаю, что для знающих людей это проблем.
Вопрос остается тотже. Что с кодом не так?
А еще буквы ë у меня на клаве нет))))
v258
09.Июнь.2024 14:12:36
13
timbul747:
Что с кодом не так?
Во первых, вставлен не по правилам. Обсуждать его в таком виде нет смысла. Нам по пальцам номера проблемных строк высчитывать?
Во вторых, даже так видно, что код не полный. Исправляйтесь.
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 милисек
}
///
v258
09.Июнь.2024 14:25:36
15
Апостроф. Не слэш (косая палка), а АПОСТРОФ!!!
Похоже, тест на IQ вы успешно провалили ))
)))))))) Я так понимаю просто по ржать все это. Сам же писал, можно воспользоватся косой палкой.
v258
09.Июнь.2024 14:31:32
17
Где я такое писал? Я писал про кнопку </>. Она находится на панели инструментов окна, где вы пишете свои сообщения в теме. И именно так и выглядит
1 лайк
v258
09.Июнь.2024 14:32:11
18
Да нет, вы просто реально ничего не понимаете
#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 милисек
}
введите или вставьте сюда код
Да. да я мало соображаю. Извините! уже писал.
Спасибо за доскональное обьяснение!!!