/*
MODIFICA ADC I2C
http://forum.rcl-radio.ru/viewtopic.php?id=620&p=4
T:\Progetti\Programmazione\Arduino - Sorgenti\SK90 Project\SK90 - CONNESSIONE UDP FUNZIONANTE
*/
//#include <ESP8266WiFi.h>
//#include <WiFiUdp.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
//#include <Adafruit_ADS1X15.h>
//#include <Adafruit_MCP4725.h>
#include "GyverEncoder.h"
#include <EEPROM.h>
#include <Wire.h>
#include <SPI.h>
// ENCODER
#define CLK 13 //pin D7
#define DT 14 //pin D5
#define SW 12 //pin D6
// ADC internal
//#define adc_batt 0 //pin A0
// OLED
#define SCREEN_ADDRESS 0x3C
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // -1 reset con arduino
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define KALL_I_IZ 1.020
#define KALL_U_IZ 0.970
#define KALL_I_DAC 410.00
#define KALL_U_DAC 395.00
#define ADDR1 0x60 // I
#define ADDR2 0x61 // U
//Adafruit_MCP4725 dac1;
//Adafruit_MCP4725 dac2;
//Adafruit_ADS1015 ADS;
Encoder enc1(CLK, DT, SW);
int n,m,m1;
float i_dig,u_dig,i_dig1;
float u_iz,i_iz,i_iz1;
long i_sum,u_sum,i_sum1;
bool w=1,w1,iu,power;
long times;
int un,in;
void setup(){
Serial.begin(115200);
Wire.begin();
//ADS.begin();
enc1.setType(TYPE2);
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.display();
delay(200);
display.clearDisplay();
un = EEPROM.read(0);in=EEPROM.read(1);
//pinMode(A0,INPUT);
//pinMode(7,INPUT);
firstPage();
delay(5000);
display.clearDisplay();
//dac1.begin(ADDR1);
//dac2.begin(ADDR2);
}
void loop(){
display.drawRect(0, 0, 127, 15, WHITE);
display.setTextSize(1);
display.setCursor(3,4);//x,y
display.print("> 00.00 V 0.00 A"); //21 caratteri, dimensione 7 pixel
display.drawRect(0, 17, 127, 47, WHITE);
display.setTextSize(2);
display.setCursor(3,28);
display.print(u_iz*KALL_U_IZ/100.0,2); //10 caratteri, dimensione 14 pixel
display.setCursor(70,28);
display.print("V");
display.setCursor(3, 48);
display.println(i_iz*KALL_I_IZ/1000.0,2);
display.setCursor(70,48);
display.println("A");
display.display();
}
void firstPage(){
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(10,0);
display.println("POWER SUPPLY");
display.setCursor(30,25);
display.println("0-25V 0-2.5A");
display.setCursor(30,55);
display.println("rcl-radio.ru");
display.display();
}