Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» Trasformare un collegamento di un dislay LCD in uno con I2C
Da papat Lun Ott 16, 2017 2:31 pm

» Stray"\226" in programm
Da papat Lun Ott 16, 2017 2:19 pm

» Anteprima esclusiva Platinum Edition Farming Simulator 17:
Da Poderak Mar Ott 10, 2017 8:59 pm

» Anteprima esclusiva Pure Farming 18 - Scenario Giapponese
Da Poderak Mar Ott 10, 2017 8:57 pm

» Timer relè con arduino
Da Poderak Dom Ott 08, 2017 4:07 pm

» Recensione di Saal-Digital.it
Da Poderak Dom Ott 08, 2017 3:59 pm

» PROBLEMA SU LIBRERIE
Da papat Sab Set 30, 2017 7:16 am

» Recensione luci e bussola militare
Da Poderak Mar Set 19, 2017 10:45 pm

» Inserire data, ora RTC ds 3231
Da Poderak Gio Set 14, 2017 10:05 pm

I postatori più attivi del mese
Poderak
 
papat
 
falcio1515
 


Come controllare motori DC con L298N e Arduino

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Come controllare motori DC con L298N e Arduino

Messaggio Da Poderak il Mer Feb 15, 2017 2:14 pm


Il modulo L298N è un componente elettronico che permette di controllare in modo molto semplice due motori DC oppure un motore passo passo con #Arduino. In seguito potete trovare il circuito per poter controllare motori DC:

Lo sketch da caricare tramite l'IDE è il seguente:
Codice:
//motore a
int enA = 10;
int in1 = 9;
int in2 = 8;
//motore b
int in3 = 7;
int in4 = 6;
int enB = 5;

void setup()
{
  //imposta i motori come output
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void loop()
{
  // accende il motore a
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  // imposta la velocità a 200 (0~255)
  analogWrite(enA, 200);

  // accende il motore b
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  // imposta la velocità a 200 (0~255)
  analogWrite(enB, 200);

  delay(2000);

  // cambia la direzione dei motori
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);

  delay(2000);

  // spegne tutti i motori
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
  delay(1000);

  //riaccende i motori
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);

  // accelera da zero a 255
  for (int i = 0; i < 256; i++)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  }

  // decelera
  for (int i = 255; i >= 0; --i)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  }

  // spegne tutti i motori
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);  

  delay(1000);
}

Trovate tutti questi componenti su Amazon.it:
avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4213
Crediti Crediti : 11765
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Vedi il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum