Boa noite ! Amigos, Sou novo no assunto mas montei meu primeiro teste e estou tentando configurar controle de velocidade motor DC com potenciômetro + um servo.
Quando rodo servo funciona conforme esperado mas o controle do motor não roda conforme. Muda completamente a sensibilidade do potenciometro. Segue codigo abaixo.
Gostaria de uma ajuda.
/*
L298N Motor Control Demonstration with 2 Potentiometers
L298N-Motor-Control-Demo-2pots.ino
Demonstrates use of 2 potentiometers with Arduino and L298N Motor Controller
DroneBot Workshop 2017
http://dronebotworkshop.com
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
//Variáveis do Servo
int pos = 0;
// Motor A
int enA = 10;
int in1 = 9;
int in2 = 8;
// Speed control potentiometers
int SpeedControl1 = A0;
// Motor Speed Values - Start at zero
int MotorSpeed1 = 0;
void setup()
{
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
myservo.attach(7);
}
void Servo1(){
for (pos = 80; pos <= 90; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(40); // waits 15ms for the servo to reach the position
}
for (pos = 90; pos >= 80; pos -= 1) { // goes from 180 degrees to 0 degrees8
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(40); // waits 15ms for the servo to reach the position
}
}
void motor() {
// Set Motor A forward
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// Read the values from the potentiometers
MotorSpeed1 = analogRead(SpeedControl1);
// Convert to range of 0-255
MotorSpeed1 = map(MotorSpeed1, 0, 1023, 0, 255);
// Adjust to prevent “buzzing” at very low speed
if (MotorSpeed1 < 8)MotorSpeed1 = 0;
// Set the motor speeds
analogWrite(enA, MotorSpeed1);
}
void loop() {
motor();
Servo1();
}