Arduino, motori stepper e controller Arduino, motori stepper e controller

Risultati da 1 a 7 di 7

Discussione: Arduino, motori stepper e controller

  1. #1
    B1-66ER ¥€$ L'avatar di KymyA
    Data Registrazione
    Jan 2016
    Località
    PUTIGNANO (BA)
    Messaggi
    19.602
    Gamer IDs

    Gamertag: KymyA PSN ID: KymyA Steam ID: KymyA

    Arduino, motori stepper e controller

    Ma perché chiedo a voi che non sapete un cazzo di niente? Se non forse discorsi filosofici sulla corretta temperatura dell'acqua assorbita da una spugna per pugnette o il titolo del film dove alla tipa massacrata di botte escono dei polpi vendicativi dalla figa che uccidono i violentatori

    comunque...
    ho realizzato un progetto con Arduino per la movimentazione avanti-indietro di un prodotto... display lcd, sensori ultrasonici per le distanze, fine corsa, menu con joypad ed altre bellezze ma sui motori stepper non ho sta gran esperienza.

    Se il motore va lento, immagino che per velocizzarlo si possa solo utilizzare una sorta di puleggia o vite di Archimede con passo maggiore visto che la coppia è elevata e comunque riuscirebbe a muovere il carico (non parliamo di tonnellate di carico)
    Quindi chiedo, a parte velocizzare il motore riducendo la pausa tra gli impulsi, via software c'è ben poco da fare no?
    Dovrei 1)cambiare motore o 2)inserire una sorta di "rapporto"

    Giusto?
    Ultima modifica di KymyA; 07-11-24 alle 12:08
    DISCLAIMER: Questo post non invita a commettere reati ne tantomeno ad infrangere la legge (degli uomini o Divina). Quanto scritto può essere parzialmente o totalmente falso o frutto della fantasia (malata) dell'autore. L'autore non si assume responsabilità per quanto scritto, suggerito o sottointeso da questo post.

  2. #2
    Senior Member L'avatar di -=S8=-
    Data Registrazione
    Jan 2016
    Messaggi
    2.791

    Re: Arduino, motori stepper e controller

    Formatta

  3. #3
    Senior Member L'avatar di Il Mira
    Data Registrazione
    Jan 2016
    Messaggi
    1.477

    Re: Arduino, motori stepper e controller

    chatgpt è tua amica
    Per aumentare la velocità di un motore stepper ci sono principalmente queste opzioni:

    1. Software: Come hai detto, puoi ridurre la pausa tra gli impulsi (aumentando la frequenza con cui invii i segnali di step). Tuttavia, questo ha dei limiti, perché oltre una certa frequenza il motore stepper perde coppia e può arrivare a "stallarsi" (cioè bloccarsi o perdere passi).
    2. Rapporto meccanico: L'idea di usare una puleggia o una vite con un passo maggiore è un'ottima strada per amplificare la velocità. Se il carico non è eccessivo e il motore ha coppia sufficiente, una configurazione a pulegge o un sistema di trasmissione con rapporti ti può permettere di ottenere la velocità desiderata senza cambiare motore.
    3. Motore diverso: Se il carico richiede una velocità ancora maggiore e il motore attuale non ce la fa neanche con rapporti o regolazioni di impulsi, puoi considerare di usare un motore con specifiche più adatte. I motori DC, ad esempio, sono più veloci degli stepper, ma richiedono un feedback di posizione, come un encoder.

    "-Perpetuating the lie, how do you sleep at night?" "On a bed made of money"

  4. #4
    Senior Member L'avatar di Lolliker
    Data Registrazione
    Feb 2021
    Messaggi
    3.064

    Re: Arduino, motori stepper e controller


    #include <AccelStepper.h>

    AccelStepper stepper(AccelStepper:RIVER, stepPin, dirPin);

    void setup() {
    stepper.setMaxSpeed(1000); // Massima velocità in passi al secondo
    stepper.setAcceleration(500); // Accelerazione in passi al secondo quadrato
    }

    void loop() {
    stepper.moveTo(200); // Sposta il motore di 200 passi
    stepper.run();
    }




    const int stepPin = 3;
    const int dirPin = 4;
    const int stepsPerRevolution = 200;
    const int speedHigh = 1000; // Microsecondi di pausa tra gli impulsi
    const int speedLow = 2000; // Microsecondi di pausa tra gli impulsi

    void setup() {
    pinMode(stepPin, OUTPUT);
    pinMode(dirPin, OUTPUT);
    }

    void loop() {
    digitalWrite(dirPin, HIGH); // Direzione oraria
    for (int x = 0; x < 2 * stepsPerRevolution; x++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(speedHigh);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(speedHigh);
    }
    delay(1000); // Pausa di un secondo
    digitalWrite(dirPin, LOW); // Direzione antioraria
    for (int x = 0; x < 5 * stepsPerRevolution; x++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(speedLow);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(speedLow);
    }
    delay(1000); // Pausa di un secondo
    }





  5. #5
    B1-66ER ¥€$ L'avatar di KymyA
    Data Registrazione
    Jan 2016
    Località
    PUTIGNANO (BA)
    Messaggi
    19.602
    Gamer IDs

    Gamertag: KymyA PSN ID: KymyA Steam ID: KymyA

    Re: Arduino, motori stepper e controller

    Potevo usare chatgpt se capisse cosa vuol dire "cosi" o "aggeggi"

    Il codice è quello grazie-al-cazzo ma prova ad abbassare il delay sotto una soglia e vedi che succede.
    DISCLAIMER: Questo post non invita a commettere reati ne tantomeno ad infrangere la legge (degli uomini o Divina). Quanto scritto può essere parzialmente o totalmente falso o frutto della fantasia (malata) dell'autore. L'autore non si assume responsabilità per quanto scritto, suggerito o sottointeso da questo post.

  6. #6
    Senior Member L'avatar di Lolliker
    Data Registrazione
    Feb 2021
    Messaggi
    3.064

    Re: Arduino, motori stepper e controller

    Citazione Originariamente Scritto da KymyA Visualizza Messaggio
    Potevo usare chatgpt se capisse cosa vuol dire "cosi" o "aggeggi"

    Il codice è quello grazie-al-cazzo ma prova ad abbassare il delay sotto una soglia e vedi che succede.

    Abbassare i valori di delayMicroseconds(speedHigh) e delayMicroseconds(speedLow) comporterà un aumento della velocità di rotazione del motore stepper, poiché gli impulsi verranno inviati più rapidamente.

    Effetti specifici dell'abbassamento del delay:

    Aumento della velocità del motore: Con un delay inferiore, il motore riceve impulsi a un ritmo più veloce, facendo sì che il motore giri più rapidamente.

    Possibile perdita di passi: Se il delay è troppo breve, il motore potrebbe non avere il tempo sufficiente per completare un passo prima di ricevere il prossimo impulso, causando una perdita di passi e un movimento errato.

    Aumento del calore: Un motore che funziona a velocità più elevate può generare più calore, che potrebbe portare a surriscaldamento se non adeguatamente gestito.

    Diminuzione della coppia: A velocità più elevate, la coppia del motore può diminuire, rendendo più difficile il movimento di carichi pesanti.

    Ti consiglio di abbassare gradualmente i valori del delay per trovare un equilibrio ottimale tra velocità e prestazioni del motore, evitando problemi di surriscaldamento e perdita di passi.


  7. #7
    Senior Member L'avatar di MaoMao
    Data Registrazione
    Nov 2017
    Messaggi
    7.630

    Re: Arduino, motori stepper e controller

    Perché hai usato un brushless?
    Hai esigenze particolari?
    Un semplice ed economico motore a corrente continua con inverter, non andava bene?
    Hai bisogno di posizioni intermedie o solo carico/scarico?
    Se è l'ultima, passa a corrente continua, prodotti commerciali per cui trovi riduttori meccanici come ti pare e piace, inverter con due soldi e facilmente programmabili, ecc. ecc.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Chi Siamo
Forum ufficiale della rivista
The Games Machine
Seguici su