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));
}

Exibições: 1374

Responder esta

Respostas a este tópico

Bom dia, funcionou bem, estou querendo fazer uma tambem

vc pode me ajudar, pago.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço