/*------------------------------------------------*/
// подключение библиотек для работы OLED
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/*------------------------------------------------*/
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino UNO: A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO: 2(SDA), 3(SCL), ...
#define SCREEN_ADDRESS 0x3C
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// #define SCREEN_ADDRESS 0x3D ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// #define OLED_RESET 7
// Adafruit_SSD1306 display(OLED_RESET);
/*------------------------------------------------*/
//float Antenna_diagram[360];
//float Antenna_diagram_display[120];
float Antenna_diagram_display_const;
int i1;
int i2;
int i3;
float a1;
float a2;
float a3;
int Noise_Angle;
void setup() {
Noise_Angle = 110;
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // инициализация дисплея по интерфейсу I2C, адрес 0x3C)
display.clearDisplay(); // очистка дисплея
}
/*------------------------------------------------*/
// Задаём массив, с которым будем работать в пределах от 0 до 4
void loop() {
for (int i = 0; i <= 119; i++) {
i1 = 3*i;
i2 = 3*i + 1;
i3 = 3*i + 2;
/*
Serial.println(i1);
Serial.println(i2);
Serial.println(i3);
Antenna_diagram[i1] = ((float)i1/359)*4;
Serial.println(Antenna_diagram[i1]);
Antenna_diagram[i2] = ((float)i2/359)*4;
Serial.println(Antenna_diagram[i2]);
Antenna_diagram[i3] = ((float)i3/359)*4;
Serial.println(Antenna_diagram[i3]);
*/
a1 = ((float)i1/359)*4;
Serial.println(a1);
a2 = ((float)i2/359)*4;
Serial.println(a2);
a3 = ((float)i3/359)*4;
Serial.println(a3);
// Задаём уровень на дисплее - от 4 до 40 (пикселей)
Antenna_diagram_display_const = (a1 + a2 + a3)*3 + 4;
/*// Выводим на экран вертикальные линии (диаграмму направленности)
display.drawLine(i+4, 0, i+4, Antenna_diagram_display_const, WHITE);
*/
display.drawLine(i+4, 63, i+4, (63 - Antenna_diagram_display_const), WHITE);
display.display();
delay(20);
}
display.drawLine(Noise_Angle/3+4, 63, Noise_Angle/3+4, 0, WHITE);
display.display();
delay(5000);
display.clearDisplay();
}
/*------------------------------------------------*/