Mi servomotor no ejecuta acción desde Python

Que tal comunidad. No comprendo porque cuando le envio una señal desde python al serial del arduino, el servomotor no gira. Solo funciona cuando no hay FOR.
Y si le envio el valor cad=1 directamente por el serial del arduino, tampoco gira.

Aqui le dejo los codigos de Arduino:

#include <Servo.h>  //Include the Servo Library
int opc,pos;
String cad;  
Servo servo1;   // "Servos" objects are created

void setup() {

  Serial.begin(9600);
  servo1.attach(5,600,2500);
  //servo1.write(90);
}
void loop() {

if (Serial.available()) {    // Read the value sent by the Serial Port
  delay(5);
  cad=Serial.readString();
  opc=cad.toInt();
  if(opc=1){
      for(pos=88;pos<=90;pos+=1){    //Cuando coloco FOR no gira el servo
        servo1.write(pos);           //En lugar, si coloco directamente un valor en pos (ejem:180) 
                                     //si gira de acuerdo cuando Python envia opc=1
        }
   Serial.println(opc);
    
}
}}

He colocado pos=88 a 90 porque busco un movimiento lento del servo.
Y tambien tengo problemas al darle un giro igual de lento en sentido contrario.

Muchas gracias

Hola, unas cosillas.
¿Crees que esto esta bien?

 if(opc = 1){

¿ No sera ?

 if(opc == 1){

Pero no es de eso, pero si le mandas algo distinto de 1 tambien funcionara.

¿ De 88 a 90 ?. Eso es 1/4 de diente de engranaje, unas veces va y otras no. Yo en mi servo he tenido que bajar a 85 para que siempre se note. Pero aunque influye ,(segun que servo supongo), tampoco es de eso.
El problema es que el for es tan rápido que ni poniendo de 0 a 90 al servo le da tiempo a reaccionar. Tendrás que añadir un delay dentro del bucle for para darle tiempo al servo a moverse. Para mi sg90 con un 20 va bien, has unas pruebas y saca tu valor.
Saludos.

Gracias, lo estuve revizando y parece que la arduino solo obedece cuando la velocidad relativamente rapida. cuando era muy baja la velocidad no giraba el servo.

Asi que tuve que probar diferentes velocidades (5,250,4800) (por ejemplo) para que se ejecutara el giro del servo.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.