Código controle de servomotor com potenciômetro
Olá turma segue abaixo o código completo do circuito do encontro de 17/08/2018
#include <Servo.h>
#define SERVO 3 // Porta Digital 3 PWM
//portas para os leds
int ledVerde=12;
int ledVermelho=11;
int ledAmarelo=13;
int pinoPOT = A0; //PINO ANALÓGICO usado pelo Potenciômetro
int leituraA0; //VARIÁVEL QUE ARMAZENA O valor lido na porta analogica
Servo s; // Variável Servo
int pos; // Posição Servo
void setup ()
{
pinMode(ledVerde,OUTPUT);//define pinos como saida
pinMode(ledVermelho,OUTPUT);
pinMode(ledAmarelo,OUTPUT);
s.attach(SERVO);
Serial.begin(9600);
// s.write(0); // Inicia motor posição zero
}
void loop()
{
//servoMover();
//ledServoAcionar();
leituraA0= analogRead(pinoPOT);//analogRead(pinPOT);
pos= map(leituraA0, 0, 1023, 180, 0); //EXECUTA A FUNÇÃO "map" DE ACORDO COM OS PARÂMETROS PASSADOS
s.write(pos);
posLed(pos);
delay(5);
}
void servoMover(){
for(pos = 0; pos < 180; pos++)
{
s.write(pos);
delay(15);
}
delay(1000);
for(pos = 180; pos >= 0; pos--)
{
s.write(pos);
delay(15);
}
delay(1000);
}
void posLed(int grau){
if(grau>87 && grau<93){
digitalWrite(ledVerde,HIGH);
digitalWrite(ledVermelho,LOW);
digitalWrite(ledAmarelo,LOW);
}
if(grau<88){
digitalWrite(ledVerde,LOW);
digitalWrite(ledVermelho,HIGH);
digitalWrite(ledAmarelo,LOW);
}
if(grau>92){
digitalWrite(ledVerde,LOW);
digitalWrite(ledVermelho,LOW);
digitalWrite(ledAmarelo,HIGH);
}
}
//função automatica para movimentar servo e acender led
void ledServoAcionar(){
pos=0;
s.write(pos);
posLed(pos);
delay(2000);
pos=90;
s.write(pos);
posLed(pos);
delay(2000);
pos=180;
s.write(pos);
posLed(pos);
delay(2000);
}
Nenhum comentário:
Postar um comentário