ITIS “F.GIORDANI” Caserta
A.S. 2017/18
classe: 4D informatica
indirizzo di studio: Informatica e Telecomunicazione – articolazione Informatica
Materia: Informatica
Programmatore:Bonomo Alessandro
Sistema Operativo: Windows 10
Linguaggio: Arduino
Linguaggio: Arduino
Obiettivo didattico:
Programmare il sensore del driver L293D.
Obiettivo dell’esercitazione:
Programmare il motore per permettere il movimento.
Elenco attrezzature e materiali:
- Scheda arduino.
- Breadboard.
- Chip motore L293D.
- Cavo usb per collegare Arduino.
Codice Arduino(vers. 2.0):
class driverL293D { private: int pinSxAvanti; // motore di sinistra ,pin attivazione direzione avanti int pinDxAvanti; // motore di destra ,pin attivazione direzione avanti int pinSxIndietro; // motore di sinistra ,pin attivazione direzione indietro int pinDxIndietro; // motore di destra ,pin attivazione direzione indietro public: driverL293D() { //configurazione di default this->pinSxAvanti=2; this->pinDxAvanti=3; this->pinSxIndietro=4; this->pinDxIndietro=5; pinMode(pinSxAvanti , OUTPUT); pinMode(pinDxAvanti , OUTPUT); pinMode(pinSxIndietro , OUTPUT); pinMode(pinDxIndietro , OUTPUT); } driverL293D(int pinSxAvanti,int pinDxAvanti,int pinSxIndietro,int pinDxIndietro) { //configurazione con pin come parametri this->pinSxAvanti=pinSxAvanti; this->pinDxAvanti=pinDxAvanti; this->pinSxIndietro=pinSxIndietro; this->pinDxIndietro=pinDxIndietro; pinMode(pinSxAvanti , OUTPUT); pinMode(pinDxAvanti , OUTPUT); pinMode(pinSxIndietro , OUTPUT); pinMode(pinDxIndietro , OUTPUT); } void avantiDi(int millisec) { digitalWrite(pinSxAvanti , 1); digitalWrite(pinDxAvanti , 0); digitalWrite(pinSxIndietro , 1); digitalWrite(pinDxIndietro , 0); int tempo=0; while(millisec-tempo>0) { delay(1); tempo++; } fermo(); } void indietroDi(int millisec) { digitalWrite(pinSxAvanti , 0); digitalWrite(pinDxAvanti , 1); digitalWrite(pinSxIndietro , 0); digitalWrite(pinDxIndietro , 1); int tempo=0; while(millisec-tempo>0) { delay(1); tempo++; } fermo(); } private: void fermo() { digitalWrite(pinSxAvanti , 0); digitalWrite(pinDxAvanti , 0); digitalWrite(pinSxIndietro , 0); digitalWrite(pinDxIndietro , 0); } }; // dichiarazione pin const int pinSxAvanti=2; const int pinDxAvanti=3; const int pinSxIndietro=4; const int pinDxIndietro=5; // oggetti delle classi driverL293D driverMotoriObj(pinSxAvanti, pinDxAvanti, pinSxIndietro, pinDxIndietro); void setup() { // vai avanti per 5 secondi (5000 ms) driverMotoriObj.avantiDi(5000); // vai indietro per 5 secondi (5000 ms) driverMotoriObj.indietroDi(5000); } void loop() { }
Descrizione top-down dei passi realizzativi:
- Realizzare il circuito
- Scrivere il codice arduino
- Collegare la scheda arduino al pc tramite il cavo usb
- Caricare il programma cliccando sul pulsante “carica” dell‘ambiente software arduino
Test finale:
Osservare il funzionamento del motore.
Commenti recenti