//Bibliotecas
#include <avr/wdt.h>
#include <Wire.h>
#include <Ultrasonic.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Servo.h>
#include <EEPROM.h>
//Parametros do display
const char irrig [10] = "Irrigando";
const char run [10] = "caminhando";
#define SCREEN_WIDTH 128 // Largura do display
#define SCREEN_HEIGHT 64 // Altura do display
#define SCREEN_ADDRESS 0x3C // Endereço do display (tente trocar por 0x3D se não funcionar)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//Parametros do sensor ultrassonico
Ultrasonic ultrassom(10, 11);
long distancia;
#define TRIGGER_PIN 10 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 100 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
//Parametrização dos pinos
#define bt_stop 2
#define bt_emer 3
#define led_agua 4
#define fx 5
#define led_emer 6
#define bt_start 7
#define TRIGGER_PIN 10
#define ECHO_PIN 11
#define led_liga 12
#define bt_reset 14
#define led_reset 15
#define laser 16
#define LDR 18
#define buzzer 24
#define aqua 26
#define bt_tela 30
#define Reset() wdt_enable(WDTO_30MS); while(1)
//Condições basicas
volatile int start;
volatile int reset;
volatile int emerg;
int pos;
//Armazenamento de agua
int tanque, tamanho, visual, real;
//passos dos motor servo
Servo servo1;
int motordir;
//Endereços para EEPROM
int end1 = 0;
int end2 = 1;
int end3 = 2;
int end4 = 3;
int end5 = 4;
int end6 = 5;
int end7 = 6;
//Variaveis para uso grafico
int mi1, mi2, mi3, i2;
int r1, r2, r3;
int i, i1max, i1min, i2max, i2min, i3max, i3min;
int temptela;
int maxi, mini, maxi2, mini2, maxi3, mini3;
int speed, speedf;
//Imagem de nuvem em hexa
const unsigned char image_data_chuva [] PROGMEM = {
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x00, 0x00, 0x00,
0x01, 0xf0, 0x00,
0x03, 0x18, 0x00,
0x06, 0x1e, 0x00,
0x3c, 0x03, 0x80,
0x60, 0x00, 0xc0,
0x40, 0x00, 0x40,
0x60, 0x00, 0x40,
0x30, 0x07, 0xc0,
0x1e, 0x04, 0x00,
0x03, 0x8c, 0x00,
0x20, 0xf8, 0x00,
0x24, 0x01, 0x00,
0x24, 0x61, 0x00,
0x00, 0x25, 0x00,
0x01, 0x24, 0x00,
0x11, 0x04, 0x00,
0x11, 0x00, 0x00
};
//linha apagada
const unsigned char linha [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void setup()
{
i = 0;
temptela = 0;
pinMode(LDR, INPUT_PULLUP);
//LEDS
pinMode(led_liga, OUTPUT);
pinMode(led_emer, OUTPUT);
pinMode(led_reset, OUTPUT);
pinMode(led_agua, OUTPUT);
//relé
pinMode(aqua, OUTPUT);
//motores
servo1.attach(9);
// servo1.write(0);
//Botoes de comando
pinMode(bt_start, INPUT_PULLUP);
pinMode(bt_reset, INPUT_PULLUP);
pinMode(bt_stop, INPUT_PULLUP);
pinMode(bt_emer, INPUT_PULLUP);
pinMode(bt_tela, INPUT_PULLUP);
pinMode(fx, INPUT_PULLUP); //Fim de curso eixo X
pinMode(LDR, INPUT);
//Extras
pinMode(buzzer, OUTPUT);
pinMode(laser, OUTPUT);
//Inicia a comunicação serial em uma frequencia de 9600
Serial.begin (9600);
//Estabelece as interrupções externas do programa
attachInterrupt(digitalPinToInterrupt(2), stop_all, FALLING); //Configurando a interrupção
attachInterrupt(digitalPinToInterrupt(3), emer, FALLING); //Configurando a interrupção
attachInterrupt(digitalPinToInterrupt(18), cortina, RISING); //Configurando a interrupção
digitalWrite(laser, HIGH);
// Inicializa o display
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
{
Serial.println(F("Erro na inicialização!"));
while (1);
}
// Configuração do texto
display.setTextSize(1); // Tamanho
display.setTextColor(1); // Cor
//Limpa o display
display.clearDisplay();
display.display();
}
//Comando de reset de programa
//void(*resetFunc)(void) = 0;
void grafico_mi1()
{
display.drawRoundRect(50, 10, 50, 10, 5, WHITE);
if ((mi1) > 1)
{
display.fillRoundRect(50, 10, 0, 10, 5, WHITE);
}
if ((mi1) == 1 || (mi1) == 2)
{
display.fillRoundRect(50, 10, 1, 10, 5, WHITE);
}
if ((mi1) == 3 || (mi1) == 4)
{
display.fillRoundRect(50, 10, 2, 10, 5, WHITE);
}
if ((mi1) == 5 || (mi1) == 6)
{
display.fillRoundRect(50, 10, 3, 10, 5, WHITE);
}
if ((mi1) == 7 || (mi1) == 8)
{
display.fillRoundRect(50, 10, 4, 10, 5, WHITE);
}
if ((mi1) == 9 || (mi1) == 10)
{
display.fillRoundRect(50, 10, 5, 10, 5, WHITE);
}
if ((mi1) == 11 || (mi1) == 12)
{
display.fillRoundRect(50, 10, 6, 10, 5, WHITE);
}
if ((mi1) == 13 || (mi1) == 14)
{
display.fillRoundRect(50, 10, 7, 10, 5, WHITE);
}
if ((mi1) == 15 || (mi1) == 16)
{
display.fillRoundRect(50, 10, 8, 10, 5, WHITE);
}
if ((mi1) == 17 || (mi1) == 18)
{
display.fillRoundRect(50, 10, 9, 10, 5, WHITE);
}
if ((mi1) == 19 || (mi1) == 20)
{
display.fillRoundRect(50, 10, 10, 10, 5, WHITE);
}
if ((mi1) == 21 || (mi1) == 22)
{
display.fillRoundRect(50, 10, 11, 10, 5, WHITE);
}
if ((mi1) == 23 || (mi1) == 24)
{
display.fillRoundRect(50, 10, 12, 10, 5, WHITE);
}
if ((mi1) == 25 || (mi1) == 26)
{
display.fillRoundRect(50, 10, 13, 10, 5, WHITE);
}
if ((mi1) == 27 || (mi1) == 28)
{
display.fillRoundRect(50, 10, 14, 10, 5, WHITE);
}
if ((mi1) == 29 || (mi1) == 30)
{
display.fillRoundRect(50, 10, 15, 10, 5, WHITE);
}
if ((mi1) == 31 || (mi1) == 32)
{
display.fillRoundRect(50, 10, 16, 10, 5, WHITE);
}
if ((mi1) == 33 || (mi1) == 34)
{
display.fillRoundRect(50, 10, 17, 10, 5, WHITE);
}
if ((mi1) == 35 || (mi1) == 36)
{
display.fillRoundRect(50, 10, 18, 10, 5, WHITE);
}
if ((mi1) == 37 || (mi1) == 38)
{
display.fillRoundRect(50, 10, 19, 10, 5, WHITE);
}
if ((mi1) == 39 || (mi1) == 40)
{
display.fillRoundRect(50, 10, 20, 10, 5, WHITE);
}
if ((mi1) == 41 || (mi1) == 42)
{
display.fillRoundRect(50, 10, 21, 10, 5, WHITE);
}
if ((mi1) == 43 || (mi1) == 44)
{
display.fillRoundRect(50, 10, 22, 10, 5, WHITE);
}
if ((mi1) == 45 || (mi1) == 46)
{
display.fillRoundRect(50, 10, 23, 10, 5, WHITE);
}
if ((mi1) == 47 || (mi1) == 48)
{
display.fillRoundRect(50, 10, 24, 10, 5, WHITE);
}
if ((mi1) == 49 || (mi1) == 50)
{
display.fillRoundRect(50, 10, 25, 10, 5, WHITE);
}
if ((mi1) == 51 || (mi1) == 52)
{
display.fillRoundRect(50, 10, 26, 10, 5, WHITE);
}
if ((mi1) == 53 || (mi1) == 54)
{
display.fillRoundRect(50, 10, 27, 10, 5, WHITE);
}
if ((mi1) == 55 || (mi1) == 56)
{
display.fillRoundRect(50, 10, 28, 10, 5, WHITE);
}
if ((mi1) == 57 || (mi1) == 58)
{
display.fillRoundRect(50, 10, 29, 10, 5, WHITE);
}
if ((mi1) == 59 || (mi1) == 60)
{
display.fillRoundRect(50, 10, 30, 10, 5, WHITE);
}
if ((mi1) == 61 || (mi1) == 62)
{
display.fillRoundRect(50, 10, 31, 10, 5, WHITE);
}
if ((mi1) == 63 || (mi1) == 64)
{
display.fillRoundRect(50, 10, 32, 10, 5, WHITE);
}
if ((mi1) == 65 || (mi1) == 66)
{
display.fillRoundRect(50, 10, 33, 10, 5, WHITE);
}
if ((mi1) == 67 || (mi1) == 68)
{
display.fillRoundRect(50, 10, 34, 10, 5, WHITE);
}
if ((mi1) == 69 || (mi1) == 70)
{
display.fillRoundRect(50, 10, 35, 10, 5, WHITE);
}
if ((mi1) == 71 || (mi1) == 72)
{
display.fillRoundRect(50, 10, 36, 10, 5, WHITE);
}
if ((mi1) == 73 || (mi1) == 74)
{
display.fillRoundRect(50, 10, 37, 10, 5, WHITE);
}
if ((mi1) == 75 || (mi1) == 76)
{
display.fillRoundRect(50, 10, 38, 10, 5, WHITE);
}
if ((mi1) == 77 || (mi1) == 78)
{
display.fillRoundRect(50, 10, 39, 10, 5, WHITE);
}
if ((mi1) == 79 || (mi1) == 80)
{
display.fillRoundRect(50, 10, 40, 10, 5, WHITE);
}
if ((mi1) == 81 || (mi1) == 82)
{
display.fillRoundRect(50, 10, 41, 10, 5, WHITE);
}
if ((mi1) == 83 || (mi1) == 84)
{
display.fillRoundRect(50, 10, 42, 10, 5, WHITE);
}
if ((mi1) == 85 || (mi1) == 86)
{
display.fillRoundRect(50, 10, 43, 10, 5, WHITE);
}
if ((mi1) == 87 || (mi1) == 88)
{
display.fillRoundRect(50, 10, 44, 10, 5, WHITE);
}
if ((mi1) == 89 || (mi1) == 90)
{
display.fillRoundRect(50, 10, 45, 10, 5, WHITE);
}
if ((mi1) == 91 || (mi1) == 92)
{
display.fillRoundRect(50, 10, 46, 10, 5, WHITE);
}
if ((mi1) == 93 || (mi1) == 94)
{
display.fillRoundRect(50, 10, 47, 10, 5, WHITE);
}
if ((mi1) == 95 || (mi1) == 96)
{
display.fillRoundRect(50, 10, 48, 10, 5, WHITE);
}
if ((mi1) == 97 || (mi1) == 98)
{
display.fillRoundRect(50, 10, 49, 10, 5, WHITE);
}
if ((mi1) == 99 || (mi1) == 100)
{
display.fillRoundRect(50, 10, 50, 10, 5, WHITE);
}
}
void grafico_mi2()
{
if ((mi2) > 1)
{
display.fillRoundRect(50, 20, 0, 10, 5, WHITE);
}
if ((mi2) == 1 || (mi2) == 2)
{
display.fillRoundRect(50, 20, 1, 10, 5, WHITE);
}
if ((mi2) == 3 || (mi2) == 4)
{
display.fillRoundRect(50, 20, 2, 10, 5, WHITE);
}
if ((mi2) == 5 || (mi2) == 6)
{
display.fillRoundRect(50, 20, 3, 10, 5, WHITE);
}
if ((mi2) == 7 || (mi2) == 8)
{
display.fillRoundRect(50, 20, 4, 10, 5, WHITE);
}
if ((mi2) == 9 || (mi2) == 10)
{
display.fillRoundRect(50, 20, 5, 10, 5, WHITE);
}
if ((mi2) == 11 || (mi2) == 12)
{
display.fillRoundRect(50, 20, 6, 10, 5, WHITE);
}
if ((mi2) == 13 || (mi2) == 14)
{
display.fillRoundRect(50, 20, 7, 10, 5, WHITE);
}
if ((mi2) == 15 || (mi2) == 16)
{
display.fillRoundRect(50, 20, 8, 10, 5, WHITE);
}
if ((mi2) == 17 || (mi2) == 18)
{
display.fillRoundRect(50, 20, 9, 10, 5, WHITE);
}
if ((mi2) == 19 || (mi2) == 20)
{
display.fillRoundRect(50, 20, 10, 10, 5, WHITE);
}
if ((mi2) == 21 || (mi2) == 22)
{
display.fillRoundRect(50, 20, 11, 10, 5, WHITE);
}
if ((mi2) == 23 || (mi2) == 24)
{
display.fillRoundRect(50, 20, 12, 10, 5, WHITE);
}
if ((mi2) == 25 || (mi2) == 26)
{
display.fillRoundRect(50, 20, 13, 10, 5, WHITE);
}
if ((mi2) == 27 || (mi2) == 28)
{
display.fillRoundRect(50, 20, 14, 10, 5, WHITE);
}
if ((mi2) == 29 || (mi2) == 30)
{
display.fillRoundRect(50, 20, 15, 10, 5, WHITE);
}
if ((mi2) == 31 || (mi2) == 32)
{
display.fillRoundRect(50, 20, 16, 10, 5, WHITE);
}
if ((mi2) == 33 || (mi2) == 34)
{
display.fillRoundRect(50, 20, 17, 10, 5, WHITE);
}
if ((mi2) == 35 || (mi2) == 36)
{
display.fillRoundRect(50, 20, 18, 10, 5, WHITE);
}
if ((mi2) == 37 || (mi2) == 38)
{
display.fillRoundRect(50, 20, 19, 10, 5, WHITE);
}
if ((mi2) == 39 || (mi2) == 40)
{
display.fillRoundRect(50, 20, 20, 10, 5, WHITE);
}
if ((mi2) == 41 || (mi2) == 42)
{
display.fillRoundRect(50, 20, 21, 10, 5, WHITE);
}
if ((mi2) == 43 || (mi2) == 44)
{
display.fillRoundRect(50, 20, 22, 10, 5, WHITE);
}
if ((mi2) == 45 || (mi2) == 46)
{
display.fillRoundRect(50, 20, 23, 10, 5, WHITE);
}
if ((mi2) == 47 || (mi2) == 48)
{
display.fillRoundRect(50, 20, 24, 10, 5, WHITE);
}
if ((mi2) == 49 || (mi2) == 50)
{
display.fillRoundRect(50, 20, 25, 10, 5, WHITE);
}
if ((mi2) == 51 || (mi2) == 52)
{
display.fillRoundRect(50, 20, 26, 10, 5, WHITE);
}
if ((mi2) == 53 || (mi2) == 54)
{
display.fillRoundRect(50, 20, 27, 10, 5, WHITE);
}
if ((mi2) == 55 || (mi2) == 56)
{
display.fillRoundRect(50, 20, 28, 10, 5, WHITE);
}
if ((mi2) == 57 || (mi2) == 58)
{
display.fillRoundRect(50, 20, 29, 10, 5, WHITE);
}
if ((mi2) == 59 || (mi2) == 60)
{
display.fillRoundRect(50, 20, 30, 10, 5, WHITE);
}
if ((mi2) == 61 || (mi2) == 62)
{
display.fillRoundRect(50, 20, 31, 10, 5, WHITE);
}
if ((mi2) == 63 || (mi2) == 64)
{
display.fillRoundRect(50, 20, 32, 10, 5, WHITE);
}
if ((mi2) == 65 || (mi2) == 66)
{
display.fillRoundRect(50, 20, 33, 10, 5, WHITE);
}
if ((mi2) == 67 || (mi2) == 68)
{
display.fillRoundRect(50, 20, 34, 10, 5, WHITE);
}
if ((mi2) == 69 || (mi2) == 70)
{
display.fillRoundRect(50, 20, 35, 10, 5, WHITE);
}
if ((mi2) == 71 || (mi2) == 72)
{
display.fillRoundRect(50, 20, 36, 10, 5, WHITE);
}
if ((mi2) == 73 || (mi2) == 74)
{
display.fillRoundRect(50, 20, 37, 10, 5, WHITE);
}
if ((mi2) == 75 || (mi2) == 76)
{
display.fillRoundRect(50, 20, 38, 10, 5, WHITE);
}
if ((mi2) == 77 || (mi2) == 78)
{
display.fillRoundRect(50, 20, 39, 10, 5, WHITE);
}
if ((mi2) == 79 || (mi2) == 80)
{
display.fillRoundRect(50, 20, 40, 10, 5, WHITE);
}
if ((mi2) == 81 || (mi2) == 82)
{
display.fillRoundRect(50, 20, 41, 10, 5, WHITE);
}
if ((mi2) == 83 || (mi2) == 84)
{
display.fillRoundRect(50, 20, 42, 10, 5, WHITE);
}
if ((mi2) == 85 || (mi2) == 86)
{
display.fillRoundRect(50, 20, 43, 10, 5, WHITE);
}
if ((mi2) == 87 || (mi2) == 88)
{
display.fillRoundRect(50, 20, 44, 10, 5, WHITE);
}
if ((mi2) == 89 || (mi2) == 90)
{
display.fillRoundRect(50, 20, 45, 10, 5, WHITE);
}
if ((mi2) == 91 || (mi2) == 92)
{
display.fillRoundRect(50, 20, 46, 10, 5, WHITE);
}
if ((mi2) == 93 || (mi2) == 94)
{
display.fillRoundRect(50, 20, 47, 10, 5, WHITE);
}
if ((mi2) == 95 || (mi2) == 96)
{
display.fillRoundRect(50, 20, 48, 10, 5, WHITE);
}
if ((mi2) == 97 || (mi2) == 98)
{
display.fillRoundRect(50, 20, 49, 10, 5, WHITE);
}
if ((mi2) == 99 || (mi2) == 100)
{
display.fillRoundRect(50, 20, 50, 10, 5, WHITE);
}
}
void grafico_mi3()
{
if ((mi3) > 1)
{
display.fillRoundRect(50, 30, 0, 10, 5, WHITE);
}
if ((mi3) == 1 || (mi3) == 2)
{
display.fillRoundRect(50, 30, 1, 10, 5, WHITE);
}
if ((mi3) == 3 || (mi3) == 4)
{
display.fillRoundRect(50, 30, 2, 10, 5, WHITE);
}
if ((mi3) == 5 || (mi3) == 6)
{
display.fillRoundRect(50, 30, 3, 10, 5, WHITE);
}
if ((mi3) == 7 || (mi3) == 8)
{
display.fillRoundRect(50, 30, 4, 10, 5, WHITE);
}
if ((mi3) == 9 || (mi3) == 10)
{
display.fillRoundRect(50, 30, 5, 10, 5, WHITE);
}
if ((mi3) == 11 || (mi3) == 12)
{
display.fillRoundRect(50, 30, 6, 10, 5, WHITE);
}
if ((mi3) == 13 || (mi3) == 14)
{
display.fillRoundRect(50, 30, 7, 10, 5, WHITE);
}
if ((mi3) == 15 || (mi3) == 16)
{
display.fillRoundRect(50, 30, 8, 10, 5, WHITE);
}
if ((mi3) == 17 || (mi3) == 18)
{
display.fillRoundRect(50, 30, 9, 10, 5, WHITE);
}
if ((mi3) == 19 || (mi3) == 20)
{
display.fillRoundRect(50, 30, 10, 10, 5, WHITE);
}
if ((mi3) == 21 || (mi3) == 22)
{
display.fillRoundRect(50, 30, 11, 10, 5, WHITE);
}
if ((mi3) == 23 || (mi3) == 24)
{
display.fillRoundRect(50, 30, 12, 10, 5, WHITE);
}
if ((mi3) == 25 || (mi3) == 26)
{
display.fillRoundRect(50, 30, 13, 10, 5, WHITE);
}
if ((mi3) == 27 || (mi3) == 28)
{
display.fillRoundRect(50, 30, 14, 10, 5, WHITE);
}
if ((mi3) == 29 || (mi3) == 30)
{
display.fillRoundRect(50, 30, 15, 10, 5, WHITE);
}
if ((mi3) == 31 || (mi3) == 32)
{
display.fillRoundRect(50, 30, 16, 10, 5, WHITE);
}
if ((mi3) == 33 || (mi3) == 34)
{
display.fillRoundRect(50, 30, 17, 10, 5, WHITE);
}
if ((mi3) == 35 || (mi3) == 36)
{
display.fillRoundRect(50, 30, 18, 10, 5, WHITE);
}
if ((mi3) == 37 || (mi3) == 38)
{
display.fillRoundRect(50, 30, 19, 10, 5, WHITE);
}
if ((mi3) == 39 || (mi3) == 40)
{
display.fillRoundRect(50, 30, 20, 10, 5, WHITE);
}
if ((mi3) == 41 || (mi3) == 42)
{
display.fillRoundRect(50, 30, 21, 10, 5, WHITE);
}
if ((mi3) == 43 || (mi3) == 44)
{
display.fillRoundRect(50, 30, 22, 10, 5, WHITE);
}
if ((mi3) == 45 || (mi3) == 46)
{
display.fillRoundRect(50, 30, 23, 10, 5, WHITE);
}
if ((mi3) == 47 || (mi3) == 48)
{
display.fillRoundRect(50, 30, 24, 10, 5, WHITE);
}
if ((mi3) == 49 || (mi3) == 50)
{
display.fillRoundRect(50, 30, 25, 10, 5, WHITE);
}
if ((mi3) == 51 || (mi3) == 52)
{
display.fillRoundRect(50, 30, 26, 10, 5, WHITE);
}
if ((mi3) == 53 || (mi3) == 54)
{
display.fillRoundRect(50, 30, 27, 10, 5, WHITE);
}
if ((mi3) == 55 || (mi3) == 56)
{
display.fillRoundRect(50, 30, 28, 10, 5, WHITE);
}
if ((mi3) == 57 || (mi3) == 58)
{
display.fillRoundRect(50, 30, 29, 10, 5, WHITE);
}
if ((mi3) == 59 || (mi3) == 60)
{
display.fillRoundRect(50, 30, 30, 10, 5, WHITE);
}
if ((mi3) == 61 || (mi3) == 62)
{
display.fillRoundRect(50, 30, 31, 10, 5, WHITE);
}
if ((mi3) == 63 || (mi3) == 64)
{
display.fillRoundRect(50, 30, 32, 10, 5, WHITE);
}
if ((mi3) == 65 || (mi3) == 66)
{
display.fillRoundRect(50, 30, 33, 10, 5, WHITE);
}
if ((mi3) == 67 || (mi3) == 68)
{
display.fillRoundRect(50, 30, 34, 10, 5, WHITE);
}
if ((mi3) == 69 || (mi3) == 70)
{
display.fillRoundRect(50, 30, 35, 10, 5, WHITE);
}
if ((mi3) == 71 || (mi3) == 72)
{
display.fillRoundRect(50, 30, 36, 10, 5, WHITE);
}
if ((mi3) == 73 || (mi3) == 74)
{
display.fillRoundRect(50, 30, 37, 10, 5, WHITE);
}
if ((mi3) == 75 || (mi3) == 76)
{
display.fillRoundRect(50, 30, 38, 10, 5, WHITE);
}
if ((mi3) == 77 || (mi3) == 78)
{
display.fillRoundRect(50, 30, 39, 10, 5, WHITE);
}
if ((mi3) == 79 || (mi3) == 80)
{
display.fillRoundRect(50, 30, 40, 10, 5, WHITE);
}
if ((mi3) == 81 || (mi3) == 82)
{
display.fillRoundRect(50, 30, 41, 10, 5, WHITE);
}
if ((mi3) == 83 || (mi3) == 84)
{
display.fillRoundRect(50, 30, 42, 10, 5, WHITE);
}
if ((mi3) == 85 || (mi3) == 86)
{
display.fillRoundRect(50, 30, 43, 10, 5, WHITE);
}
if ((mi3) == 87 || (mi3) == 88)
{
display.fillRoundRect(50, 30, 44, 10, 5, WHITE);
}
if ((mi3) == 89 || (mi3) == 90)
{
display.fillRoundRect(50, 30, 45, 10, 5, WHITE);
}
if ((mi3) == 91 || (mi3) == 92)
{
display.fillRoundRect(50, 30, 46, 10, 5, WHITE);
}
if ((mi3) == 93 || (mi3) == 94)
{
display.fillRoundRect(50, 30, 47, 10, 5, WHITE);
}
if ((mi3) == 95 || (mi3) == 96)
{
display.fillRoundRect(50, 30, 48, 10, 5, WHITE);
}
if ((mi3) == 97 || (mi3) == 98)
{
display.fillRoundRect(50, 30, 49, 10, 5, WHITE);
}
if ((mi3) == 99 || (mi3) == 100)
{
display.fillRoundRect(50, 30, 50, 10, 5, WHITE);
}
}
void grafico_tanque()
{
display.drawRoundRect(10, 53, 50, 10, 5, WHITE);
if ((real) == 0)
{
display.fillRoundRect(10, 53, 50, 10, 5, WHITE);
}
if ((real) == 1 || (real) == 2)
{
display.fillRoundRect(10, 53, 49, 10, 5, WHITE);
}
if ((real) == 3 || (real) == 4)
{
display.fillRoundRect(10, 53, 48, 10, 5, WHITE);
}
if ((real) == 5 || (real) == 6)
{
display.fillRoundRect(10, 53, 47, 10, 5, WHITE);
}
if ((real) == 7 || (real) == 8)
{
display.fillRoundRect(10, 53, 46, 10, 5, WHITE);
}
if ((real) == 9 || (real) == 10)
{
display.fillRoundRect(10, 53, 45, 10, 5, WHITE);
}
if ((real) == 11 || (real) == 12)
{
display.fillRoundRect(10, 53, 44, 10, 5, WHITE);
}
if ((real) == 13 || (real) == 14)
{
display.fillRoundRect(10, 53, 43, 10, 5, WHITE);
}
if ((real) == 15 || (real) == 16)
{
display.fillRoundRect(10, 53, 42, 10, 5, WHITE);
}
if ((real) == 17 || (real) == 18)
{
display.fillRoundRect(10, 53, 41, 10, 5, WHITE);
}
if ((real) == 19 || (real) == 20)
{
display.fillRoundRect(10, 53, 40, 10, 5, WHITE);
}
if ((real) == 21 || (real) == 22)
{
display.fillRoundRect(10, 53, 39, 10, 5, WHITE);
}
if ((real) == 23 || (real) == 24)
{
display.fillRoundRect(10, 53, 38, 10, 5, WHITE);
}
if ((real) == 25 || (real) == 26)
{
display.fillRoundRect(10, 53, 37, 10, 5, WHITE);
}
if ((real) == 27 || (real) == 28)
{
display.fillRoundRect(10, 53, 36, 10, 5, WHITE);
}
if ((real) == 29 || (real) == 30)
{
display.fillRoundRect(10, 53, 35, 10, 5, WHITE);
}
if ((real) == 31 || (real) == 32)
{
display.fillRoundRect(10, 53, 34, 10, 5, WHITE);
}
if ((real) == 33 || (real) == 34)
{
display.fillRoundRect(10, 53, 33, 10, 5, WHITE);
}
if ((real) == 35 || (real) == 36)
{
display.fillRoundRect(10, 53, 32, 10, 5, WHITE);
}
if ((real) == 37 || (real) == 38)
{
display.fillRoundRect(10, 53, 31, 10, 5, WHITE);
}
if ((real) == 39 || (real) == 40)
{
display.fillRoundRect(10, 53, 30, 10, 5, WHITE);
}
if ((real) == 41 || (real) == 42)
{
display.fillRoundRect(10, 53, 29, 10, 5, WHITE);
}
if ((real) == 43 || (real) == 44)
{
display.fillRoundRect(10, 53, 28, 10, 5, WHITE);
}
if ((real) == 45 || (real) == 46)
{
display.fillRoundRect(10, 53, 27, 10, 5, WHITE);
}
if ((real) == 47 || (real) == 48)
{
display.fillRoundRect(10, 53, 26, 10, 5, WHITE);
}
if ((real) == 49 || (real) == 50)
{
display.fillRoundRect(10, 53, 25, 10, 5, WHITE);
}
if ((real) == 51 || (real) == 52)
{
display.fillRoundRect(10, 53, 24, 10, 5, WHITE);
}
if ((real) == 53 || (real) == 54)
{
display.fillRoundRect(10, 53, 23, 10, 5, WHITE);
}
if ((real) == 55 || (real) == 56)
{
display.fillRoundRect(10, 53, 22, 10, 5, WHITE);
}
if ((real) == 57 || (real) == 58)
{
display.fillRoundRect(10, 53, 21, 10, 5, WHITE);
}
if ((real) == 59 || (real) == 60)
{
display.fillRoundRect(10, 53, 20, 10, 5, WHITE);
}
if ((real) == 61 || (real) == 62)
{
display.fillRoundRect(10, 53, 19, 10, 5, WHITE);
}
if ((real) == 63 || (real) == 64)
{
display.fillRoundRect(10, 53, 18, 10, 5, WHITE);
}
if ((real) == 65 || (real) == 66)
{
display.fillRoundRect(10, 53, 17, 10, 5, WHITE);
}
if ((real) == 67 || (real) == 68)
{
display.fillRoundRect(10, 53, 16, 10, 5, WHITE);
}
if ((real) == 69 || (real) == 70)
{
display.fillRoundRect(10, 53, 15, 10, 5, WHITE);
}
if ((real) == 71 || (real) == 72)
{
display.fillRoundRect(10, 53, 14, 10, 5, WHITE);
}
if ((real) == 73 || (real) == 74)
{
display.fillRoundRect(10, 53, 13, 10, 5, WHITE);
}
if ((real) == 75 || (real) == 76)
{
display.fillRoundRect(10, 53, 12, 10, 5, WHITE);
}
if ((real) == 77 || (real) == 78)
{
display.fillRoundRect(10, 53, 11, 10, 5, WHITE);
}
if ((real) == 79 || (real) == 80)
{
display.fillRoundRect(10, 53, 10, 10, 5, WHITE);
}
if ((real) == 81 || (real) == 82)
{
display.fillRoundRect(10, 53, 9, 10, 5, WHITE);
}
if ((real) == 83 || (real) == 84)
{
display.fillRoundRect(10, 53, 8, 10, 5, WHITE);
}
if ((real) == 85 || (real) == 86)
{
display.fillRoundRect(10, 53, 7, 10, 5, WHITE);
}
if ((real) == 87 || (real) == 88)
{
display.fillRoundRect(10, 53, 6, 10, 5, WHITE);
}
if ((real) == 89 || (real) == 90)
{
display.fillRoundRect(10, 53, 5, 10, 5, WHITE);
}
if ((real) == 91 || (real) == 92)
{
display.fillRoundRect(10, 53, 4, 10, 5, WHITE);
}
if ((real) == 93 || (real) == 94)
{
display.fillRoundRect(10, 53, 3, 10, 5, WHITE);
}
if ((real) == 95 || (real) == 96)
{
display.fillRoundRect(10, 53, 2, 10, 5, WHITE);
}
if ((real) == 97 || (real) == 98)
{
display.fillRoundRect(10, 53, 1, 10, 5, WHITE);
}
if ((real) == 99 || (real) == 100)
{
display.fillRoundRect(10, 53, 0, 10, 5, WHITE);
}
}
void stop_all()
{ //Função executada quando ocorre a interrupção externa
start = 0;
}
void emer()
{ //Função executada quando ocorre a interrupção externa
start = 0;
// motordir = 0;
reset = 0;
emerg = 1;
digitalWrite (led_agua, LOW);
digitalWrite (aqua, LOW);
digitalWrite (led_liga, LOW);
digitalWrite(led_emer, HIGH);
//resetFunc();
Reset();
}
void cortina ()
{ //Função executada quando ocorre a interrupção externa
start = 0;
reset = 0;
emerg = 1;
digitalWrite (led_agua, LOW);
digitalWrite (aqua, LOW);
digitalWrite (led_liga, LOW);
digitalWrite(led_emer, HIGH);
Reset();
}
// programa que rodara em loop
void loop()
{
if (digitalRead(led_emer) == HIGH)
{
if ( digitalRead(LDR) == 1 && digitalRead(bt_emer)==0)
{
tone(24, 900, 750);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(20, 10);
display.print("Cortina");
display.setCursor(20, 20);
display.println("cortada");
display.setCursor(20, 30);
display.print("Emergencia");
display.setCursor(20, 40);
display.println("acionada");
display.display();
digitalWrite (led_reset, HIGH);
}
if ( digitalRead(LDR) == 1 && digitalRead(bt_emer)==1)
{
tone(24, 900, 750);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(30, 30);
display.print("Cortina");
display.setCursor(30, 40);
display.println("cortada");
display.display();
digitalWrite (led_reset, HIGH);
}
if (digitalRead(bt_emer) == 0 && digitalRead(LDR) == 0 )
{
tone(24, 900, 750);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(30, 30);
display.print("Emergencia");
display.setCursor(30, 40);
display.println("acionada");
display.display();
digitalWrite (led_reset, HIGH);
}
}
if (digitalRead(bt_emer) == 1 && digitalRead(LDR) == 0)
{
digitalWrite (led_emer, LOW);
}
if ((start) == 0)
{
digitalWrite (led_agua, LOW);
digitalWrite (aqua, LOW);
digitalWrite (led_liga, LOW);
}
if (digitalRead(bt_emer) == 1 && digitalRead(LDR) == 0)
{
if (digitalRead(bt_reset) == 0)
{
emerg = 0;
reset = 1;
digitalWrite (led_reset, LOW);
digitalWrite (led_emer, LOW);
}
}
if ((reset) == 0 && digitalRead(bt_emer) == 1 && digitalRead(LDR) == 0)
{
Serial.println(i);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(20, 20);
display.print("aperte o");
display.setCursor(20, 30);
display.print("botao reset");
display.display();
digitalWrite (led_reset, HIGH);
}
if (digitalRead(bt_tela) == 0 && (reset) == 1)
{
Serial.println(temptela);
temptela++;
delay(250);
}
if (digitalRead(bt_tela) == 1 && (temptela) <= 4 && (temptela) >= 1)
{
i++;
temptela = 0;
}
if (digitalRead(bt_tela) == 1 && (temptela) >= 4)
{
i--;
if ((i)<0)
{
i=0;
}
temptela = 0;
}
if (digitalRead(bt_tela) == 1 && (i) == 8)
{
EEPROM.write(end1, i1max);
EEPROM.write(end2, i1min);
EEPROM.write(end3, i2max);
EEPROM.write(end4, i2min);
EEPROM.write(end5, i3max);
EEPROM.write(end6, i3min);
EEPROM.write(end7, tamanho);
i = 0;
temptela = 0;
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 0)
{
i1max = EEPROM.read(end1);
i1min = EEPROM.read(end2);;
i2max = EEPROM.read(end3);
i2min = EEPROM.read(end4);
i3max = EEPROM.read(end5);
i3min = EEPROM.read(end6);
tamanho = EEPROM.read(end7);
i = 0;
Serial.println(temptela);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(5, 5);
display.print("maquina");
display.setCursor(5, 15);
display.print("desligada");
display.setCursor(70, 8);
display.print("I1_");
display.setCursor(90, 3);
if ((i1max) == 255)
{
display.print("? ");
}
if ((i1max) < 255)
{
display.print(i1max);
}
display.print("%max");
display.setCursor(90, 13);
if ((i1min) == 255)
{
display.print("? ");
}
if ((i1min) < 255)
{
display.print(i1min);
}
display.print("%min");
display.setCursor(70, 28);
display.print("I2_");
display.setCursor(90, 23);
if ((i2max) == 255)
{
display.print("? ");
}
if ((i2max) < 255)
{
display.print(i2max);
}
display.print("%max");
display.setCursor(90, 33);
if ((i2min) == 255)
{
display.print("? ");
}
if ((i2min) < 255)
{
display.print(i2min);
}
display.print("%min");
display.setCursor(70, 48);
display.print("I3_");
display.setCursor(90, 43);
if ((i3max) == 255)
{
display.print("? ");
}
if ((i3max) < 255)
{
display.print(i3max);
}
display.print("%max");
display.setCursor(90, 53);
if ((i3min) == 255)
{
display.print("? ");
}
if ((i3min) < 255)
{
display.print(i3min);
}
display.print("%min");
display.display();
digitalWrite (led_reset, LOW);
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 1)
{
Serial.println(i);
display.clearDisplay();
i1max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 8);
display.print("I1_");
display.setCursor(90, 3);
display.print(i1max);
display.print("%max");
display.display();
while ((i1max) == 0)
{
Serial.println(i);
display.clearDisplay();
i1max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 8);
display.print("I1_");
display.setCursor(90, 3);
display.print(i1max);
display.print("%max");
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("maior");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 2)
{
Serial.println(i);
display.clearDisplay();
i1min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 8);
display.print("I1_");
display.setCursor(90, 3);
display.print(i1max);
display.print("%max");
display.setCursor(90, 13);
display.print(i1min);
display.print("%min");
display.display();
while ((i1min) >= i1max)
{
display.clearDisplay();
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("menor");
Serial.println(i);
i1min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("preset");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 8);
display.print("I1_");
display.setCursor(90, 3);
display.print(i1max);
display.print("%max");
display.setCursor(90, 13);
display.print(i1min);
display.print("%min");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 3)
{
Serial.println(i);
display.clearDisplay();
i2max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 28);
display.print("I2_");
display.setCursor(90, 23);
display.print(i2max);
display.print("%max");
display.display();
while ((i2max) == 0)
{
Serial.println(i);
display.clearDisplay();
i2max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 28);
display.print("I2_");
display.setCursor(90, 23);
display.print(i2max);
display.print("%max");
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("maior");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 4)
{
Serial.println(i);
display.clearDisplay();
i2min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 28);
display.print("I2_");
display.setCursor(90, 23);
display.print(i2max);
display.print("%max");
display.setCursor(90, 33);
display.print(i2min);
display.print("%min");
display.display();
while ((i2min) >= i2max)
{
display.clearDisplay();
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("menor");
Serial.println(i);
i2min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 28);
display.print("I2_");
display.setCursor(90, 23);
display.print(i2max);
display.print("%max");
display.setCursor(90, 33);
display.print(i2min);
display.print("%min");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 5)
{
Serial.println(i);
display.clearDisplay();
i3max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 48);
display.print("I3_");
display.setCursor(90, 43);
display.print(i3max);
display.print("%max");
display.display();
while ((i3max) == 0)
{
Serial.println(i);
display.clearDisplay();
i3max = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("maximo");
display.setCursor(70, 48);
display.print("I3_");
display.setCursor(90, 43);
display.print(i3max);
display.print("%max");
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("maior");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 6)
{
Serial.println(i);
display.clearDisplay();
i3min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 48);
display.print("I3_");
display.setCursor(90, 43);
display.print(i3max);
display.print("%max");
display.setCursor(90, 53);
display.print(i3min);
display.print("%min");
display.display();
while ((i3min) >= i3max)
{
display.clearDisplay();
display.setCursor(0, 30);
display.print("este valor");
display.setCursor(0, 40);
display.print("deve ser");
display.setCursor(0, 50);
display.print("menor");
Serial.println(i);
i3min = analogRead(A3) * 0.09765625;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("minimo");
display.setCursor(70, 48);
display.print("I3_");
display.setCursor(90, 43);
display.print(i3max);
display.print("%max");
display.setCursor(90, 53);
display.print(i3min);
display.print("%min");
display.display();
}
}
if (digitalRead(bt_emer) == 1 && (reset) == 1 && (start) == 0 && (i) == 7)
{
Serial.println(i);
display.clearDisplay();
tamanho = analogRead(A3) * 0.0977517106549365;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("de profundidade");
display.setCursor(10, 45);
display.print("tanque_");
display.print(tamanho);
display.print(" cm");
display.display();
while ((tamanho) == 0)
{
display.clearDisplay();
tamanho = analogRead(A3) * 0.0977517106549365;
display.setCursor(5, 5);
display.print("parametro");
display.setCursor(5, 15);
display.print("de profundidade");
display.setCursor(10, 45);
display.print("tanque_");
display.print(tamanho);
display.print(" cm");
display.setCursor(67, 30);
display.print("este valor");
display.setCursor(80, 40);
display.print("deve ser");
display.setCursor(95, 50);
display.print("maior");
display.display();
}
}
if (digitalRead(bt_start) == 0 && (reset) == 1)
{
start = 1;
}
if ((start) == 1 && (reset) == 1 && (i) == 0)
{
digitalWrite (led_liga, HIGH);
digitalWrite (led_agua, LOW);
digitalWrite (aqua, LOW);
//servo1.write(0);
// while (digitalRead(fx) == 1)
// {
// display.clearDisplay();
// display.setTextSize(1);
// display.setCursor(20, 20);
// display.print("buscando");
// display.setCursor(20, 30);
// display.print("referencia");
// display.display();
// }
long int distancia = ultrassom.read(CM); // distancia recebe o valormedido em cm
// centímetros(CM) ou polegadas(INC)
Serial.print(tamanho); //imprime o valor da variável distancia
Serial.println("cm");
if ((real) > 90)
{
tanque = 1;
while ((tanque) == 1)
{
long int distancia = ultrassom.read(CM);
visual = 100 / tamanho;
real = distancia * visual;
display.clearDisplay();
display.setTextSize(1);
display.setCursor(20, 20);
display.print("encha o");
display.setCursor(20, 30);
display.print("tanque");
display.setCursor(20, 40);
display.print(real);
display.print("%");
display.drawRoundRect(10, 53, 50, 10, 5, WHITE);
grafico_tanque();
display.display();
tone(24, 528, 1500);
digitalWrite(led_agua, HIGH);
delay(500);
digitalWrite(led_agua, LOW);
delay(500);
Serial.println(real); //imprime o valor da variável distancia
if ((real) < 10)
{
tanque = 0;
}
}
}
//ATE AQUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
if ( (start) == 1 && (tanque) == 0)
{
visual = 100 / tamanho;
real = distancia * visual;
mi1 = analogRead(A0) * 0.09765625;
mi2 = analogRead(A1) * 0.09765625;
mi3 = analogRead(A2) * 0.09765625;
speed = analogRead(A3) * 0.48828125;
display.clearDisplay();
display.setCursor(10, 45);
display.print("tanque_");
display.print(100 - real);
display.print("%");
grafico_tanque();
display.setCursor(10, 0);
display.print("Aguardando sinal");
display.setCursor(10, 10);
display.print("I1_");
display.print(mi1);
display.print("%");
maxi = 50 + (i1max / 2);
mini = 50 + (i1min / 2);
display.drawLine(maxi, 10, maxi, 20, WHITE);// As coordenadas (x1, y1) indicam o início da linha e as coordenadas (x2, y2) indicam onde a linha termina.
//drawRoundRect(x, y, largura, altura, raio, cor)
grafico_mi1();
display.setCursor(10, 20);
display.print("I2_");
display.print(mi2);
display.print("%");
maxi2 = 50 + (i2max / 2);
mini2 = 50 + (i2min / 2);
display.drawLine(maxi2, 20, maxi2, 30, WHITE);
display.drawRoundRect(50, 20, 50, 10, 5, WHITE);
grafico_mi2();
display.setCursor(10, 30);
display.print("I3_");
display.print(mi3);
display.print("%");
maxi3 = 50 + (i3max / 2);
mini3 = 50 + (i3min / 2);
display.drawLine(maxi3, 30, maxi3, 38, WHITE);
display.drawRoundRect(50, 30, 50, 10, 5, WHITE);
grafico_mi3();
visual = 100 / tamanho;
real = distancia * visual;
display.setCursor(70, 55);
display.print("V_");
display.print(100-speed * 0.2);
display.print("%");
display.display();
Serial.print (speedf);
Serial.println ("%");
Serial.print (analogRead(A3));
Serial.println ("pot");
Serial.print (speed);
Serial.println ("delay");
if (analogRead(A0) * 0.09765625 > i1max && (reset) == 1)
{
r1 = r1 + 1;
delay(30);
display.clearDisplay();
display.setCursor(0, 0);
display.print(run);
display.setCursor(0, 10);
display.print("para I1");
display.display();
motordir = servo1.read();
while ((motordir) != 60)
{
servo1.write(motordir);
if ((motordir)>60)
{
motordir = motordir - 1;
}
if ((motordir)<60)
{
motordir = motordir + 1;
}
delay(speed);
}
if ((motordir) == 60 && (reset) == 1)
{
while (analogRead(A0) * 0.09765625 > i1min)
{
long distancia = ultrassom.read(CM);
mi1 = analogRead(A0) * 0.09765625;
digitalWrite (led_agua, HIGH);
digitalWrite (aqua, HIGH);
display.clearDisplay();
delay(300);
display.setCursor(0, 0);
display.print(irrig);
display.print(" I1_");
display.print(mi1);
display.print("%");
display.drawBitmap(mini, 10, linha, 1, 8, 1);
display.drawBitmap(10, 10, image_data_chuva, 20, 20, 1);
display.drawRoundRect(50, 10, 50, 10, 5, WHITE);
grafico_mi1();
visual = 100 / tamanho;
real = distancia * visual;
display.setCursor(10, 45);
display.print("tanque_");
display.print(100 - real);
display.print("%");
display.drawRoundRect(10, 53, 50, 10, 5, WHITE);
grafico_tanque();
display.display();
Serial.println (analogRead(A0)) ;
delay(1000);
// motordir = 0;
}
}
}
else if (analogRead(A1) * 0.09765625 > i2max && (reset) == 1)
{
r2 = r2 + 1;
delay(30);
display.clearDisplay();
display.setCursor(0, 0);
display.print(run);
display.setCursor(0, 10);
display.print("para I2");
display.display();
motordir = servo1.read();
while ((motordir) != 120)
{
servo1.write(motordir);
if ((motordir)>120)
{
motordir = motordir - 1;
}
if ((motordir)<120)
{
motordir = motordir + 1;
}
delay(speed);
}
if ((motordir) == 120)
{
while (analogRead(A1) * 0.09765625 > i2min && (reset) == 1)
{
long distancia = ultrassom.read(CM);
mi2 = analogRead(A1) * 0.09765625;
digitalWrite (led_agua, HIGH);
digitalWrite (aqua, HIGH);
display.clearDisplay();
delay(300);
display.setCursor(0, 0);
display.print(irrig);
display.print(" I2_");
display.print(mi2);
display.print("%");
display.drawBitmap(10, 10, image_data_chuva, 20, 20, 1);
display.drawRoundRect(50, 20, 50, 10, 5, WHITE);
grafico_mi2();
visual = 100 / tamanho;
real = distancia * visual;
display.setCursor(10, 45);
display.print("tanque_");
display.print(100 - real);
display.print("%");
display.drawRoundRect(10, 53, 50, 10, 5, WHITE);
grafico_tanque();
display.display();
Serial.println (analogRead(A1)) ;
delay(1000);
//motordir = 0;
}
}
}
else if (analogRead(A2) * 0.09765625 > i3max && (reset) == 1)
{
r3 = r3 + 1;
delay(30);
display.clearDisplay();
display.setCursor(0, 0);
display.print(run);
display.setCursor(0, 10);
display.print("para I3");
display.display();
motordir = servo1.read();
while ((motordir) != 180)
{
servo1.write(motordir);
if ((motordir)>180)
{
motordir = motordir - 1;
}
if ((motordir)<180)
{
motordir = motordir + 1;
}
delay(speed);
}
if ((motordir) == 180 && (reset) == 1)
{
while (analogRead(A2) * 0.09765625 > i3min && (reset) == 1)
{
long distancia = ultrassom.read(CM);
mi3 = analogRead(A2) * 0.09765625;
digitalWrite (led_agua, HIGH);
digitalWrite (aqua, HIGH);
display.clearDisplay();
delay(300);
display.setCursor(0, 0);
display.print(irrig);
display.print(" I3_");
display.print(mi3);
display.print("%");
display.drawBitmap(10, 10, image_data_chuva, 20, 20, 1);
display.drawRoundRect(50, 30, 50, 10, 5, WHITE);
grafico_mi3();
visual = 100 / tamanho;
real = distancia * visual;
display.setCursor(10, 45);
display.print("tanque_");
display.print(100 - real);
display.print("%");
display.drawRoundRect(10, 53, 50, 10, 5, WHITE);
grafico_tanque();
display.display();
Serial.println (analogRead(A2)) ;
// motordir = 0;
}
}
}
}
}
}//loop