Controlador ON OFF con histéresis usando Arduino UNO

Hola, buenas tardes, me encuentro desarrollando un controlador ON OFF con histéresis para accionar un prototipo de prótesis, esta será accionada por un sensor AD8232, sin embargo, ando modificando de nuevo la programación ya que no me es satisfactoria, vibra la prótesis y no cierra la mano aun cuando dejo de hacer fuerza. Ahorita ando realizando un nuevo código y tengo algunas dudas. Por el momento la ando accionando con un potenciómetro y solo uso dos servomotores, mi umbral superior es de 350, mi umbral inferior es de 250, al momento de que uso un potenciómetro los servomotores vibran y zumban mucho. He visto videos y he leído que zumban debido a que los voltajes de la fuente varían mucho y eso afecta a los servomotores, ¿ustedes saben cómo se puede resolver eso? Hice un promedio 100 muestras del voltaje que llega a la entrada y con eso se redujo la vibración, pero no el zumbido.
También otra duda, ¿cómo se si mi controlador con histéresis funciona? ya que cuando llego al umbral superior de 350, este se reduce y me rebaja a 340, un valor no mayor a 350. Pero cuando es el umbral inferior, este no sube a un nivel arriba de 250. Me imagino que por que uso un potenciometro y este no sube.

¡Alguien sabe cómo se resuelve el zumbido y si el código de histéresis es el correcto?
1676938720774.png1676938772781.png
 
Map será 0 359 porque 360° = 0 °
Además que tú potenciómetro no creo que gire 360°, girará 330° o así.
El servo seguramente solo se mueva 180° y no 360°.
Pisas el valor de valor, cada vez que pasas lo vuelves a mapear con lo que si tienes 512 dará 180 y a la siguiente 180 dará 20 y así.

Probablemente tengas problemas de alimentación, no menciona nada así que supongo que lo alimentas con el USB. Con un solo servo suele ir regumal, con dos irá mal directamente.
 
A los dos servomotores que les hago prueba los alimento con 1 fuente conmutada de 5 V a 3 A, ya que la prótesis final tiene 5 servos, 4 NG996 y 1 SG90. Por lo tanto, no creo que carezca de corriente pero me puedo equivocar.
Map es solo el escalamiento máximo al que puede llegar, por ejemplo solo reconocera datos hasta que se cuantice a 360 ya que es el voltaje promedio que se obtiene en señales provenientes del cuerpo humano.
Ah ok, entiendo, entonces utilzaré de una vez el sensor AD8232 para hacer pruebas por que no habia considerado que el potenciometro pisa y vuelve a pisar el mismo valor, gracias. Igual ya depende lo que salga lo sigo posteando.
 
He vuelto a leer el código, lo que dije de valor no es cierto. Está bien.
Haces la media de 1000 muestras, eso en Arduino es una eternidad porque cada lectura creo que son 100ms o una barbaridad semejante.
Pon un led para ver si vibra mientras no estás activando nada o cuando estás activando.

Podría ser error en la lectura del potenciómetro, porque esté mal conectado o algo. No creo porque haces 1000 muestras.
O bien que el servo no va bien o algo así.
La histeresis creo que la puedes quitar porque ya tienes una de 100 en superior e inferior, te da lo mismo de 250 a 350 que de 249 a 351, no vas a notar la diferencia.
 
La proxima vez, formatea el código para que sea mas legible (mira mi firma).

Me genera dudas sobre la descripción de "vibra" y "zumba".

Haz probado con un código de 1 solo servo, y realizar un loop de movimiento para determinar el funcionamiento correcto de lo que llevas armado?

Fotos del montaje?
 
Lo he mirado y son 100us así que 1000 medidas sale 0,1s que son 10Hz, podría ser eso.
Pero le añade un delay mas lo que daría 5Hz y seo "se ve" a simple vista.
 
Atrás
Arriba