Amigos, Fiz um contador de voltas com Arduíno para uma máquina de enrolar trafo.
O contador funcionou mas além de mostrar o valor do contador vem um outro símbolo junto.
Olhando no vídeo fica claro.
Peço um dica. Segue código:
#include <Stepper.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensor = 50;
int estadoBot = 0;
int cont=0;
int motorPin1 = 31;
int motorPin2 = 33;
int motorPin3 = 35;
int motorPin4 = 37;
int velocMotor = 1200;
int contagem = 0;
int passosPorRotacao = 1024;//512;
int vetorLigDesl[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};
void setup() {
lcd.begin(16, 2);
lcd.print("Horriiivel");
pinMode(sensor, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop() {
conta();
if(contagem < passosPorRotacao )
sentidoHorario(); // Função para rotacionar em sentido horário
else if (contagem == passosPorRotacao * 2)
contagem = 0;
else
sentidoAntiHorario(); // Função para rotacionar em sentido anti horário
contagem++;
}
// MÉTODO CONTAGEM
void conta(){
estadoBot = digitalRead(sensor);
if (estadoBot == HIGH) {
cont=cont +1;
delay(200);
lcd.setCursor(5, 1);
lcd.print(cont);
}
}
// MÉTODO RODA AH
void sentidoAntiHorario()
{
for(int i = 0; i < 18; i++)
{
setOutput(i);
delayMicroseconds(velocMotor);
}
}
// MÉTODO RODA H
void sentidoHorario()
{
for(int i = 17; i >= 0; i--)
{
setOutput(i);
delayMicroseconds(velocMotor);
}
}
// METODO
void setOutput(int out) // Faz a manipulação de 0 e 1
{
digitalWrite(motorPin1, bitRead(vetorLigDesl[out], 0));
digitalWrite(motorPin2, bitRead(vetorLigDesl[out], 1));
digitalWrite(motorPin3, bitRead(vetorLigDesl[out], 2));
digitalWrite(motorPin4, bitRead(vetorLigDesl[out], 3));
}
Tags:
Bom dia, funcionou bem, estou querendo fazer uma tambem
vc pode me ajudar, pago.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por