#include <Wire.h>
#include <Adafruit_GFX.h> // https://github.com/adafruit/Adafruit-GFX-Library
#include <Adafruit_SSD1306.h> // https://github.com/adafruit/Adafruit_SSD1306
// https://github.com/adafruit/Adafruit_BusIO.git
Adafruit_SSD1306 display(128, 32, &Wire);
int an_izm_r,an_izm_l;
int ur_l,urr_l,ur_r,urr_r;
int u_l0[20],u_r0[20];
int ur,ul,urr,ull,urrr,ulll;
int x,i1,u_maxr,u_maxl;
void setup() {
Serial.begin(9600);
Wire.begin();Wire.setClock(800000L);
delay(500);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
analogReadResolution(8);
analogReference(INTERNAL1V024);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
}
void loop() {
an_izm_r = analogRead(A0);
an_izm_l = analogRead(A1);
urr_l = an_izm_l;
urr_r = an_izm_r;
if(urr_l<ur_l){ur_l=ur_l-4;}else{ur_l = an_izm_l;}
if(urr_r<ur_r){ur_r=ur_r-4;}else{ur_r = an_izm_r;}
if(urr_l>124){urr_l=124;}
if(urr_r>124){urr_r=124;}
if(ur_l>124){ur_l=124;}
if(ur_r>124){ur_r=124;}
i1++;if(i1<15){u_l0[i1]=abs(urr_l);u_r0[i1]=abs(urr_r);}else{i1=0;}
if(i1==14){u_maxr=0;u_maxl=0;
for(x=1;x<=15;x++){
u_maxl=max(u_maxl,u_l0[x]);
u_maxr=max(u_maxr,u_r0[x]);}}
if(u_maxl<ulll){ulll=ulll-4;}else{ulll = u_maxl;}
if(u_maxr<urrr){urrr=urrr-4;}else{urrr = u_maxr;}
if(u_maxl<=urr_l){u_maxl=urr_l+4;}
if(u_maxr<=urr_r){u_maxr=urr_r+4;}
testfillrect();
}
void testfillrect(void) {
display.clearDisplay();
if(ulll>4) { display.fillRect(ulll, 0, 2, 8, SSD1306_INVERSE);}
for(int i=0;i<=ur_l;i+=4){
display.fillRect(i, 0, 2, 8, SSD1306_INVERSE);
}
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.drawLine(0, 9, 125, 9, SSD1306_WHITE);
display.setCursor(0,11);
display.println("-20 -10 -3");
display.drawLine(90, 10, 125, 10, SSD1306_WHITE);
display.setCursor(90,11);
display.setTextColor(SSD1306_BLACK, SSD1306_WHITE);
display.println(" 0 +3");
display.drawLine(0, 19, 125, 19, SSD1306_WHITE);
if(urrr>4) {display.fillRect(urrr, 21, 2, 8, SSD1306_INVERSE);}
for(int i=0;i<=ur_r;i+=4){
display.fillRect(i, 21, 2, 8, SSD1306_INVERSE);
}
display.display();
}