Pages: [1]   Go Down
Author Topic: Sto maledetto L293D..........  (Read 482 times)
0 Members and 1 Guest are viewing this topic.
Dueville (VI)
Offline Offline
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tanto per giocare un po' ho comprato una macchinina radiocomandata e ho deciso di metterci il bluetooth e dei sensori ad ultrasuoni.
Per comandare i motori uso un l293d, ma come lo uso sto integrato?
Io nello sketch (perso smiley-sad) ho fatto una cosa tipo così:
metto ad HIGH il piedino enable1,
metto ad HIGH uno dei due motor A
metto a LOW uno dei due motorA.
Per invertire il senso di rotazione inverto i piedini a HIGH e LOW, ma non funziona nulla.... sto sbagliando qualcosa?
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh riscrivi il codice che hai perso, per sicurezza controlli se funziona e in caso di esito negativo lo posti qui..
In ogni caso puoi seguire questo tutorial.

Ma ha mai funzionato lo sketch che hai scritto? L'integrato è nuovo? Perchè altrimenti non sarebbero da escludere dei problemi riguardo lo stesso L293D.
Logged

Dueville (VI)
Offline Offline
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh riscrivi il codice che hai perso, per sicurezza controlli se funziona e in caso di esito negativo lo posti qui..
In ogni caso puoi seguire questo tutorial.

Ma ha mai funzionato lo sketch che hai scritto? L'integrato è nuovo? Perchè altrimenti non sarebbero da escludere dei problemi riguardo lo stesso L293D.
L'integrato è appena uscito dal tubo smiley
questo è lo sketch birichino: non mi inverte la direzione del motore:
Code:

int motor1Pin1 = 3;    // pin 2 on L293D
int motor1Pin2 = 2;    // pin 7 on L293D
int enablePin = 11;    // pin 1 on L293D

void setup() {
  // set the switch as an input:


  // set all the other pins you're using as outputs:
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(enablePin, OUTPUT);

  // set enablePin high so that motor can turn on:
  digitalWrite(enablePin, HIGH);
}

void loop() {
    digitalWrite(motor1Pin1, LOW);   // set pin 2 on L293D low
    digitalWrite(motor1Pin2, HIGH);  // set pin 7 on L293D high
     
    delay(10000);
    digitalWrite(motor1Pin1, HIGH);  // set pin 2 on L293D high
    digitalWrite(motor1Pin2, LOW);   // set pin 7 on L293D low
 
}
[code]
[/code]
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Dueville (VI)
Offline Offline
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Credo di aver trovato il problema...... stay tuned smiley-wink

RISOLTO
Mancava un delay smiley-wink
« Last Edit: December 06, 2012, 09:29:44 am by cece99 » Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

BZ (I)
Online Online
Brattain Member
*****
Karma: 235
Posts: 20236
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Credo di aver trovato il problema...... stay tuned smiley-wink

RISOLTO
Mancava un delay smiley-wink
Non é facile aiutarTi se Ti autorispondi e autorisolvi i problemi.  smiley-wink smiley-wink smiley-wink

Fai girare il motore per 10 secondi in un verso ma per qualce µsecondo nell altro verso.
dopo
Code:
delay(10000);
    digitalWrite(motor1Pin1, HIGH);  // set pin 2 on L293D high
    digitalWrite(motor1Pin2, LOW);   // set pin 7 on L293D low
ci va un altro delay();.

Non é una cattiva idea fare una pausa tra il pilotaggio in un senso e il pilotaggio nel altro senso perché cosí la macchinetta frena e hai una corrente di spunto del motore minore. Basta mettere Enable per qualche secondo a LOW poi cambi il pilotaggio dei pin 2 e 3 e metti Enable di nuovo a H.

Se vuoi frenare piú veloce se metti i pin 2 e 3 tutti due a H oppure a L. Cosí cortocircuiti il motore e quello frena velocemente perché usato come generatore messo in corto. Con enable si ferma a causa dell'atrito meccanico.

Ciao Uwe
« Last Edit: December 07, 2012, 02:31:41 pm by uwefed » Logged

Pages: [1]   Go Up
Jump to: