ayuda ¡¡¡ para saber que arduino instalar
#21
es decir ¡¡¡¡ creo que no memoriza la ultima posición
Responder
#22
Prueba a incluir esta línea en el setup quizá se solucione, sino, algún compañero con más conocimientos pueda ayudarte.
servo1.write(0);
Responder
#23
gracias ¡¡¡¡ seguiré probando ¡¡¡ si doy con la configuración correcta lo pondré
Responder
#24
Hola,

Dentro de la función de "setup" deberías inicializar la posición del servo tal y como sugería Jordi. Depende la librería que uses para manejar servos, la instrucción puede ser un poco diferente. Según el código que he visto en unos posts atrás, sería "servo1.write(20,10);" por ejemplo, pero dándole el ángulo y velocidad inicial que quieras.

Para conectar servos al Arduino yo utilizo normalmente el Sensor Shield v5. Tienes una versión para el Arduino UNO y otra para el Arduino MEGA (que son los que yo utilizaría). El Sensor Shield para el mega lo puedes comprar en ebay.com desde 8$ con portes incluidos:
http://www.ebay.com/itm/Geeetech-Mega-Se...XQtUxTdW7V

Y el el del UNO puedes encontrarlo desde 2.27$, portes también incluidos:
http://www.ebay.com/itm/Arduino-UNO-MEGA...xyrUZRzUBz

Además de permitir conectar los servos directamente en los pines, tiene un par de borneras para la alimentación externa de 5V.

Ten en cuenta que los cables de los servos no es nada aconsejable alargarlos porque son muy sensibles a interferencias. Puede provocar que el servo se mueva solo o no esté nunca quieto en la posición marcada. Así que puestos a elegir mejor poner un par de Arduino UNO cerca de los servos que un MEGA con todo el cableado centralizado.

Saludos,
Dani
Responder
#25
muchas gracias ¡¡¡....
lo de los cables largos ya me di cuenta ¡¡¡ incluso como rocen con algo metálico hacen raros los servos ¡¡¡
En fin así lo haré pero primero quiero dar con el programa ¡¡¡
Responder
#26
no consigo que guarde posición ¡¡¡¡
el EFFRON es una memoria del arduino ¡¡¡
pero me informado que es limitada y se gasta ¡¡¡¡
Responder
#27
Prueba a utilizar esta línea de código, depende de la librería que utilices.
servo.attach(pin, min, max)
También la línea que te facilité, en lugar de 0 puedes poner el valor intermedio del rango que utilizas, por si suena la flauta.
Responder
#28
probaré ¡¡¡ voy a preguntar en el otro foro N ¡¡¡ ,,, me van a mandar cerca ¡¡¡¡ ya veras ¡¡¡
jajajajjaj
gracias saludos
Responder
#29
(08-06-2016, 20:37)JoseBarrossoGarcia escribió: no consigo que guarde posición ¡¡¡¡
el EFFRON es una memoria del arduino ¡¡¡
pero me informado que es limitada y se gasta ¡¡¡¡

Hola,

Efectivamente la EEPROM es la memoria interna donde puedes guardar variables o valores que te interesen y no se borra al apagar el Arduino. Es verdad que se "gasta", pero necesitarias una vida entera para ello.... así que no te preocupes. Igualmente, no estarás guardando continuamente, verdad? Únicamente guardaras los grados a los que quieres mover cada uno de los servos y sólo cuando cambies estos valores.

También puedes fijar estos valores como constantes en el código. No es lo mas limpio, pero si de lo mas práctico. Si nos enseñas el programa que estás haciendo y nos explicas en concreto qué quieres hacer seguro que podemos ayudarte mas.
Responder
#30
pues es para los desvios ¡¡¡ con un solo pulsor por servo ,,, este me va bien en angulo y velocidad pero cuando desconecto y conecto arduino ,,,el servo se posiciona muy lejos del ciclo ,,, y hasta que no pulso la primera vez ,,,no va hasta el ciclo ...


este el programa:

#include <Servo.h>

const int servoPin = 9;
const int buttonPin = 2;

int buttonState = 0;
int directionState = 0;

Servo myservo;

int pos = 0;


void setup() {
myservo.attach(9);
pinMode(buttonPin, INPUT);
}

void loop(){

buttonState = digitalRead(buttonPin);

if (directionState == 0){

if (buttonState == HIGH) {
directionState = 1;


for(pos = 15; pos < 40; pos=pos+1)
{
myservo.write(pos);
delay(35);
}
}

} else if (directionState == 1) {

if (buttonState == HIGH) {
directionState = 0;


for(pos = 40; pos>=15; pos=pos-1)
{
myservo.write(pos);
delay(35);
}
}
}
}
Responder
#31
Hola.

Entiendo que quieres desplazar el servo entre 15º y 45º y que cuando conectas la alimentación, este tiende a situarse en 90º.
Cuando recibe la señal de arduino (unos milisegundos después), se dirige a 45 o 15 según tengas el pulsador o interruptor.

