Bar weergeven Nextion Display

Hardware die niet past in bovenstaande onderwerpen
Berichten: 15
Geregistreerd: 15 Jan 2017, 22:14

Bar weergeven Nextion Display

Berichtdoor anthony » 19 Feb 2017, 12:22

Ik wil het volgende ook toepassen op mijn nextion Display
hierbij een link naar de video op youtube.
https://youtu.be/t3y08wBBB8c?t=46s

In de video zie je een groene bar.
Alleen komt ik er niet uit hoe dit tot stand is gekomen.
Altans zo (half rond)

Wie kan mijn een is op weg helpen?

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Bar weergeven Nextion Display

Berichtdoor Koepel » 19 Feb 2017, 17:12

Hij zegt zelf in het filmpje dat hij niet de Nextion Gauges of iets dergelijks gebruikt, alleen "text or pictures".
Hij heeft waarschijnlijk de bar in meerdere stukken verdeeld en voor elk een plaatje gemaakt. Ik zie de bar niet bewegen, maar misschien heeft hij 10 verschillende plaatjes. Waarschijnlijk moet de tekst binnen de bar opnieuw geschreven worden als het plaatje verandert.

Er is ook een commando om een lijn te tekenen. Dat heb ik geprobeerd, maar ik krijg de bar niet dicht. Ik bedoel: de lijnen overlappen elkaar niet goed.

Probeer dit eens in je sketch:
Code: Alles selecteren
// Draw a circular bar.
// Just because we can.
// Using many overlapping short pieces of lines.
//
// There are optimized integer calculations for this,
// but i'm using float for now.
//
// Zero degrees is pointing horizontal right.
//
// Result: not okay, it is not a solid bar.
void Circular_Bar()
{
  int xcenter = 160;
  int ycenter = 120;
  float radius_in  = 80.0;
  float radius_out = 100.0;
  char buf[40];

  for( float angle = 0.0; angle < 270.0; angle += 0.1)
  {
    // Calculation in float
    float x1, x2, y1, y2;
    x1 = cos( angle / 180 * M_PI) * radius_in;
    x2 = cos( angle / 180 * M_PI) * radius_out;
    y1 = sin( angle / 180 * M_PI) * radius_in;
    y2 = sin( angle / 180 * M_PI) * radius_out;
 
    // convert to integers.
    int x1i = int( x1) + xcenter;
    int x2i = int( x2) + xcenter;
    int y1i = -int( y1) + ycenter;
    int y2i = -int( y2) + ycenter;
   
    sprintf( buf, "line %d,%d,%d,%d,RED", x1i, y1i, x2i, y2i);
    sendCommand( buf);
  }
}

Door gesloten cirkels te tekenen (in plaats van lijnen) ontstaat er wel een aaneengesloten bar. Maar dan zijn de uiteinden rond.

Berichten: 15
Geregistreerd: 15 Jan 2017, 22:14

Re: Bar weergeven Nextion Display

Berichtdoor anthony » 19 Feb 2017, 18:58

Bedankt!
Ik ga hier is mee stoeien.

Terug naar Overige hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten