LEZIONE 3

Per testare il robot ho utilizzato un alimentatore temporaneo da 5 Volt, trovate il tutorial qui Alimentatore da banco
Anche se 5 Volt sono pochi per la scheda Arduino, per dei test temporanei vanno benissimo.
Ricordatevi che state alimentando direttamente la scheda della macchina e quindi dovete rispettare il suo voltaggio massimo.
Questo vuol dire che, se la macchina ha un pacco batterie da 7,2 Volt, non potete alimentarla a 12 Volt, perchè rischierete di bruciare la scheda, a differenza della scheda Arduino che supporta una tensione superiore ai 12 Volt.

Per collegare l'alimentatore e la scheda Arduino, sono sufficienti due cavi ed uno spinotto jack.
I cavi che ho utilizzato io sono rosso/bianco per il positivo e nero/bianco per il negativo.
Gli stessi andranno collegati ai contatti presenti sulla scheda della macchinetta, dove è collegata la batteria (VCC e GND), e l'altra estremità allo spinotto jack, che andrà a collegarsi alla scheda Arduino (con positivo al centro).

Molti preferiscono usare due pacchi batterie, una per la scheda ed una per i motori, personalmente ne uso sempre uno e schermo i cavi per eliminare ogni disturbo.
In questo caso la scheda di potenza (ponte ad H) è di un giocattolo e quindi la schermatura è già stata fatta dal produttore con i relativi componenti.

Ora si può passare al test, in questo caso piloteremo le uscite con un segnale ON/OFF, quindi massima velocità, minima velocità, non avremo la regolazione della potenza.
Caricate il seguente sorgente all'interno della scheda Arduino, il robot eseguirà una serie di movimenti per testare tutte le uscite, attenderà tre secondi e ripeterà il ciclo.


  //***************************************************************************
  //Programma test per il robot Poor versione 2
  //Setto le porte di uscita per le funzioni:
  //Integrato trovato sulla macchinetta SM6135W oppure RX2-C
  //Avanti    PIN 10  ---- Integrato 11
  //Indietro  PIN 9   ---- Integrato 10
  //Destra    PIN 5   ---- Integrato 6
  //Sinistra  PIN 6   ---- Integrato 7
  //
  //Realizzato da: Daniele Loddo alias Ivotek
  //Data: 22/08/2015
  //Web: www.mignololab.org     www.ivotek.it
  //Email: info@mignololab.org      ivotek@gmail.com
  //***************************************************************************

  //Dichiaro le variabili per utilizzare i nomi al posto dei numeri
  //Spreco memoria ma il codice risulta leggibile al principiante
  int Destra = 5;
  int Sinistra = 6;
  int Avanti = 10;
  int Indietro = 9;

void setup() {

  //Setto i PIN come out per pilotare i motori del robot.
  pinMode(Avanti,OUTPUT);        //Setto la porta Avanti come uscita
  pinMode(Indietro,OUTPUT);      //Setto la porta Indietro come uscita
  pinMode(Destra,OUTPUT);        //Setto la porta Destra come uscita
  pinMode(Sinistra,OUTPUT);      //Setto la porta Sinistra come uscita
  

}

void loop() {
  //Porto le porte a livello logico uno per mandare avanti il motorino
  digitalWrite(Avanti, HIGH);   // Il robot va avanti
  digitalWrite(Indietro, LOW);
  //Attendo un secondo
  delay(1000);                  
  //Porto le porte a livello logico zero per fermare il motorino
  digitalWrite(Avanti, LOW);    //Il robot si ferma
  digitalWrite(Indietro, LOW); 
  //Attendo due secondo
  delay(2000);


  //Porto le porte a livello logico uno per mandare indietro il motorino
  digitalWrite(Indietro, HIGH);  //Il robot va indietro
  digitalWrite(Avanti, LOW);
  //Attendo un secondo
  delay(1000);
  //Porto le porte a livello logico zero per fermare il motorino
  digitalWrite(Indietro, LOW);    //Il robot si ferma
  digitalWrite(Avanti, LOW);
  //Attendo 2 secondi
  delay(2000);


//Porto le porte a livello logico uno per mandare avanti il motorino dello sterzo
  digitalWrite(Destra, HIGH);   // Il robot posiziona le ruote a destra
  digitalWrite(Sinistra, LOW);
  //Attendo un secondo
  delay(1000);                  
  //Porto le porte a livello logico zero per fermare il motorino
  digitalWrite(Destra, LOW);    //Il robot posiziona le ruote dritte
  digitalWrite(Sinistra, LOW);
  //Attendo due secondo
  delay(2000);


  //Porto le porte a livello logico uno per mandare indietro il motorino dello sterzo
  digitalWrite(Sinistra, HIGH);  //Il robot posiziona le ruote a sinistra
  digitalWrite(Destra, LOW);
  //Attendo un secondo
  delay(1000);
  //Porto le porte a livello logico zero per fermare il motorino
  digitalWrite(Sinistra, LOW);    //Il robot posiziona le ruote dritte
  digitalWrite(Destra, LOW); 
  //Attendo 2 secondi




  //Attendi 3 secondi prima di ripetere il ciclo
  delay(3000);

}  

LEZIONE 4
LEZIONE 2