PWM con Arduino per controllo velocità motore CC • Progetto 1000

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ค. 2024
  • #progetto1000 #pwm #livestreaming
    Che cos'è il PWM? A cosa serve il PWM? Come si genera un segnale PWM con Arduino Mega? Come utilizzeremo il PWM in progetto1000?
    Oggi ti spiego che cos'è un segnale PWM, costruiremo un convertitore digitale analogico con Arduino e un filtro R-C, un dimmer LED PWM e un controllo motore a PWM per controllare la velocità di un motore DC usando una uscita PWM di Arduino Mega.
    Il PWM è una tecnica che consente di generare un segnale analogico mediante una uscita digitale modulata ad alta frequenza e modificando il periodo Ton e mantenendo il periodo T constante.
    Arduino Mega non consente di personalizzare la frequenza portante del segnale PWM, che viene mantenuta fissa a 490 Hz (per alcune uscite esattamente il doppio: 980 Hz). Su altri modelli di Arduino il PWM ha una frequenza portante ancora diversa: 976 Hz, 732 Hz, 500 Hz, 1000 Hz.
    Quella di oggi è una sessione di progettazione teorica e pratica, stiamo ancora cercando le specifiche di tutti gli elementi che costituiscono Progetto 1000, il robot che risolve il cubo di Rubik con Arduino.
    La progettazione di Progetto1000 avviene in diretta su Twitch tutti i giovedì sera alle ore 22:00 e tutte le sessioni di progettazione vengono ritagliate, sintetizzate e caricate qui su canale TH-cam.
    In questa live otteniamo le specifiche tecniche del generatore di segnali PWM di Arduino Mega che ci servirà per comandare i motori a diverse velocità. Oggi affrontiamo anche il problema della soppressione dei disturbi elettromagnetici con un filtro EMI su motore DC.
    Se vuoi collaborare alla progettazione vieni tutti i giovedì alle 22:00 su:
    🎬 Canale Twitch: / fremsoft
    Progetto1000 è un progetto Open-Source, tutta la documentazione per realizzare il progetto è disponibile sul seguente link su GitHub:
    📐 github.com/fremsoft/001-proge...
    Costruisci a casa tua insieme a noi il robot che risolve il cubo di Rubik acquistando il materiale dalla seguente lista della spesa:
    🛒 www.amazon.it/hz/wishlist/ls/...
    Sostieni PROGETTO1000 acquistando i componenti necessari alla creazione del prototipo e facendoli recapitare al mio indirizzo su:
    📓 "Wish list Amazon" - amzn.to/2BDtwIV
    Crea i tuoi progetti 3D con i migliori strumenti di Autodesk EAGLE+FUSION360:
    📏 www.anrdoezrs.net/links/10016...
    ___________________________________________
    📋 Indice degli argomenti:
    0:00 Progetto1000: il robot che risolve il cubo di Rubik
    1:44 che cos'è il PWM
    2:34 che cos'è il duty cycle
    4:08 PWM a cosa serve
    4:58 frequenza PWM
    5:20 quali sono i vantaggi del PWM
    8:27 controllo motore PWM Arduino
    10:53 PWM potenza dissipata durante la commutazione
    12:00 frequenza PWM Arduino Mega
    13:40 programma Arduino PWM
    16:58 da PWM ad analogico con Arduino
    19:48 sinusoide PWM con Arduino
    21:26 ripple nel segnale analogico generato con PWM
    21:47 regolare luminosità LED Arduino con PWM
    22:45 regolatore velocità motore CC PWM
    28:09 come eliminare disturbi elettromagnetici
    29:01 riepilogo e considerazioni conclusive
    ___________________________________________
    🎞 Video montato con Adobe Premiere PRO:
    Studenti e docenti risparmiano il 65% su Creative Cloud con questo link :
    👉🏻 clk.tradedoubler.com/click?p=...
    ___________________________________________
    🔗 Links utili:
    "Wikipedia: PWM" - it.wikipedia.org/wiki/Modulaz...
    "Wikipedia: Motore DC" - it.wikipedia.org/wiki/Macchin...
    "Wikipedia: Meccatronica" - it.wikipedia.org/wiki/Meccatr...
    📘 "Arduino Reference" - www.arduino.cc/reference/it/
    🛒 "Kit Elettronico con breadboard" - amzn.to/2QTgOw7
    🛒 "Super Starter Kit UNO project" - amzn.to/2QJrnNc
    🛒 "Set 6 motori con accessori" - amzn.to/3nhQrfy
    🛒 "Pile Energizer 1,5V" - amzn.to/3j3brUW
    🛒 "Alimentatore KPS3010D 30V 10A" - amzn.to/2IsRr17
    🛒 "Oscilloscopio Hantek" - amzn.to/2IAF0jw
    Il mio vecchio sito - www.fremsoft.it
    Musiche con licenza Creative Commons - www.bensound.com/
    Repository GitHub - github.com/fremsoft/
    Profilo Linkedin personale - / emanuelefrisoni
    Profilo Linkedin aziendale - / progetti-ef
    Pagina Facebook personale - / fremsoft
    Pagina Facebook aziendale - / progetti.ef
    Profilo Instagram - / fremsoft
    Canale Cam.tv - emanuelefrisoni.cam.tv/
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 34

  • @angelovicari7174
    @angelovicari7174 ปีที่แล้ว

    Fantastico :)

  • @morenoviviani8465
    @morenoviviani8465 3 ปีที่แล้ว

    ciao!seguo con interesse i tuoi tutorial!che oscilloscopio usi?

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว

      Grazie Moreno, sono felice che il canale sia di tuo gradimento, spargi pure la voce e manda i tuoi amici progettisti a visitarlo!
      L'oscilloscopio che uso da alcuni anni è questo: amzn.to/3eQLdE8
      Benché il prezzo sia davvero basso rispetto a quello che c'è in giro, non mi sono mai trovato così bene con un oscilloscopio, ha una ergonomia pazzesca, i manettini con pulsante per l'azzeramento sono una manna e rendono velocissimo il setup delle basi dei tempi e delle tensioni.
      C'è il tasto per il trigger che posiziona il livello di scatto al 50% dell'onda che non ho visto su nessun altro oscilloscopio e che uso sempre!
      L'unico difetto che posso riscontrare è sul movimento dei cursori un po' lento, ma secondo me hanno risolto anche questo aspetto con la nuova release!
      Insomma, un affare.
      Adesso sto puntando questo: amzn.to/2PSmeIa che ha anche le sonde per l'analisi dei segnali logici.

  • @niccolorimbotti463
    @niccolorimbotti463 2 ปีที่แล้ว

    Buongiorno avrei una domanda, con che criterio dimensioniamo la residenza sulla base?

    • @fremsoft
      @fremsoft  2 ปีที่แล้ว

      A quale minuto del video ti riferisci?

  • @lucapartenio3985
    @lucapartenio3985 3 ปีที่แล้ว

    ciao Emanuele..,posso chiederti un'ultima cosa: (126 * sin (angolo / 360 * 6.28) per trasformare gradi in radianti , non mi è chiaro....

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว +1

      Certo Luca, è molto semplice, ti ricordi quando a scuola si studiavano le proporzioni?
      Immagina la seguente proporzione:
      Angolo-rad : 2*pi = Angolo-gradi : 360
      Per ottenere l'angolo in radianti si moltiplicano gli interni diviso l'estremo noto: Angolo-rad = (Angolo-gradi*2*pi)/360
      Per evitare che il compilatore introduca errori di approssimazione faccio eseguire prima le moltiplicazioni (tra parentesi) e poi divido

    • @morenoviviani8465
      @morenoviviani8465 3 ปีที่แล้ว

      @@fremsoft quindi i radianti stanno a pigreco come l'angolo sta a 360 gradi !giusto?

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว

      @@morenoviviani8465 per essere pignolo, devo correggerti, radianti sta a *due* pi greco come gradi sta a 360 oppure radianti stanno a pigreco come gradi sta a 180

  • @danielikke0691
    @danielikke0691 3 ปีที่แล้ว +1

    Ciao ti ho scoperto da questo video, ti volevo chiedere una cosa... Io dovrei regolare la velocità di un motore passo che si autoregola a secondo di un segnale analogico ( calibro digitale)
    Posso seguire questa guida con qualche modifica o che cosa devo cercare? Grazie

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว

      Ciao Daniel, i motori passo passo sono costituiti da due (o quattro) avvolgimenti che realizzano un sistema di posizionamento che per muoversi ha bisogno di una sequenza di accensione ++, +-, --, -+... questi vengono chiamati passi. Perciò la questione del PWM si usa nei motori passo passo ma per altre cose, non per regolare la velocità.
      Presto farò anche un video sui motori passo passo, iscriviti al canale per ricevere le notifiche 😉👍🏻

    • @danielikke0691
      @danielikke0691 3 ปีที่แล้ว

      @@fremsoft si i motori passo passo so come muoverli
      Però non riesco ad implementare una funzione che regoli la velocità a seconda di un diametro espresso dal calibro

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว

      Prova a contattarmi privatamente su un social, trovo complesso parlare di queste cose nei commenti

    • @ronankillian5350
      @ronankillian5350 2 ปีที่แล้ว

      I dont mean to be so offtopic but does any of you know of a way to log back into an instagram account?
      I was stupid lost my password. I love any tricks you can give me!

    • @reigngraham5287
      @reigngraham5287 2 ปีที่แล้ว

      @Ronan Killian instablaster =)

  • @thyristore
    @thyristore 2 ปีที่แล้ว

    Salve , chiedo gentilmente questa cosa in quanto vorrei risolvere una volta per tutte il dubbio ,, ma l'onda quadra pulsata non ha il valore efficace = Vp x radice di ton/T ? mi cambierebbe il mondo capirlo perché a questo punto con un duty al 50% la 5 volt diventerebbe 3.53 volt e non 2.5 volt che sarebbe il valore medio .

    • @fremsoft
      @fremsoft  2 ปีที่แล้ว +1

      Ciao Thyristor, credo che tu mi abbia preso in fallo, non volendo ho chiamato Tensione Efficace (Veff) quella che avrei dovuto chiamare Tensione Media!
      Effettivamente per tensione efficace o Vrms si intende la tensione elettrica equivalente in corrente continua che produce la stessa potenza su un ipotetico carico R.
      Dato che la potenza istantanea equivale a V*V/R e che in un segnale PWM la parte di ON eroga una potenza pari a V*V/R per un tempo ton, e che durante il periodo toff la potenza istantanea è pari a Zero, si ha un lavoro complessivo nel periodo T pari a V*V/R*ton...
      Dunque la tensione efficace diventa radice quadrata di V*V*ton/T...
      Semmai farò un video di correzione precisazione dato che non si possono modificare i video una volta pubblicati...

    • @thyristore
      @thyristore 2 ปีที่แล้ว

      @@fremsoft Ti ringrazio molto per la precisazione e per le nuove formule )))) Magari un giorno capiro' bene anche perchè ,, per ora campo ancora molto solo con le formule :D :D

  • @danielericciardo5388
    @danielericciardo5388 3 ปีที่แล้ว

    qualcuno sa dirmi se il controllo di velocità di grossa potenza potrà essere di tipo pwm?

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว +1

      Ciao Daniele, certo che si, ma chiaramente le grosse potenze hanno bisogno di circuiti di potenza adeguati e reti snubber per assorbire le grosse correnti parassite che si sviluppano durante le commutazioni.
      In genere i grossi motori, sia asincroni che brushless a magneti permanenti, hanno un comando trifase e accettano in ingresso segnali sinusoidali o trapezoidali. Le forme d'onda sono ricreate con questi circuiti elettronici chiamati "inverter" che partono da una tensione continua (per esempio frutto di una 220V raddrizzata e livellata da un grosso condensatore) che viene parzializzata mediante grossi transistor MOSFET o IGBT proprio utilizzando la tecnica del PWM ad una frequenza portante di circa 8000//20000Hz, per ricreare forme d'onda a frequenza ed ampiezza variabili a circa 50 o 100 Hz.
      Chiaramente il discorso è molto complesso e in un commento è impossibile trattare tutte le problematiche, se vuoi ti faccio un video ad hoc

    • @danielericciardo5388
      @danielericciardo5388 3 ปีที่แล้ว

      @@fremsoft Magari, un video sarebbe fantastico.

  • @raffaeleprincipi6768
    @raffaeleprincipi6768 8 หลายเดือนก่อน

    salve complimenti per l'entusiasmo, ho realizzato un pilotaggio di un motore in cc tramite potenziometro e funzione pwm, vorrei sapere se e' possibile ammorbidire la risposta del motore in relazione al valore del pot. cioe' il motore deve rallentare dolcemente anche se metto il pot a zero bruscamente una forma di soft stop. grazie

    • @fremsoft
      @fremsoft  8 หลายเดือนก่อน +1

      Ciao Raffaele, quello che chiedi è molto semplice da fare, devi implementare le rampe. Invece che portare direttamente il valore analogico del potenziometro all'uscita PWM, crei un sistema in retroazione che fa crescere e diminuire una variabile in modo da inseguire (lentamente) il valore analogico di ingresso e usare quella variabile per comandare l'uscita PWM

    • @raffaeleprincipi6768
      @raffaeleprincipi6768 8 หลายเดือนก่อน

      @@fremsoft salve, servirebbe esattamente questo, ma non ne sono capace

    • @fremsoft
      @fremsoft  8 หลายเดือนก่อน +1

      Contattami in DM su TH-cam o su Instagram

    • @raffaeleprincipi6768
      @raffaeleprincipi6768 8 หลายเดือนก่อน

      @@fremsoft DM ? Non ho capito. Grazie per la disponibilità

    • @fremsoft
      @fremsoft  8 หลายเดือนก่อน

      Contattami privatamente grazie

  • @lucapartenio3985
    @lucapartenio3985 3 ปีที่แล้ว

    ciao Emanuele, potresti spiegare meglio , rigo per rigo, la parte software in arduino , in particolare il rigo if....

    • @fremsoft
      @fremsoft  3 ปีที่แล้ว +1

      il rigo if ... significa che la porzione di codice che è tra parentesi graffe, viene eseguita solamente se la condizione (angolo > 360) ad esempio, è verificata (solo se è vera). In pratica, quando la variabile `angolo` assume un valore superiore a 360, viene eseguita la sottrazione (angolo-360) e il risultato viene assegnato nuovamente alla variabile `angolo`.
      In pratica se ad un certo punto la variabile angolo, a furia di incrementare, arriva a 361, allora la if ... si trova una condizione vera, cioè (`angolo` > 360), e dunque viene sottratto 360 dal valore di `angolo` che ritorna a 1 [361 - 1]