Novità in scala TT (1:120) - Febbraio 2025

Ben arrivato! Fai login o registrati per fruire di tutte le funzionalità del forum e del sito.
Se eri già registrato e non ti ricordi la password usa questo link per recuperare l'accesso.
Sito e forum dedicati al fermodellismo, il nostro hobby viene praticato in molte maniere diverse, tutte ugualmente valide: hai un plastico? oppure sei un collezionista? oppure un semplice appassionato? Non esitare a scrivere nel forum, tutti gli interventi sono benvenuti... Postate foto e video del vostro plastico e chiedete aiuto per ogni problema o curiosità inerente al nostro hobby.
Rinnovo/Iscrizione/Donazioni GAS TT - 2025

Motore passo passo per piattaforma girevole con Arduino UNO

Tutto ciò che è elettricità applicata al fermodellismo.

Moderatori: MrMassy86, adobel55, lorelay49, cararci

Messaggio
Autore
Avatar utente
Edgardo_Rosatti
Socio GAS TT
Messaggi: 4994
Iscritto il: venerdì 28 ottobre 2011, 0:59
Nome: Edgardo
Regione: Lombardia
Città: Muggiò
Età: 60
Stato: Non connesso

Motore passo passo per piattaforma girevole con Arduino UNO

#1 Messaggio da Edgardo_Rosatti »

Sto sperimentando questo piccolo motore passo passo demoltiplicato che solitamente è all'interno dei kit "Primi passi" di Arduino.
Il motore viene gestito da un driver incluso nella confezione e che funziona con una tensione compresa tra i 5 ed i 12 VCC.
Il nome del driver è: X113647.

https://duckduckgo.com/?t=ffab&q=x11364 ... &ia=images

Amazon: https://www.amazon.it/ELEGOO-28BYJ-48-U ... C84&sr=8-4

Lo schema di collegamento è molto semplice ed utilizza solo 6 fili; 2 per l'alimentazione a 5VCC e 4 per il controllo del motore.
I pin di Arduino UNO da utilizzare sono: GND, +5VCC per l'alimentazione del driver e D4, D5, D6 e D7 che devono essere collegati alla piccola scheda del driver stesso in corrispondenza rispettivamente di: - e + 5-12V, IN1, IN2, IN3 e IN4.
Lo schema elettrico è visibile qui sotto:
Immagine 2024-10-17 182449.png
Nello schema ho inserito 2 pulsanti normalmente aperti con resistenza di pullup per gestire la rotazione oraria e antioraria del motore.
Tali pulsanti sono collegati ai pin di Arduino UNO D2 e D3.

Inoltre nello schema è rappresentato anche un piccolo circuito per invertire la polarità dell'alimentazione sulle rotaie della piattaforma.
Questo per consentire di avere sempre la corretta alimentazione in caso di rotazione del piatto di 180°.

Il dispositivo ha diverse possibilità di sviluppo, in quanto sono disponibili ancora diverse porte di I/O di Arduino UNO.
Ad esempio è possibile inserire dei sensori in corrispondenza dei punti di arresto del piatto rotante per automatizzare il movimento dello stesso.

Il software:

Codice: Seleziona tutto

// Definizione dei pin
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
#define BUTTON_CW 2  // Pulsante per rotazione oraria
#define BUTTON_CCW 3  // Pulsante per rotazione antioraria

// Numero di passi per una rotazione completa (dipende dal motore)
#define STEPS_PER_REV 4

void setup() {
  // Imposta i pin come output
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  // Imposta i pin dei pulsanti come input
  pinMode(BUTTON_CW, INPUT_PULLUP);  // Attiva la resistenza di pull-up interna
  pinMode(BUTTON_CCW, INPUT_PULLUP);  // Attiva la resistenza di pull-up interna
}

void loop() {
  // Controlla il pulsante per rotazione oraria
  if (digitalRead(BUTTON_CW) == LOW) {  // Pulsante premuto
    rotateMotorClockwise();
  }

  // Controlla il pulsante per rotazione antioraria
  if (digitalRead(BUTTON_CCW) == LOW) {  // Pulsante premuto
    rotateMotorCounterclockwise();
  }
}

// Funzione per ruotare il motore in senso orario
void rotateMotorClockwise() {
  for (int i = 0; i < STEPS_PER_REV; i++) {
    stepMotor(i % 4);
    delay(10); // Ritardo per controllare la velocità
  }
}

// Funzione per ruotare il motore in senso antiorario
void rotateMotorCounterclockwise() {
  for (int i = STEPS_PER_REV; i > 0; i--) {
    stepMotor(i % 4);
    delay(10); // Ritardo per controllare la velocità
  }
}

// Funzione per controllare il motore passo-passo
void stepMotor(int step) {
  switch (step) {
    case 0:
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      digitalWrite(IN3, LOW);
      digitalWrite(IN4, LOW);
      break;
    case 1:
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      digitalWrite(IN3, LOW);
      digitalWrite(IN4, LOW);
      break;
    case 2:
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, LOW);
      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      break;
    case 3:
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, LOW);
      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
      break;
  }
}
Questo software non fa altro che far ruotare il motore molto lentamente in senso orario e antiorario tramite due pulsanti normalmente aperti.

Nota: ho voluto sperimentare Chat GPT 4 ed ho fatto scrivere il programma dall'AI.
Risultato, il programma ha funzionato al primo colpo; ho solo dovuto regolare alcuni parametri per ottenere un funzionamento soddisfacente.

Qui qualche foto ed un video di esempio:
IMG_20241022_013614.jpg
IMG_20241022_013834.jpg
VID_20241022_013706.mp4
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.


ED

Avatar utente
MrPatato76
Socio GAS TT
Messaggi: 5647
Iscritto il: lunedì 27 agosto 2012, 11:14
Nome: Roberto
Regione: Lombardia
Città: Nova Milanese
Stato: Non connesso

Re: Motore passo passo per piattaforma girevole con Arduino UNO

#2 Messaggio da MrPatato76 »

Mooolto interessante Ed.
Roberto - Socio GasTT - Socio CMP

Avatar utente
adobel55
Socio GAS TT
Messaggi: 11128
Iscritto il: venerdì 18 novembre 2011, 15:51
Nome: Adolfo
Regione: Lazio
Città: Roma
Ruolo: Moderatore
Stato: Non connesso

Re: Motore passo passo per piattaforma girevole con Arduino UNO

#3 Messaggio da adobel55 »

Interessante si

Avatar utente
Docdelburg
Socio GAS TT
Messaggi: 6422
Iscritto il: martedì 4 settembre 2012, 18:16
Nome: Mauro
Regione: Estero
Città: Madrid (España)
Stato: Non connesso

Re: Motore passo passo per piattaforma girevole con Arduino UNO

#4 Messaggio da Docdelburg »

È lo stesso motore che avevo usato anch'io con un Arduino Nano.

viewtopic.php?t=16882

Torna a “COLLEGAMENTI ELETTRICI”