servo

nada que no hay forma no me deja subir el video

Hola taper,
Al menos puedo que pudes subir fotografias. Recuerda que el tamano maximo por documento anexado es de 4 mega por lo que subir video impica que deben ser muy breves o comprimidos. Peo no te preocupes, si puedes puedes hacer referencia a videos de youtube como el que te dejo:

Saludos y garcias por tu informacion.

taper:
que os parecen estos motores se podrian controlar con arduino?

Correcto! Son motores "paso a paso" (step) Si buscas "28byj-4 arduino" en google encontrarás multitud de información al respecto.

Yo me "apañé" con esta por ejemplo: 4tronix Arduino

Un saludo!

joder palliser esa maqueta es tuya si yo soy un pequeño y e insignificante modelista .............y tu me pides consejo a mi ?

jukar dices que se podria hacer lo mismo con un pulsador ?

taper:
jukar dices que se podria hacer lo mismo con un pulsador ?

El mismo ejemplo de la web que te he pasado con alguna modificación te serviría. Pruebalo tal cual y veras como lo sacas fácil.

Un saludo

recien llegado voy a probar y os cuento a ver que pasa

de momento he conseguido bajar la velocidad y el angulo de giro haber si me aclaro con lo del boton , aver si me deja subir el video

VID_20131024_202435.mp4 (713 KB)

jukar en el codigo del sero tenia tres cables ,pero ahora cuento con cuatro y dos de corriente + y - esto me va a llever mas tiempo

//declare variables for the motor pins
int motorPin1 = 8; // Blue - 28BYJ48 pin 1
int motorPin2 = 9; // Pink - 28BYJ48 pin 2
int motorPin3 = 10; // Yellow - 28BYJ48 pin 3
int motorPin4 = 11; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)

int motorSpeed = 1200; //variable to set stepper speed
int count = 0; // count of steps made
int countsperrev = 512; // number of steps per full revolution
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

aqui tego la conexion de los cables , la velocidad de giro y los pasos que quiero que de el motor yo lo tengo que va desde 0º a 45º

este es el codigo que estoy intentando, pero se queda bloqueado , el pin 7 lo tengo conectado al botton con el 5+v que he hecho mal porque al verificar me dice que esta bien,
int BUTTON = 7;
int motorPin;
int val = 0;
int old_val = 0;
int state = 0;
int motorSpeed = 5000;
int count = 0;
int countsperrev = 50;
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

void setup()
{
for(motorPin = 8; motorPin <=11;motorPin++ )
{
pinMode(motorPin,OUTPUT);
pinMode(BUTTON, INPUT);
}
}
void loop()
{
val = digitalRead(BUTTON);
if((val ==HIGH) && (old_val == LOW)){
state = 1 -state;
}
old_val = val;
if (state == 1){
for(motorPin = 8; motorPin <=11;motorPin++ )
{
digitalWrite(motorPin,HIGH);

digitalWrite(motorPin,LOW);
}
}
}

por favor alguien podria explicarme por que cuando verifico me da error en ( state = 1 -state; ) en este codigo , que estoy haciendo mal , lo que yo quiero es q al pulsar el boton al mismo tiempo encienda un led verde y cuando vuelvas a pulsar lo apague y encienda una rojo como un semaforo, me explico ...pulsas el boton mueve el servo de 0º a 45º pero al mismo tiempo apaga el led rojo y enciende el verde dando paso a una via y prohibiendo el paso a la otra via , de momento me estoy peleando con el verde y no hay forma............gracias

#include <Servo.h>
const int LED = 4;
Servo myservo;
const int SERVO = 9;
const int BUTTON = 7;

int val = 0;
int old_val = 0;
int estate = 0;
int pos = 0;

void setup()
{
pinMode(LED, OUTPUT);
myservo.attach(SERVO);
pinMode(BUTTON,INPUT);
myservo.write(45);
}

void loop(){
val = digitalRead(BUTTON);
if((val ==HIGH) && (old_val == LOW)){
state = 1 -state;
}
old_val = val;
if (state == 1){
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
}

val = digitalRead(BUTTON);
if ((val == HIGH) && old_val)
{
if (estate)
{
estate = 0;
for(pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(20);
}
}
else
{
estate = 1;
for(pos = 45; pos>=1; pos-=1)
{
myservo.write(pos);
delay(20);
}
}
old_val = 0;
}
if (val == LOW)
{
old_val = 1;
}
}

¿Podría ser porque state no está definida? Creo que has definido la variable con el nombre estate; no veo definido state por ningún lado.
Saludos.

perdon a que te refieres definir?

Me refiero a que no está declarada. Has definido una variable int estate (con e al principio), pero luego utilizas state (sin e al principio) si se trata de la misma corrigela. Si son dos variables distintas te falta declarar state.

Porque state =0 si que esta definida al principio, tengo que poner tambien state =1 ?

si pongo int state =1, me da error

#include <Servo.h>

Servo myservo;
const int LED = 4;
const int SERVO = 9;
const int BUTTON = 7;

int val = 0;
int old_val = 0;
int estate = 0;
int estate = 1;
int pos = 0;

void setup(){
pinMode(LED, OUTPUT);
myservo.attach(SERVO);
pinMode(BUTTON,INPUT);
myservo.write(45);
}

void loop()
{
val = digitalRead(BUTTON);
if ((val == HIGH) && old_val)
{
if (estate)
{
estate = 0;
for(pos = 0; pos < 45; pos += 1)
{
myservo.write(pos);
delay(20);
}
}
else
{
estate = 1;
for(pos = 45; pos>=1; pos-=1)
{
myservo.write(pos);
delay(20);
}
}
old_val = 0;
}
if (val == LOW)
{
old_val = 1;
}
}

No. Has declarado estate=0 (con e inicial). No state=0.

ahora la he visto , si que carga lo q pasa es que a veces pulsas y cambia de posicion y enciende el verde pero aveces pulsas hace la funcion y vuelve a la posicion cero

mira el video lo q hace

VID_20131031_131856.mp4 (1.47 MB)