Acelerador Banco Motor - V4 2024
/* Engenharia Experimental
* Wilson R. Bueno 09/03/2022
* V3 - Funcional - Sem PULL_UP, por causa da indução no cabo
* Baseado no acelerador do banco 2 - movimento proporcional à tensão em A0
*/
#define leitura A0 //Entrada analógica conectado no ECAT
#define zeramento 2 //Sensor de posição Zero do motor
#define passoah 10 //Saida digital - passo antihorário
#define passoh 11 //Saida digital - passo horário
int statusleitura = 0; //Status da entrada leitura
int posicao = 0; //Variável
int outputValue = 0; //value output to the PWM (analog out)
void setup() {
pinMode(leitura, INPUT);
pinMode(zeramento, INPUT);
pinMode(passoah, OUTPUT);
pinMode(passoh, OUTPUT);
Serial.begin(9600);
//para trazer o motor no zero - sentido antihorário
while(digitalRead(zeramento) == HIGH){
digitalWrite(passoah, HIGH);
delayMicroseconds(500);
digitalWrite(passoah, LOW);
delayMicroseconds(500);
Serial.println("Loop while");
}
posicao = 0;
}
void loop(){
statusleitura = analogRead(leitura);
outputValue = map(statusleitura, 0, 1023, -10, 150); //Mapear o movimento 0 a 90° - qto menor o 255, menor o ângulo. 85 para acelerador Etorque
//-10 para voltar no sensor - 150 para motor GSE T3 em 25/03/24
//outputValue = map(statusleitura, 0, 500, 0, 255); //Mapear o movimento - Qto menor o 1023, maior o ângulo: 500 = 180°
Serial.println("Teste");
if(outputValue >= (posicao +10)){
digitalWrite(passoh, HIGH);
delayMicroseconds(500);
digitalWrite(passoh, LOW);
delayMicroseconds(500);
posicao = posicao +1;
Serial.println("H:");
}
if(outputValue < (posicao -10)){
digitalWrite(passoah, HIGH);
delayMicroseconds(500);
digitalWrite(passoah, LOW);
delayMicroseconds(500);
posicao = posicao -1;
Serial.println("AH:");
}
}
Comentários
Postar um comentário