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 :() 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?
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.
sciorty:
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
questo è lo sketch birichino: non mi inverte la direzione del motore:
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]
Credo di aver trovato il problema...... stay tuned
RISOLTO
Mancava un delay
cece99:
Credo di aver trovato il problema...... stay tunedRISOLTO
Mancava un delay
Non é facile aiutarTi se Ti autorispondi e autorisolvi i problemi.
Fai girare il motore per 10 secondi in un verso ma per qualce µsecondo nell altro verso.
dopo
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