#include <Wire.h> // Biblioteca utilizada para fazer a comunicação com o I2C
#include <LiquidCrystal_I2C.h> // Biblioteca utilizada para fazer a comunicação com o display 20x4
#include <AccelStepper.h>
int potenciometro;
int speed = 500;
int accel = 100;
int fios = 61;
int dir = 2;
int step = 3;
int iniciar = 0;
int desligar = 0;
int confirma;
float bitola;
int etapa=1;
AccelStepper Motor(AccelStepper::DRIVER,step,dir);
#define col 16 // Serve para definir o numero de colunas do display utilizado
#define lin 2 // Serve para definir o numero de linhas do display utilizado
#define ende 0x27 // Serve para definir o endereço do display.
LiquidCrystal_I2C lcd(ende,col,lin); // Chamada da função LiquidCrystal para ser usada com o I2C
void setup()
{
lcd.init(); // Serve para iniciar a comunicação com o display já conectado
lcd.backlight(); // Serve para ligar a luz do display
lcd.clear(); // Serve para limpar a tela do display
lcd.setCursor(4,0); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("SNAPSHOT"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
lcd.setCursor(4,1); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("Decapagem ;)"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
delay(3000);
lcd.clear(); // Serve para limpar a tela do display
Motor.setMaxSpeed(speed);
Motor.setSpeed(speed);
Motor.setAcceleration(accel);
pinMode(8,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
pinMode(10,INPUT_PULLUP);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if (etapa=1)
{
potenciometro = analogRead(2);
lcd.setCursor(0,0); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("BITOLA= "); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
lcd.setCursor(8,0); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print(bitola); // Comando de saída com a mensagem que deve aparec
lcd.setCursor(0,1); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("CLICK CONFIRMAR"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
if (potenciometro > 0 && potenciometro < 341)
{ bitola = 0.2; }
if (potenciometro > 341 && potenciometro < 682)
{ bitola = 0.5; }
if (potenciometro > 682 && potenciometro < 1023)
{ bitola = 1.0; }
if (potenciometro > 1023 && potenciometro < 1364 )
{ bitola = 2.5; }
}
else
{
lcd.backlight(); // Serve para ligar a luz do display
lcd.clear(); // Serve para limpar a tela do display
lcd.setCursor(4,0); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("SNAPSHOT"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
lcd.setCursor(4,1); // Coloca o cursor do display na coluna 0 e linha 0
lcd.print("Decapagem ;)"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 1.
}
confirma=digitalRead(10);
if (confirma==0)
{ etapa = 2;
Motor.moveTo(20);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("POSICIONANDO FIO");
}
Motor.run();
}
void mydelay(long interval)
{
long init = millis();
while ((millis() - init) <= interval)
{
Motor.runSpeed();
}
}