collapse

* Posts Recentes

Alguém arranja motores? por almamater
[Ontem às 16:07]


Sistema a LASER que será também capaz de matar moscas por jm_araujo
[Ontem às 12:35]


Nevadent - Não carrega por almamater
[22 de Novembro de 2024, 21:36]


Classmate Leap T304 não liga por almamater
[19 de Novembro de 2024, 07:13]


+ LASERs por dropes
[18 de Novembro de 2024, 21:50]


Dúvida com fonte de alimentação comutada por filjoa
[28 de Outubro de 2024, 21:57]


Motoserra Stihl 120C por dropes
[26 de Outubro de 2024, 19:01]


Shelly em jeito de watchdog por SerraCabo
[24 de Outubro de 2024, 19:24]


Meu novo robô por josecarlos
[06 de Outubro de 2024, 13:33]


Sirene NOVA maluca por dropes
[01 de Outubro de 2024, 18:26]

Autor Tópico: tutorial de servos  (Lida 16863 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:tutorial de servos
« Responder #15 em: 07 de Fevereiro de 2009, 02:46 »
Código: [Seleccione]
#include <ServoTimer1.h>

ServoTimer1 servo1;

int tecla;

void setup() {
  Serial.begin(9600);         
  servo1.attach(9);
}

void loop() {
if (Serial.available() > 0){
  tecla = Serial.read();
  if(tecla == 'z'){
    Serial.println("Esquerda");
servo1.write(110);
 
  }
  if(tecla == 'c'){
    Serial.println("Direita");
    servo1.write(70);
 
  }
  if(tecla == 'x'){
    Serial.println("Centro");
    servo1.write(90);
    }
  }
}

testem aí este.. a biblioteca ServoTimer1 n sei o que faz de especial, mas é a que estava sugerida no tut da ladyada..

deixo anexada a biblioteca.. (que deve ser extraída na pasta hardware/library/ do arduino.)
« Última modificação: 07 de Fevereiro de 2009, 02:49 por ricardo-reis »

Offline andnobre

  • Mini Robot
  • *
  • Mensagens: 402
Re:tutorial de servos
« Responder #16 em: 07 de Fevereiro de 2009, 11:22 »
com o codigo que escreves o meu servo anda so as voltas e nao faz nada daquilo que é pedido.

Offline andnobre

  • Mini Robot
  • *
  • Mensagens: 402
Re:tutorial de servos
« Responder #17 em: 07 de Fevereiro de 2009, 11:28 »
bem n sei mesmo o que fazer aos meus servos eu tenho 4 da futaba s3003 a modificacao que eu fiz foi:
tirar o batente depois colocar uma divisor resistivo com duas resistencias de 10K em vez do potenciometro.
estes servos nao nada do colocar uma chave de estrela para calibrar....
a modificação que eu fiz vem na elecktor de agosto de 2008 que vem na pagina 55.

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #18 em: 07 de Fevereiro de 2009, 11:36 »
eu já modifiquei vários servos e nunca usei resistências... queres que eles fiquem servos de rotação contínua certo?

eu apenas removo o circuito por completo, tiro o batente e ligo fios novos aos pins do motor, e fico com um motor dc normal com redutoras.

espero estar a ajudar  ;)

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.378
    • Tiago Rodrigues
Re:tutorial de servos
« Responder #19 em: 07 de Fevereiro de 2009, 12:22 »
Mas se fazes assim, deixas de poder controlar o sentido e velocidade só por um fio certo?!

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #20 em: 07 de Fevereiro de 2009, 12:36 »
fica um motor dc normal..  controlo o sentido com a ponte-H e a velocidade com PWM

não é isto que se pretende?

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #21 em: 07 de Fevereiro de 2009, 12:39 »
Citar
controlar o sentido e velocidade só por um fio certo?!

ok agora percebi.. desculpem se estou a complicar  :D

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.378
    • Tiago Rodrigues
Re:tutorial de servos
« Responder #22 em: 07 de Fevereiro de 2009, 12:47 »
Citar
controlar o sentido e velocidade só por um fio certo?!

ok agora percebi.. desculpem se estou a complicar  :D
Pois, ele quer uma coisas simples e por isso o servo de rotação continua, ao transforma-lo num potor DC, vai complicar porque terá que utilizar ponte H e tudo mais.

