Pilotare Relè e Motori CC

Slides:



Advertisements
Presentazioni simili
Semplice regolazione digitale di velocità di un motore in c. c
Advertisements

INSEGUITORE SOLARE CON ARDUINO
Per questo organizza un corso di Arduino per tutti i soci Amon e GMS.
Linguaggio Arduino: Struttura di un programma
Arduino: introduzione alla programmazione
SENSORI OTTICI - FOTORESISTENZE
Motore passo-passo Motore brusheless.
ISTITUTO TECNICO – SETTORE TECNOLOGICO
Reti Mobili Ad Hoc e di Sensori Andrea De Salve. COS'È ARDUINO ? Piattaforma Open-Source per il Physical Computing basata su Microcontrollore Arduino.
Sensori analogici e digitali per la misura di
13 gennaio Sistema di rilevazione delle temperature all’interno di Personal Computer Industriali Dipartimento di Ingegneria Elettronica SISTEMA.
IL SOFTWARE (FPwin 6.0).
TABLET RASPBERRY PI Tesina di maturità Scagnetti Alessandro – Francalancia Simone Anno scolastico 2015/2016 ITT ‘‘E. Divini’’ San Severino Marche.
Arduino uno Introduzione.
Un sistema di controllo è un apparato che consente di variare o mantenere costante la grandezza d'uscita, in relazione ad una evoluzione temporale, SU.
UNIVERSITÀ DEGLI STUDI DI ROMA
© 2007 SEI-Società Editrice Internazionale, Apogeo
Centrali idroelettriche a salto
Progetto Parcheggio intelligente
IL MAGNETISMO.
Funzionamento diretto sulla rete trifase
Comparatore e FlashADC con l’Op.Amp. “TDC” con l’FPGA LM35
GPIO: General Purpose Input Output I parte
Motore PP.
Microcontrollori e microprocessori
INGRESSI E USCITE.
P. L. C. (Programmable Logic Controller)
VELOCITA’ E ACCELERAZIONE ANGOLARE
I FILES AD ACCESSO SEQUENZIALE
Dispositivi unipolari
FORMULE E FUNZIONI SU EXCEL
INSEGUITORE SOLARE CON ARDUINO
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Alimentazione esterna
Realizzazione del progetto di un ascensore
01 - INTRODUZIONE ALLA DOMOTICA
Alimentazione esterna
istalliamo l’ambiente di sviluppo - ide
La scheda Arduino.
Realizzazione di un robot d’assistenza alla gente
mBlock Un modo semplice e innovativo per programmare Arduino
santa lucia - palestrina - 10/4/2016
Caratteristiche e funzioni della scheda Arduino
A/D seconda parte.
Lego Mindstorms Esempi di programmazione
Programmare.
GLOSSARIO FOTOVOLTAICO
Gli automi.
santa lucia - palestrina - 13/3/2016
Interrupt Arduino.
Macchina in corrente continua. Principio di funzionamento.
Lezione Seconda Primi passi di programmazione
Processi decisionali e funzioni di controllo
Unità 5 Segnali analogici.
Unità 9 Relè.
Prof.ri Ponte Vincenzo Ovazza Sergio
Unità 1 Programmi base.
Motori Passo-Passo (step)
Lezione Terza Primi passi di programmazione
CONTROLLO DI UN SERVOMOTORE A ROTAZIONE CONTINUA
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
TCS230 Sensore di colore.
Cariche in movimento legge di Ohm Circuiti in DC
Nuova gamma comandi a parete
A CURA DEL PROF. HAJJ ALI’
Nuovo quadro di controllo e comando per Maestro ed Ocean
Il nuovo sistema di controllo per aerotermi con motore elettronico
Ing. Cisci Alternatore. Ing. Cisci Macchina elettrica Alternatore Energia meccanica Energia elettrica L’alternatore è una macchina elettrica.
Nuova Serie Lame d’aria
Icardi Lidia Maddaleno Corrado
Transcript della presentazione:

Pilotare Relè e Motori CC Prof.ri Ponte Vincenzo Ovazza Sergio MAKER-INO Lezione 7°

RELE’ In sostanza, il relè è un deviatore che non viene azionato a mano, ma da un elettromagnete. Serve a collegare un circuito a bassa potenza (ingresso:bobina) ad un circuito di potenza (uscita:contatti NA o NC).

RELE’:contatti e pilotaggio con transistor .

Transistor ON-OFF Si comporta come un interruttore aperto o chiuso comandato dalla corrente e dalla tensione sulla sua base; Agendo sulla corrente si fa passare più o meno segnale (Amplifica). Agendo sulla tensione si comporta come un interruttore.

Transistor ON-OFF

MOTORI ELETTRICI vengono definiti MOTORI ELETTRICI le macchine che convertono energia elettrica in energia meccanica. Le macchine elettriche hanno la particolarità di essere reversibili, cioè una stessa macchina può funzionare sia da motore che da generatore. generatori in corrente continua vengono detti DINAMO, quelli in corrente alternata ALTERNATORI

