MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE

Documenti analoghi
8^ parte: Pilotare Motori passo-passo bipolari usando l integrato L293D. Author: Ing. Sebastiano Giannitto (ITIS M.

8^ parte: Pilotare Motori passo-passo bipolari usando l integrato SN754410NE. Author: Ing. Sebastiano Giannitto (ITIS M.

FONDAMENTI DI ARDUINO

Far lampeggiare un led o forse un semaforo?

SENSORI OTTICI - FOTORESISTENZE

Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

8^ parte : Come pilotare i motori passo-passo unipolari. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Display numerico con i LED

SCHEDA SPERIMENTALE ARDUINO UNO

ESERCIZI CON PULSANTI

ARDUINO. workshop base

ELETTRONICA CON ARDUINO

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

8^ parte: Pilotare Motori passo-passo unipolari usando l integrato ULN2003A. Author: Ing. Sebastiano Giannitto (ITIS M.

Controllo di una soglia analogica

La Keyes 4 relay non è proprio una shield nel senso classico definito nel mondo arduino in quanto una shield dovrebbe essere concepita per essere

5^ parte : Controllare un LED RGB con 3 potenziometri. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Detta così sembra una faccenda semplice ma, nella pratica, occorre una notevole precisione e tanta tanta pazienza.

ACCENDERE E SPEGNERE UN DIODO LED

Arduino & Oltre corso di coding ed elettronica maker

PRIMI PASSI CON ARDUINO

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Lezione 3 PWM e motori. Stefano Panichi e Giulio Fieramosca

CODIFICA E RICETRASMISSIONE DI UN SEGNALE

ARDUINO UNO. Raccolta esercitazioni guidate 1 Led & Pulsati. IIS Aldini Valeriani Sirani - ROBOTS project Scheda 1 # 1 Materiale didattico

I.I.S. PRIMO LEVI CLASSE 4C PROGETTI REALIZZATI CON LA SCHEDA ARDUINO

Per vedere tutti i tutorial:

RELAZIONE CANESTRO BASKET

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

GESTIONE DELLE INTERRUZIONI (INTERRUPT)

INSEGUITORE SOLARE CON ARDUINO. Dispositivo che insegue il movimento solare realizzato con: 1. Arduino 2. 2 foto resistenze 3.

Corso di programmazione Arduino DI MALVEZZI DAVIDE

E labirinto cronaca di un fallimento

Corso Arduino Maggio Riccardo Binetti Lezione 2 - Il calore dell analogico

MST_K12_INV2 Regolatore di velocita per motori in CC con inversione automatica della rotazione

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

Nella parte sx dello schema abbiamo gli input del microcontrollore il quale ha la funzione di elaborare dei dati che acquisisce in tempo reale.

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE

Cablaggio ponte H con integrato L293B

byte Fase1 = 5; byte Fase2 = 6; byte Fase3 = 7; byte Fase4 = 8; int Ritardo = 15 ; puntatore! // sono equivalenti le sintassi:

AUTOMAZIONE CANCELLO SCORREVOLE A MICROCONTROLLORE con ARDUINO

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

COME UTILIZZARE IL SENSORE DI TEMPERATURA TMP36

Facciamo lampeggiare un led

Arduino in connessione Bluetooth

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M.

Corso Professionale di Arduino Avanzato

L'alfabeto di Arduino

REGOLATORE TRIFASE IN CORRENTE ALTERNATA MODELLO: AZSC-97

LAUREA IN INGEGNERIA MECCATRONICA

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

Circuito logico AND / AND Gate

Configurazione di Visualino 01. Collegate la scheda Arduino alla porta USB del computer

L abc di Arduino. Rocco Pelosi, Gianluca Palù, Davide Lodi Rizzini 24 febbraio 2016

SVOLGIMENTO SECONDA PROVA 2017 SISTEMI AUTOMATICI: PARTE 1

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M.

D.A.M. Bros Robotics -

A r c h i t e t t u r a d e g l i E l a b o r a t o r i - UNICA. Laura Ordile. Paper Piano

SEA Descrizione. Centralina Controllo Strip LED RGB

Due semafori ad un incrocio

Università degli Studi di Cagliari

ROBOTICA Syllabus Versione 1.0

SMD 2018 HACKATHON PRIMARIA PRIMI PASSI CON SNAP4ARDUINO

Arduino Ciclo while, do while, for

IL NUOVO ORIZZONTE: ARDUINO 1

CN03P. Manuale d uso Controller per motori Passo Passo Ver. 1.5 del 6 giugno 07 Connessione Centronics

M A N U A L E D U S O REGOLATORE DI TENSIONE RTAC ITALIANO

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

MST_K12. Regolatore di velocita per motori in CC. Realizzazione e Applicazione

CORSO L2 ARDUINO UNO

Macchinina evita ostacoli Arduino


CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico Regionale per la Sardegna

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

D.A.M. Bros Robotics -

I SENSORI DI PROSSIMITA

MACCHINE ELETTRICHE 23 giugno 2005 Elettrotecnica _ Energetica _

M12 - Motori passo-passo.

Circuiti antirimbalzo

Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo

File: Documento senza titolo 1 Pagina 1 di 12

Sviluppo di un sistema di controllo per un plotter tramite un dispositivo FPGA

Termometro digitale. Ivancich Stefano


Corso Base Arduino ed Elettronica

Chouay Mohammed Elettronica 05/12/2016

Preparazione del programma Arduino per gestire il LED RGB. Aprire Arduino IDE e creare un nuovo file.

IGB2 MANUALE DI SERVIZIO

Robot Beginner Kit 4WD

Programma di simulazione per Arduino

Relè di alimentazione SPST,10 Pezzi,DC 5V Bobina 7A 240VAC 10A 125VAC/28VDC 5 pin JQC-3F

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore MALNATE (VA) P.I REA VA

Calcolatori Elettronici T Ingegneria Informatica A2 - Gestione di una matrice di LED (8x8)

Guida alla Quarta Esercitazione

Manuale di rapida installazione

S T T E E P P P P E E R R M M A A S S T T E E R R 4 4 A

S T T E E P P P P E E R R M M A A S S T T E E R R 2 2 A

Transcript:

MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE Realizzazione di un programma, per il microcontrollore Arduino, che permette di regolare la velocità di un motore passo-passo attraverso un potenziometro Mattia Mamini, Tommaso Buzzi, Niccolò Laghi 5ªBEN ITTS G. Marconi - Forlì Febbraio 2019

INTRODUZIONE In questa esercitazione viene presentato un software per il microcontrollore Arduino che consente di regolare la velocità di rotazione di un motore passo-passo attraverso un potenziometro e di gestirne anche il senso di marcia attraverso l ausilio di due pulsanti. COMPONENTI E MATERIALI Per realizzare il circuito occorrono i seguenti componenti e materiali. Arduino Uno x 1 Resistenze 10KΩ x 2 Cavi di collegamento Breadboard (ci servirà per fare i collegamenti elettrici) x 1 Pulsante (N.A.) x 2 Motorino Passo-passo (28BYJ-48) x 1 Driver per il motore (ULN2003) x 1 Potenziometro (10KΩ) x 1 PRINCIPI TEORICI Il motore al suo interno contiene vari avvolgimenti di rame (nel nostro caso sono 4), disposti in sequenza, che hanno un capo in comune connesso a +Vcc. Collegando un avvolgimento a una massa inizia a scorrere una corrente ed essendo un elettromagnete attira verso di esso il polo opposto del rotore. Per poter compiere una rotazione completa è necessario eseguire la sequenza riportata in figura 1, generati dall accensione e spegnimento delle varie bobine in sequenza. Questa tipologia di motori è particolarmente utilizzata in ambiti che richiedono molta precisione (ad esempio le stampanti 3D), proprio per questa loro caratteristica di produrre una rotazione che è in realtà la somma di più scatti in sequenza. Ovviamente ciò implica che questa somma di scatti sia eseguita con una logica, ovvero azionando le bobine una alla volta e seguendo l ordine originario riferito alla loro posizione: naturalmente, quando si passa alla successiva, bisogna spegnere quella precedente, per consentire al rotore di eseguire lo scatto. Nasce poi un problema relativo alle potenze in gioco: a causa del principio di funzionamento del motore, gli ingressi/uscite di Arduino, verrebbero usate Pagina 1

Figura 1 come massa per chiudere il circuito, ma queste ultime non sarebbero in grado di fornire la corrente necessaria per l eccitamento degli elettromagneti. Per ovviare al problema viene usato un driver specifico per questa tipologia di motore, l ULN2003, che funziona come un transistor, dando la possibilità di controllare con una piccola corrente fornita dal microcontrollore, quella necessaria al motore per ruotare. Arduino si collega al driver (che ha una sua alimentazione) con 4 cavi e il collegamento deve essere fatto come illustrato nello schema di seguito. Pagina 2

DESCRIZIONE DEL SOFTWARE Il software è relativamente semplice e opera la rotazione del motore in un verso quando si preme un pulsante e nel verso opposto se si preme l altro. Per poter regolare la velocità di rotazione si varia il tempo che intercorre tra uno scatto e l altro del rotore, facendo quindi cambiare il tempo totale richiesto per una rotazione completa e di conseguenza il numero di giri. Per fare ciò è stato inserito un potenziometro di cui il programma leggerà costantemente il valore. Una effettuata la lettura il valore letto lo si associa alla variabile potenziometro che è stata impostata come riferimento per il ritardo (delay). Questa viene divisa per 100 per ottenere valori in un intervallo più contenuto e aumentata di 2 per evitare di avere 0 e quindi provocare l arresto del motore. Il valore 2, non è stato scelto casualmente, questo è infatti il valore minimo per il quale il motore riesce a compiere una rotazione. CODICE ARDUINO //Definisco i Pin e le variabili int pulsante_1 = 2; int pulsante_2 = 3; int regolatore = A5; int val1 ; int val2 ; int potenziometro; //Definisco i pin di controllo delle 4 bobine del motore int pinmotore1 = 8; int pinmotore2 = 9; int pinmotore3 = 10; int pinmotore4 = 11; //Definisco gli OUTPUT e INPUT di Arduino void setup() { Serial.begin(9600); pinmode(pulsante_1, INPUT); pinmode(pulsante_2, INPUT); pinmode(pinmotore1, OUTPUT); pinmode(pinmotore2, OUTPUT); pinmode(pinmotore3, OUTPUT); pinmode(pinmotore4, OUTPUT); void loop() { val1 = digitalread(pulsante_1); //Leggo il pulsante_1 collegato al Pin 2 if (val1 == HIGH) //Finchè è premuto il pulsate, il motorino avanza in senso orario { potenziometro=analogread(a0)/100+2; //Leggo il valore analogico del potenziometro e lo associo alla variabile "potenziometro" digitalwrite(pinmotore1, HIGH); digitalwrite (pinmotore2, LOW); Pagina 3

//Imposto come delay(ms) il valore letto dal potenziometro digitalwrite(pinmotore2, HIGH); digitalwrite(pinmotore3, HIGH); digitalwrite(pinmotore4, HIGH); val2 = analogread(pulsante_2); //Leggo il pulsante_2 collegato al Pin 3 if (val2 == HIGH); //Finchè è premuto il pulsate, il motorino avanza in senso antiorario { potenziometro=analogread(a0)/100+2; //Leggo il valore analogico del potenziometro e lo associo alla variabile digitalwrite(pinmotore4, HIGH); //Imposto come delay il valore letto dal potenziometro digitalwrite(pinmotore3, HIGH); digitalwrite(pinmotore2, HIGH); digitalwrite(pinmotore1, HIGH); Pagina 4