#2 Програмування Arduino » Шкала, що заливається » 2024-04-27 09:05:34

chipaka
відповідей: 3

Доброго часу.
Народ допоможіть початківцу. Є такий скетч. Ніяк не можу повернути шкалу, що заливається. заливання починається зверху. Як зробити знизу.

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#define SENSOR A0
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13
Adafruit_SH1106 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

void setup() {
  display.begin(SH1106_SWITCHCAPVCC);
  display.display();
  delay(1000);
  display.clearDisplay();
  display.setRotation(0);
  }
 
void loop() {
   
  display.clearDisplay();
  display.setTextSize(1);      // Normal 1:1 pixel scale
  display.setTextColor(WHITE); // Draw white text
  display.setCursor(0, 3);     // Start at top-left corner 
   
  display.drawRect(100, 0, 18, 64, 1); // рисуем прямоугольник 1

  int raw = analogRead(SENSOR);

  static int avgVadc = 0;
  avgVadc = (avgVadc * 3 + raw)/4;
  avgVadc = constrain(avgVadc, 0, 500);
  int FuelLevel = map(avgVadc, 0, 500, 0, 300);
  display.setCursor(20, 10);
  display.setTextSize(3);
  display.println(FuelLevel);
  int FuelLeve2 = map(avgVadc, 0, 500, 0, 64);
  display.fillRect (100, 0, 18, FuelLeve2, 1);
   
  display.display();
  delay(100);
}

Підвал форуму