Si lo que supongo es así, ¿no podrías mover el servo entre 75º y 105º?
Siguen siendo 30º y ahora al iniciar, está dentro del rango.
(utilizo casi el mismo programa y se mueven entre 85º y 95º sin problema aparente)

Saludos
Responder
#32
voy a probar ¡¡¡ gracias ... no había pensado eso ¡¡¡
Responder
#33
Creo que la linea int pos no deberia estar a 0, un valor dentro de lo que tienes definido quizá sea correcto, si lo pruebas hazlo desconectado del desvio por si acaso.
Responder
#34
es ese el problema ¡¡¡ pero sigue pasando ....no hay forma .. el ciclo entre grados queda muy lejos de esa posición inicial ¡¡
Responder
#35
si ¡¡¡ le puesto a la linea int un valor medio y se situa ahí .... pero antes ,en cuanto conectas va una posición de unos 30 o 40 grados mas alejado ...
Responder
#36
Creo que la solución está en alimentar los servos a parte con un transformador ¡¡¡ conectar primero el arduino y después la alimentación de los servos ¡¡¡¡.... así el arduino ya tiene la posición inicial preparada ¡¡¡
Responder
#37
Pero no lo alimentabas ya por separado?, daba por sentado que ya alimentabas independiente, Arduino no puede por si solo con mucho consumo, una cosa es un microservo en vacío para probar, otra cosa es con carga y de mayor tamaño.
De todas formas yo seguiría investigando por el placer de conseguirlo por programación.
¡¡¡¡Ah!!!! Recuerda, las masas han de estar unidas.
Responder
#38
Lo que yo comentaba... Jordi, en la imagen daba la sensacion de que el servo estaba conectado directamente al Arduino, por eso mi mensaje anterior. Eso causa comportamientos totalmente impredecibles, por supuesto!
Responder
#39
Precisamente estos días atrás he estado liado con unos proyectos con servos y Arduinos Nano, alimentado directamente para probar funcionamiento, un micro servo.
Al colocar los que van a ir definitivos alimente por separado olvidando conectar las masas y el comportamiento totalmente errático.
Por eso es imperativo el hacerlo así, alimentación separada, masa juntas.
En la foto no lo aprecio bien, pero si parece esa conexión.
Si se puede utilizar la misma alimentación para los dos, suelo utilizar un cargador de móvil directo a servos y placa.
Responder
#40
(09-06-2016, 17:06)JoseBarrossoGarcia escribió: pues es para los desvios ¡¡¡ con un solo pulsor por servo ,,, este me va bien en angulo y velocidad pero cuando desconecto y conecto arduino ,,,el servo se posiciona muy lejos del ciclo ,,, y hasta que no pulso la primera vez ,,,no va hasta el ciclo ...

Hola Jose,

En la función de inicialización veo que no estableces la posición inicial del servo, entonces el comportamiento que describes es normal. Añade la siguiente linea en negrita en la función de setup:

void setup() {
myservo.attach(9); 
myservo.write(15); 
pinMode(buttonPin, INPUT); 
}

Eso debería hacer que el servo se posicionara en la posición de 15 grados al arrancar. Lo que han dicho de juntar las masas es totalmente necesario. Por eso te recomendaba el Sensor Shield v5, alimentando por ahí los servos las masas ya estan juntas automáticamente y todo el cableado te queda super limpio.
Responder


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Conectores para cuadro de mando Aquestsocjo 7 503 17-11-2024, 16:39
Último mensaje: Luigi
  Cámara para vagón en escala N Xinxilla 53 25,526 13-07-2024, 13:50
Último mensaje: tonny
  Ayuda con relés davide967 9 1,678 05-06-2024, 14:56
Último mensaje: JORGITO_YKE
  Tutorial descarga capacitiva (por condensador) para desvios Carles 91 225,542 04-02-2024, 17:03
Último mensaje: leptrain
  Tensión para este Semáforo Adolfo Ant. 7 3,461 17-10-2023, 19:06
Último mensaje: luisperezmochuelo@gmail.com
  Calculos resistencias para led leptrain 2 2,213 25-07-2022, 12:32
Último mensaje: tigrin
Música Interruptores reed para cambios de vía cvillajos 7 5,348 14-07-2022, 22:44
Último mensaje: samy
  Controlador DC con arduino. Alberto_m 22 19,346 12-07-2022, 02:35
Último mensaje: abelmartinez90@outlook.com
  Ayuda: Semáforo en rojo reduce velocidad del circuito a la mitad [Analógico] cvillajos 35 19,508 13-03-2022, 11:12
Último mensaje: MarioAndretti
  Alargo para cables desvío. FernaN 4 3,923 11-02-2022, 12:03
Último mensaje: supertren_es

Salto de foro:


Usuarios navegando en este tema: 19 invitado(s)