Il Motore In Corrente Continua

Il Motore in Corrente Continua Alimentato in CC ha un verso di rotazione, invertendolo si inverte la rotazione. Alla sua alimentazione ha una velocità di rotazione fissa che varia con il voltaggio. La velocità Arduino la gestisce con PWM.

Motori CC Arduino

Variare la velocità motore con potenziometro int PinMotore = 5; //PIN PWM int PotPin = A0; //pin potenziometro int lettura = 0; //variabile per la lettura int velocita = 0; //variabile per la velocità

Variare velocità del motore con potenziometro void setup() { pinMode(PinMotore, OUTPUT); } void loop() lettura = analogRead(PotPin); //Leggo il valore del potenziometro velocita = map(lettura, 0, 1023, 0, 255); //mappo i valori da 1024 a 255 analogWrite(PinMotore, velocita); //faccio girare il motore in base alla lettura

Come variare il verso motore Utilizzando due uscite PWM collegate al motore,il listato quindi diventa: int PinMotoreA = 5; //PIN PWM ad un terminale del motorino int PinMotoreB = 6; //PIN PWM all’altro terminale del motorino int PotPin = A0; //pin potenziometro int lettura = 0; //variabile per la lettura int velocita = 0; //variabile per la velocità void avanti() { analogWrite(PinMotoreA, velocita); //faccio girare il motore in base alla lettura digitalWrite(PinMotoreB, LOW); } void indietro() analogWrite(PinMotoreB, velocita); //faccio girare il motore in base alla lettura digitalWrite(PinMotoreA, LOW);

