Olá, esse programa tem como objetivo girar o servo a 90° assim que o sensor de temperatura marcar 30°C ou mais, e voltar a 0° com 29°C ou menos. Fiz esse código usando um potenciômetro para simular o sensor de temperatura, mas acredito que não venha daí o meu problema.
O que percebi e o seguinte:
O código funciona bem, faz exatamente o que preciso porém, o servo tende a mexer, o movimento e mínimo, mas atrapalha e não é sempre, mas ele se repete na mesma frequência com o tempo do loop, o que me dá quase certeza que escrevi errado.
Alguém pode me dizer no que errei?
Segue o código:
#include <Servo.h>
int j = 0;
int i = 0;
Servo servo_3;
void setup()
{
pinMode(A0, INPUT);
servo_3.attach(3);
Serial.begin(9600);
}
void loop()
{
j = map(analogRead(A0), 0, 1023, 0, 100);
if (j > 30 && servo_3.read() <= 0) {
for (i = 0; i <= 90; i += 1) {
servo_3.write(i);
delay(25);
}
} else {
if (j < 30 && servo_3.read() >= 90) {
for (i = 90; i >= 0; i -= 1) {
servo_3.write(i);
delay(25);
}
}
}
Serial.print("Temperatura: ");
Serial.print(j);
Serial.println("C.");
delay(500);
Serial.print("Servo em = ");
Serial.print(servo_3.read());
Serial.println(" graus");
delay(1000);
}
servo (1).txt (677 Bytes)