Mas fica a ideia para se alguém quiser um motor DC com muita desmultiplicação.

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #23 em: 07 de Fevereiro de 2009, 13:00 »
Ricardo finalmente encontrei o tal código que muda a posição do servo consoante a tecla (de 0 a 9) que pressionas, aqui fica  ;)

Código: [Seleccione]
/*
 * Servo Serial Better
 * -------------------
 *
 *
 * Created 18 October 2006
 * copyleft 2006 Tod E. Kurt <tod@todbot.com>
 * http://todbot.com/
 *
 * adapted from "http://itp.nyu.edu/physcomp/Labs/Servo"
 */

int servoPin = 7;     // Control pin for servo motor

int pulseWidth = 0;    // Amount to pulse the servo
long lastPulse = 0;    // the time in millisecs of the last pulse
int refreshTime = 20;  // the time in millisecs needed in between pulses
int val;               // variable used to store data from serial port

int minPulse = 700;   // minimum pulse width

void setup() {
  pinMode(servoPin, OUTPUT);  // Set servo pin as an output pin
  pulseWidth = minPulse;      // Set the motor position to the minimum
  Serial.begin(19200);         // connect to the serial port
  Serial.println("Servo Serial Better ready");
}

void loop() {
  val = Serial.read();      // read the serial port
  // if the stored value is a single-digit number, blink the LED that number
  if (val >= '0' && val <= '9' ) {
    val = val - '0';       // convert from character to number
    val = val * (180/9);   // convert from number to degrees
    pulseWidth = (val * 9) + minPulse;  // convert angle to microseconds
    Serial.print("moving servo to ");
    Serial.print(pulseWidth,DEC);
    Serial.println();
  }
  updateServo();   // update servo position
}

// called every loop().
// uses global variables servoPin, pulsewidth, lastPulse, & refreshTime
void updateServo() {
  // pulse the servo again if rhe refresh time (20 ms) have passed:
  if (millis() - lastPulse >= refreshTime) {
    digitalWrite(servoPin, HIGH);   // Turn the motor on
    delayMicroseconds(pulseWidth);  // Length of the pulse sets the motor position
    digitalWrite(servoPin, LOW);    // Turn the motor off
    lastPulse = millis();           // save the time of the last pulse
  }
}


Offline jagsilva

  • Mini Robot
  • *
  • Mensagens: 125
    • jagsilva
Re:tutorial de servos
« Responder #24 em: 07 de Fevereiro de 2009, 13:07 »
fica um motor dc normal..  controlo o sentido com a ponte-H e a velocidade com PWM

não é isto que se pretende?

Já alterei dois motores para rotação continua e retirei a placa. Ja tenho montada a ponte mas agora estou na duvida sobre qual a melhor livraria para comandar os motores. Podes dar uma ajuda?
Obrigado

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.378
    • Tiago Rodrigues
Re:tutorial de servos
« Responder #25 em: 07 de Fevereiro de 2009, 13:08 »
Que trabalheira... está tudo maluco...  :o

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:tutorial de servos
« Responder #26 em: 07 de Fevereiro de 2009, 13:26 »
gui, o que eu postei tb faz a rotação dependendo da tecla k pressionas.. n serve é pa servos modificados, n reparei que era isso que ele kria.. tb se arranja código pra isso.. é como o tig disse ontem.. :)

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #27 em: 07 de Fevereiro de 2009, 13:29 »
Citar
Citação de: guibot em Hoje às 12:36
fica um motor dc normal..  controlo o sentido com a ponte-H e a velocidade com PWM

não é isto que se pretende?

Já alterei dois motores para rotação continua e retirei a placa. Ja tenho montada a ponte mas agora estou na duvida sobre qual a melhor livraria para comandar os motores. Podes dar uma ajuda?
Obrigado

se alteras-te os motores para rotação contínua não precisas de livraria, agora tornaram-se motores DC normais

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:tutorial de servos
« Responder #28 em: 07 de Fevereiro de 2009, 13:33 »
pois.. servos modificados n são servos, são motores dc de três fios.. lol..

Offline guibot

  • Mini Robot
  • *
  • Mensagens: 651
    • Guibot
Re:tutorial de servos
« Responder #29 em: 07 de Fevereiro de 2009, 13:36 »
Citar
pois.. servos modificados n são servos, são motores dc de três fios.. lol..

ou não, se os modificares como eu disse ficam só com 2 fios como um DC normal  LOL