Come variare il verso motore void loop() { lettura = analogRead(PotPin); //Leggo il valore del potenziometro velocita = map(lettura, 0, 1023, 0, 255); //mappo i valori da 1024 a 255 avanti(); delay(2000); indietro(); }

il ponte H (Full Bridge) Il ponte H è un componente fondamentale per il controllo dei motori DC. Questo componente ci permette di controllare la velocità e il senso di rotazione del motore, a differenza di un semplice interruttore che ci permetterebbe solamente di lavorare in modalità ON/OFF.

il ponte H con interruttori

il ponte H con transistors

modulo L298 per la gestione di due motori Specifiche Driver: L298N (Dual H-bridge) Tensione logica: 5V Corrente logica: 0mA~36mA Tensione operativa: 5V~35V Corrente operativa (picco per canale): 2A Potenza (Max): 25W

Schema di montaggio

Scheda per piccoli motori DC

Programmiamo Arduino per gestire due motori DC int ENA=11; //connesso alla porta 11 (output pwm) int IN1=10; //connesso alla porta 10 int IN2=9; // connesso alla porta 9 int IN3=8; // connesso alla porta 8 int IN4=7; // connesso alla porta 7 int ENB=6; // connesso alla porta 6(output pwm) Int vel=0;//velocità motori min 120 max 255 int gap = 20; // valore utilizzato nell'istruzione AnalogWrite //per compensare il gap prestazionale del motore meno //efficiente int tempo = 0; // tempo di attivita' dei motori: con velocita' 120 e gap 20 due rotazioni complete necessitano di un tempo pari a 1985 mSec

routine di attivazione dei due motori void attiva () { analogWrite(ENA, vel); // Attiva il motore A analogWrite(ENB, vel + gap); //Attiva il motore B delay (tempo); // tempo di attivazione dei motori analogWrite(ENA,0); // blocca il motore A analogWrite(ENB,0); // blocca il motore B }

Procedura AccelleraRetro Void AccR() digitalWrite(IN1,0); digitalWrite(IN2,1); digitalWrite(IN3,0); digitalWrite(IN4,1); For (int i=0;i<vel;i++) { analogWrite(ENA,i); analogWrite(ENB,i); Delay(20); }

Procedura Accellerazione Void Acc() digitalWrite(IN1,1); digitalWrite(IN2,0); digitalWrite(IN3,1); digitalWrite(IN4,0); For (int i=0;i<vel;i++) { analogWrite(ENA,i); analogWrite(ENB,i); Delay(20); }

Procedere in modo autonomo Codificare le seguenti procedure: Decellera Fermo (IN1.....LOW ) Gira a destra(IN3 e IN4 LOW) Gira a sinistra (IN1 e IN2 LOW) Avanti (ENA e ENB = vel) Retro Aggiungere qualche LED nelle procedure

Setup: INPUT e OUTPUT void setup() { pinMode(ENA,OUTPUT); pinMode(ENB,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); analogWrite(ENA,0); //vel=0 motore fermo analogWrite(ENB,0); }

ServoMotore Il servomotore è un dispositivo capace di eseguire dei movimenti meccanici in funzione del segnale applicato al suo ingresso. Sostanzialmente un servo è composto da un motore elettrico, un motoriduttore ed un circuito di feedback per la gestione della posizione.

Servomotore 9G I comuni servomotori hanno un angolo di rotazione di circa 180°. Qualunque sia il servo scelto, ci troveremo davanti sempre 3 contatti di cui due servono per l’alimentazione (Red 5V,Brown GND) mentre il terzo (Orange)è il pin di controllo che nel nostro caso andrà collegato in un pin di arduino.

Servomotore - 9g (sg90) . Il Servo è un motore in grado di effettuare rotazioni di massimo 270° ed è molto utilizzato nella robotica e nella modellistica. Per usarlo è necessaria una libreria ( <Servo.h> ) che troverete già installata sul software IDE di Arduino

servomotore - 9g (sg90) Per pilotare dei servo è necessario utilizzare un duty-cycle per impartire comandi a questi oggetti. Il modo più semplice per pilotare i servomotori è utilizzare una libreria, che traduca angoli in segnali ed eviti di dover impazzire con i duty-cycle e i calcoli dei tempi; la libreria in questione è la Servo.h

servomotore - 9g (sg90) Questa libreria mette a disposizione alcuni metodi che semplificano di molto l’obiettivo: attach(): permette di specificare su quale pin è connesso il nostro servo e legarlo all’oggetto Servo; attached(): controlla che un oggetto di tipo Servo sia collegata ad un pin; detach(): rimuove il collegamento tra l’oggetto Servo e il pin a cui era legata; read(): legge la posizione angolare del nostro servo, restituisce l’ultimo valore passato con write(); write(): impartisce al servo l’angolo a cui posizionarsi, su servo a rotazione continua imposta la velocità di rotazione 0=velocità massima in un senso, 90=fermo, 180=velocià massima nella direzione inversa; writeMicroseconds(): imposta la velocità di rotazione del servo, in un servo standard il valore va da 1000 a 2000, in un servo a rotazione continua si comporta allo stesso modo della write().

servomotore - 9g (sg90) Il servomotore microservo 9g (sg90) puo’ far ruotare il perno centrale di 180 gradi partendo dalla sua posizione zero. Viste le dimensioni e’ dotato di un discreto momento torcente (1.2 kg/cm) e viene venduto insieme ad alcuni bracci forati mediante i quali e’ possibile azionare il dispositivo che si intende pilotare. Arduino gestisce il servomotore tramite una specifica libreria mediante la quale si possono impartire ordini di spostamento fornendo il numero dei gradi che si intende raggiungere mantenendo sempre come riferimento la posizione 0.

servomotore - 9g (sg90) Non e’ quindi importante conoscere la posizione del perno per impartire un ordine, ma solo sapere (in termini di gradi angolari) la posizione finale che deve essere assunta dal perno stesso In questo esercizio arduino pilotera’ il servomotore facendogli fare due rotazioni di 180 gradi nelle due direzioni e poi posizionera’ per un secondo il perno sui gradi: 45, 90,135 e 180.

servomotore - 9g (sg90) Programma #include <Servo.h> // richiama la libreria di gestione dei servomotori Servo pippo; // crea il servo oggetto “pippo” da utilizzare nel programma. // in un programma possono essere creati, al massimo otto servo oggetti int pos = 0; // variabile per la memorizzazione della posizione (in gradi angolari) del perno void setup() { pippo.attach(9); // assegna il servo oggetto “pippo” al pin 9 }

servomotore - 9g (sg90) void loop() { pippo.write(0); // indirizza il perno alla posizione 0 delay (1000); // attende 1 secondo for(pos = 0; pos <= 180; pos += 1) // sposta di un grado per volta, da //0 a 180 l’angolazione desiderata pippo.write(pos); // indirizza il perno alla posizione desiderata, memorizzata in 'pos' delay(15); // attende 15ms per consentire al servomotore di raggiungere la posizione }

servomotore - 9g (sg90) for(pos = 180; pos>=1; pos-=1) // diminuisce di un grado per volta, //da 180 a 0, la posizione desiderata { pippo.write(pos); // indirizza il perno alla posizione desiderata, memorizzata in 'pos' delay(15); // attende 15ms per consentire al servomotore di //raggiungere la posizione } delay (1000); pippo.write(0); // indirizza il perno alla posizione 0 delay(1000); // attende 1 secondo prima di iniziare la nuova sequenza

servomotore - 9g (sg90) for (pos =0; pos <= 180; pos = pos + 45) // seleziona le posizioni 45, 90, 135 e 180 { pippo.write(pos); // indirizza il perno alla posizione desiderata, memorizzata in 'pos' delay(1000); // attende 1 secondo prima di andare alla successiva posizione } delay (3000); // attende 3 secondi prima di ricominciare il ciclo

Esercitazioni Completare la gestione dei motori in CC Utilizzando i sensori di presenza visti nelle precedenti lezioni, abbinarli al servo o ai motori per realizzare un prototipo di auto robot. Buon lavoro! Prof. Ponte Vincenzo & Ovazza Sergio