Hola, soy nuevo por aquí y os comento llevo teniendo unos problemas de hace tiempo que no se como resolver y es que el servo no para de moverse aleatoriamente 1 o 2 grados como mucho pero bastantes veces este es mi codigo esta algo resumido porque es muy largo
#include <DallasTemperature.h> //libreria para q funcion sonda tmp
#include <OneWire.h> //libreria para q funcion sonda tmp
OneWire ourWire1(11); //declara pin de la sonda tmp
OneWire ourWire2(2); //declara pin de la sonda tmp
DallasTemperature sensors1 (&ourWire1); //para funcionamiento de la sonda tmp
DallasTemperature sensors2 (&ourWire2); //para funcionamiento de la sonda tmp
#include <Servo.h>
Servo servo;
int numerito = 0;
int pulsadorPin = 4;
void setup() {
servo.attach(13);
Serial.begin(9600);
pinMode(pulsadorPin, INPUT);
servo.write(155); //posición inicial del servo
}
void loop() {
int NUmcontador = digitalRead(pulsadorPin); //tiene que in en el void loop sino no funciona
int posser = servo.read(); //tiene que in en el void loop sino no funciona
sensors1.requestTemperatures(); //solicita info de la sonda tmp
sensors2.requestTemperatures(); //solicita info de la sonda tmp
float temp1 = (sensors1.getTempCByIndex(0));
float temp2 = (sensors2.getTempCByIndex(0));
delay(10);
Serial.println(posser);
if (NUmcontador == 1) { //este if va a detectar cuando se pulsa el pulsador
numerito++; // y suma uno a esta variable
delay(400); //tiempo suficiente para que no detecte doble pulsacion
}
}
he llegado a la conclusión de que los siguientes comandos son los causantes de esto:
sensors1.requestTemperatures();
sensors2.requestTemperatures();
float temp1 = (sensors1.getTempCByIndex(0));
float temp2 = (sensors2.getTempCByIndex(0));
ya que cuando los quito el servo se comporta normal pero no puedo prescindir de ellos ya que necesito usar 2 sensores de temperatura