#include <Wire.h>
#include <Adafruit_INA219.h>
#include <SoftwareSerial.h>
#include <Nextion.h>
Adafruit_INA219 ina219;
SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
int v=0;
float busvoltage = 0;
void setup()
{
Serial.begin(9600);
myNextion.init();
ina219.begin();
}
void loop()
{
v=0;
while(v<=100)
{
busvoltage = ina219.getBusVoltage_V();
//выводим значения напряжения в текстовое поле t3
myNextion.setComponentText("t3", String(busvoltage));
//выводим значения счетчика от 0 до 100 в текстовое поле t4
myNextion.setComponentText("t4", String(v));
//Заполняем прогресс бар от 0 до 100%
myNextion.setComponentValue("j0", v);
v++;
delay(100);
}
}
#include <Wire.h>
#include <Adafruit_INA219.h>
#include <SoftwareSerial.h>
#include <Nextion.h>
Adafruit_INA219 ina219;
SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
int v=0;
float busvoltage = 0;
void setup()
{
Serial.begin(9600);
myNextion.init();
ina219.begin();
}
void loop()
{
busvoltage = ina219.getBusVoltage_V();
if (busvoltage<2.59)
{
myNextion.setComponentText("t0", "Low battery");
myNextion.setComponentText("t3", "<2.59V");
myNextion.setComponentText("t4", "0");
myNextion.setComponentValue("j0", 0);
}
if (busvoltage>4.26)
{
myNextion.setComponentText("t0", "Overcharge");
myNextion.setComponentText("t3", String(busvoltage));
myNextion.setComponentText("t4", "100");
myNextion.setComponentValue("j0", 100);
}
if(busvoltage>2.6 && busvoltage<4.25)
{
v=(busvoltage-2.6)/0.0165;
myNextion.setComponentText("t0", "Power monitor");
myNextion.setComponentText("t3", String(busvoltage));
myNextion.setComponentText("t4", String(v));
myNextion.setComponentValue("j0", v);
delay(300);
}
}
#include <Wire.h>
#include <Adafruit_INA219.h>
#include <SoftwareSerial.h>
#include <Nextion.h>
Adafruit_INA219 ina219;
SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
int v=0;
float busvoltage = 0;
void setup()
{
Serial.begin(9600);
myNextion.init();
ina219.begin();
}
void loop()
{
busvoltage = ina219.getBusVoltage_V();
if (busvoltage<2.59)
{
myNextion.setComponentText("t0", "Low battery");
myNextion.setComponentText("t3", "<2.59V");
myNextion.setComponentText("t4", "0");
myNextion.setComponentValue("j0", 0);
}
if (busvoltage>4.26)
{
myNextion.setComponentText("t0", "Overcharge");
myNextion.setComponentText("t3", String(busvoltage));
myNextion.setComponentText("t4", "100");
myNextion.setComponentValue("j0", 100);
}
if(busvoltage>2.6 && busvoltage<4.25)
{
v=(busvoltage-2.6)/0.0165;
myNextion.setComponentText("t0", "Power monitor");
myNextion.setComponentText("t3", String(busvoltage));
myNextion.setComponentText("t4", String(v));
myNextion.setComponentValue("j0", v);
delay(300);
}
}
#include <Wire.h>
#include <Adafruit_INA219.h>
#include <SoftwareSerial.h>
#include <Nextion.h>
//максимальное и минимальное значения напряжения аккумулятора
//3S
//#define minV 7.5
//#define maxV 12.75
//2S
//#define minV 5
//#define maxV 8.5
//1S
#define minV 2.5
#define maxV 4.25
Adafruit_INA219 ina219;
SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
int progressbar=0,i;
float busvoltage = 0;
String message;
void setup()
{
Serial.begin(9600);
myNextion.init();
ina219.begin();
}
void loop()
{
busvoltage = ina219.getBusVoltage_V();
if(busvoltage<2.5)
{
myNextion.setComponentValue("j0", 0);
myNextion.setComponentValue("j1", 0);
myNextion.setComponentText("t0", "LOW");
delay(100);
}
else if(busvoltage>4.25)
{
myNextion.setComponentValue("j0", 100);
myNextion.setComponentValue("j1", 100);
myNextion.setComponentText("t0", "HIGH");
delay(100);
}
else
{
//Масштабирование значений по линейной шкале
//функция map не работает с дробными числами, поэтому *100
progressbar = map(busvoltage*100, minV*100, maxV*100, 0, 100);
Serial.print("busvoltage= ");
Serial.println(busvoltage);
Serial.print("progressbar= ");
Serial.println(progressbar);
myNextion.setComponentValue("j0", progressbar);
myNextion.setComponentValue("j1", progressbar);
myNextion.setComponentText("t0", String(busvoltage));
delay(10);
}
}
+17 |
3631
102
|
Есть другое проект, похож
we.easyelectronics.ru/plis/formirovanie-vga-izobrazheniya-s-ispolzovaniem-nios-ii.html
Вот про PIC
kazus.ru/articles/19.html
примерно как на тележку из супермаркета приделать реактивный двигатель :-)
Я экспериментировал с другими дисплеями, которые подключаются по 8-битной шине данных к Arduino, ни один не заработал по нормальному, где-то на экране были посторонние полосы, где-то не работал сенсор. Как говорится скупой платит дважды. Сейчас бы взял Nextion, если потребуется графический интерфейс.
Наверное, всё-таки не «Hight», а «High» (или, в вашем контексте, «Full»).
«Height» — это по-английски «высота»
Заказал себе маленький дисплейчик. Есть мысль прикрутить к своему приборчику.
Походу, теряются посылки при передаче (т.е. дисплей тупит) или при приеме (ардуина)?
Для меня принципиально. С приемом не должно быть проблем — ARM7 на 60 МГц работает.