#include <LiquidCrystal.h>
#include <AccelStepper.h>
AccelStepper motor1(A1,A0,9);
LiquidCrystal lcd(7,6,5,4,3,2); // Declaração do objeto tipo lcd

// Definição dos pinos dos botões, luz do display e buzzer
#define set A2 // botao de set reset
#define bMenu 12 // Os pinos analógicos podem ser
#define bChange 11 // usados como digitais, bastando
#define bMenu0 90 // Valor de referência que a
#define bChange0 91 // função CheckButton() passa

boolean aMenu, aChange, aMenuA, aChangeA; // Grava o ultimo valor lidos nos botões.
int botao2 = 10;
int botao1 = 8; // Porta de entrada para botao de direcção sentido Horario.
int EN_motor1 = A1; //Declaracao dos motores
int DIR_motor1 = A0;
int STEP_motor1= 9;
int stato1 = 0;
int stato2 = 0;
int led = 13;
int botao = A2;
int contador = 0;
int estadoAnterior = 0;
int leitura= 0;
int variavel; // variavel a ser alterada pelo menu
char state=4; // variável que guarda posição atual do menu

//============================================== SETUP
void setup()
{

lcd.begin(16, 2); // Iniciando a biblioteca do LCD
pinMode(set, INPUT);
pinMode(led, OUTPUT);
pinMode(bMenu, INPUT); // Botões
pinMode(bChange,INPUT);
pinMode(botao1, INPUT);
pinMode(botao2, INPUT);
digitalWrite(bMenu, HIGH); // Aciona o pull-up interno
digitalWrite(bChange,HIGH); // dos botões

}
void loop()
{
{
switch (state) { // Define checa qual tela atual
case 4: // executado quando na TELA 4
switch (CheckButton()) {
case bMenu:
lcd.clear(); variavel+=20;
if(variavel > 10000) variavel = 0;
break;
case bChange:
lcd.clear(); variavel-=20;
if(variavel < 0) variavel = 10000;
break;



default:
Set_state(4);
}
break;



default: ;
}
}

{//
{stato2 = digitalRead(botao2);
if (stato2 == HIGH)
{
//digitalWrite(EN_motor1, LOW); // enable
digitalWrite(DIR_motor1, LOW); // sentodo ORARIO
digitalWrite(STEP_motor1, LOW); //
delayMicroseconds(variavel);
digitalWrite(STEP_motor1, HIGH);
delayMicroseconds(variavel);
}
}
}
{stato1 = digitalRead(botao1);

if (stato1 == HIGH)
{
//digitalWrite(EN_motor1, HIGH); // enable
digitalWrite(DIR_motor1, HIGH); // sentodo ORARIO
digitalWrite(STEP_motor1, LOW); //
delayMicroseconds(variavel);
digitalWrite(STEP_motor1, HIGH);
delayMicroseconds(variavel);
}
}
}

{

leitura =digitalRead(botao);

if (leitura != estadoAnterior)

if(leitura== HIGH)
{//2


estadoAnterior =leitura;

if (contador==2)


{//3
digitalWrite(led,HIGH);
}
if (contador==3)

{
digitalWrite(led,LOW);
contador=0;

}}
}

}


//============================================== FIM da função LOOP
//============================================== CheckButton
char CheckButton() {
if (aMenu!=digitalRead(bMenu)) {
aMenu=!aMenu;
if (aMenu) return bMenu0; else return bMenu;
} else
if (aChange!=digitalRead(bChange)) {
aChange=!aChange;
if (aChange) return bChange0; else return bChange;

} else
return 0;
}
//============================================== Set_state
void Set_state(char index) {
state = index; // Atualiza a variável state para a nova tela
switch (state) { // verifica qual a tela atual e exibe o conteúdo correspondente
case 4: //==================== state 4
lcd.setCursor(5,0);
lcd.print("Motor1:");
lcd.setCursor(7,1);
lcd.print(variavel, DEC);


break;
default: ;
}
}

Exibições: 238

Responder esta

Respostas a este tópico

Estou com o seguinte problema esta sketch esta dando erro nao estou conseguindo inserir este contador ai alguem poderia me ajudar ?

Por favor, siga as orientações de como postar aqui no forum.

Orientações para postar

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço