Ascensor para casa de muñecas

Buenas tardes a todos, me llamo José Ramón y carezco absolutamente de formación en éste tema. El motivo de mi incorporación a éste foro, es algo egoista por mi parte, ya que no os puedo aportar nada y sin embargo intento obtener información.
Estoy haciendo una casa de muñecas de 4 plantas, y quería poner un ascensor, y después de muchas vueltas parece que la mejor alternativa es con Arduino. Compré la placa Arduino Uno, me dijeron que me ayudarían, pero no me dijeron cuando y estoy dando palos de ciego por no molestar a nadie con el GPT chat y llevo ni se cuantas correcciones y sigue sin funcionar. Sólo necesito pulsadores en el exterior, y que se pare en cada planta, ni luces, ni nada. Es para mi sobrina autista y tiene que ser sencillo. Muchas gracias por adelantado.

Moderador:
He cambiado el título a otro mas adecuado y tmb he movido el hilo a software.

Lo primero es date un tiempo para entender que quieres hacer.
No uses delay() ya se que ni sabes de que te hablo.
Ve a Youtube y busca algun buen curso de Arduino, hay cientos.
O aqui en DOcumentación lee algun libro en PDF de los publicados.
Con esa base vuelve a la carga. Antes solo te pegaras contra la pared.
Pero no creas que con 2 videos ya estas listo?, recuerdalo.

Gracias por contestar, estoy en ello, lo que ocurre es que me gustaría terminar la casta cuanto antes, tengo 71 años, y no creo que aprenda a programar, sobre todo por los conceptos que se manejan, no por las palabras en si mismas, eso no quiere decir que no lo intente, pero la niña tiene 6 Anitos y quiero terminar la casa con sus muebles lo antes posible. Repito muchas gracias por tu contestación, saludos.

Google: "ascensor con arduino" y va a encontrar muchos ejemplos de los cuales guiarse.

Saludos

Lo primero, muchas gracias por contestar. Tienes razón en internet hay mucha información y programas al respecto, pero lo cierto es que no coinciden con mis necesidades, o bien los programas tienen más o menos pisos, o incluyen luces en el camerino, o puertas que se abren automáticamente, o displays en cada piso, etc..
el problema es que yo no sé adaptarlo y necesito que sea lo más sencillo posible para que la niña pueda jugar sin problemas.

1 Like

Y en cuanto a manualidades ¿ como andas ?. ¿ Serias capaz de realizar en tu maqueta a base de palancas , poleas o yo que se, un mecanismo que convierta el giro de un motor que va de 0 a 180 grados en la subida / bajada de tus 4 pisos. ?

Jose, espero asi te llames y tal vez hasta haz nacido en 1952 cosa que cierra perfectamente con tu edad.. acá nadie es niño o chabal, varios andamos en los 6X asi que... eso de que no tengo tiempo suena a excusas, pero bueno.
En tren de querer ayudarte te diré que hay varios hilos en la lupa (arriba) derecha

image
que si pones ascensor encontrarás al menos buenas guias, no digo que todos funcionen porque no siempre los proyectos quedan completos, la mayoría si.
Intenta por esta vía.

Gracias por contestar. A la niña, que es autista, le quiero poner el manejo más sencillo, darle la botoncito y ya está. Si llego a saber todo este lío antes, lo dejo como lo habia diseñado, con escaleras, pero la influencia de mi mujer, me hizo cambiar de idea y ahora después de hacer el ascensor, tendría que deshacer toda la casa y volver a . Acabo de bajarme otro programa, a ver lo que resulta.
Saludos y nuevamente gracias por contestar.

Hola Surbyte, pues si, me llamo José y nací en 1952, más exactamente el 3 de marzo.
Aunque te parezca mentira, ahora con Jubilación incluida, tengo casi menos tiempo que cuando trabajaba, nietos, paseos obligatorios, etc. y precisamente nunca ha sido mi afición la informática, tengo que acudir a mis hijos para solucionar cualquier problemilla. Eso si, me he comido videos de Arduino un montonazo, y no termino de conocer el intríngulis de la programación, y me he dado cuenta, que para cuando aprenda, si lo llego a aprender, no sé cuantos años tendrá que esperar mi sobrina para la casa.

Una pregunta, si utilizo un programa para ascensor 5 pisos, y yo tengo 4 pisos, tendría problemas de funcionamiento? no se si me explico, parece un problema de aritmética.
La no utilización de distintos parámetros puede afectar el funcionamiento del programa. ej. 5 pulsadores programa original. 4 pulsadores los necesarios., me parece que me estoy liando.

No. Seguramente podemos ajustarlo.

Buenos días. En éstos momentos estoy con tres programas distintos, uno con 5 plantas, otro con 3, y el de 4 que sería el adecuado, es el que después de muchísimas correcciones me lo ha facilitado el GPT. El verificador del Arduino, no da error, pero en la realidad hay algo que falla, el que ??

¿ Y como lo podemos saber ?.
De momento no has subido ningún código ni sabemos los mecanismos que usas para mover el ascensor. Y así no se puede hacer nada, da mas información por favor o no llegaremos a ningún sitio.

Jose, 1 olvida ChaGPT, por favor, se que debe ser una ayuda pero es preferible que no cometas los errores que comete 1 y otra vez, yo ya lo he comprobado y lo uso para cuestiones tipo Google o sea busquedas pero para programar... me prefiero a mi y mis errores que a una tonta AI que te dice perdón y te devuelve el mismo código.

Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en (<CODE/>)

Si este es el código de 5 pisos que tienes te digo que le falta trabajo.

Tiene dos displays asociados a decodificadores BCD, por eso usa a,b,c,d para indicar que número de piso esta el ascensor.
No veo motor por eso que el autor quería justamente agregar el código de un motor a la secuencia del programa pero no participó mas del programa.
Asi que habria que definir varias cosas.
Que display y motor quieres usar.
Tienes PB, supongo que si.

// definición de los pines utilizados

const int motorPin1 = 2;
const int motorPin2 = 3;
const int in3Pin=12; // Pin para IN3 del controlador ULN2003
const int in4Pin=13; // Pin para IN4 del controlador ULN2003
const int buttonPins[] = {8,9,10,11}; //pines pulsasdores final de carrera
const int numButtons = sizeof(buttonPins)/sizeof(buttonPins[0]);
const int floor1ButtonPin=4; // Pulsador del piso 1
const int floor2ButtonPin=5; // Pulsador del piso 2
const int floor3ButtonPin=6; // Pulsador del piso 3
const int floor4ButtonPin=7; // Pulsador del piso 4

// Variables para almacenar el estado de los pulsadores
int buttonState[numButtons+4];
// Variable para almacenar la planta actual
int planta=1;

void setup() {
    // Configurar los pines del motor como salidas

  pinMode(motorPin1,OUTPUT);
  pinMode(motorPin2,OUTPUT);

  // Configurar los pines de los pulsadores como entradas con resistencia pull-up interna

for (int i=0;i<numButtons;i++){
  pinMode(buttonPins[i],INPUT_PULLUP);
}
pinMode(floor1ButtonPin,INPUT_PULLUP);
pinMode(floor2ButtonPin,INPUT_PULLUP);
pinMode(floor3ButtonPin,INPUT_PULLUP);
pinMode(floor4ButtonPin,INPUT_PULLUP);

}

void loop() {
  // Actualizar el estado de los pulsadores

  for (int i =0;i<numButtons; i++){
    buttonState[i] = digitalRead(buttonPins[i]);
}

buttonState[numButtons]= digitalRead(floor1ButtonPin);
buttonState[numButtons+1]= digitalRead(floor2ButtonPin);
buttonState[numButtons+2]= digitalRead(floor3ButtonPin);
buttonState[numButtons+3]= digitalRead(floor4ButtonPin);

// Mover el ascensor según los pulsadores presionados

for (int i=0; i<numButtons + 4; i++){
  if (buttonState[i] == LOW && (i+1)!=planta){
    moverAscensor(i+1);
    break;
  }
}
}

// Función para mover el ascensor a una planta específica

void moverAscensor(int plantaDestino){
 
  // Determinar la dirección del movimiento según la planta actual y la deseada

  int direccion = (plantaDestino>planta)?1:-1;

  // Configurar la dirección del motor

  digitalWrite(motorPin1,(direccion==1)?HIGH:LOW);
  digitalWrite(motorPin2,(direccion==1)?LOW:HIGH);
  digitalWrite(in3Pin,LOW); // Configurar IN3 como LOW
  digitalWrite(in4Pin,LOW); // Configurar IN4 como LOW

  // Mover el ascensor hasta llegar a la planta destino
  while (planta!=plantaDestino){
    // Realizar los pasos del motor
    //...

// Actualizar la planta actual

   planta+=direccion;
  }
  
// Detener el motor
digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
digitalWrite(in3Pin,LOW); // Configurar IN3 como LOW
digitalWrite(in4Pin,LOW); // Configurar IN4 como LOW
}

Espero que esté bien "pegado".
Este es el programa de 4 pisos que me ha hecho el GPT. En la verificación no me da error y sin embargo no funciona.
El otro que hago referencia, el de 5 pisos que tiene displays que a mi no me hacen falta y creo que alguna cosa más, empieza por " #include <EEPROM.h>.
Si creo que es el mismo

Se lo avisaron...

El programa para la placa Arduino Simulino, es el mismo?

Me olvido del CHAT GPT !!