Ciao a tutti!
Ho un piccolo grande problema...
Oggi ho provato a comandare la mia ESC con un segnale PWM da Arduino nano ma niente, il motore non gira...
Ho letto su vari forum e ho dedotto che l'uscita PWM dovrebbe variare l'onda rettangolare fino ad un massimo del 90% del duty cycle, quindi ho collegato l'uscita 9 del mio arduino ad un oscilloscopio e ho notato che quando muovevo il potenziometro per avere 5 V in entrata di Arduino la mia onda PWM non aumentava il suo duty cycle... Ho controllato l'uscita con la porta seriale e mi dava il massimo! ovvero 180.
Lascio il programma quì di seguito...
So di essere stato un po confusionale ma non sapevo in che altro modo spiegarmi.
Grazie mille
Alessandro
#include <Servo.h>
int potpin = A0; // Analogico sul pin A0
int val; // valore che sarà letto
Servo motor_1;
void setup()
{
motor_1.attach(9);
Serial.begin(9600);
}
void loop()
{
val = analogRead(potpin);
if (val <= 508) //divido con 508 perchè utilizzo l'analogico della playstation
{ //e quando rimane al centro da in entrata un valore di circa 506/8
val = 0;
motor_1.write(val);
}
else if (val > 508)
{
val = map(val, 508, 1023, 0, 225);
motor_1.write(val);
}
Serial.println(val);
delay(15);
}
Ho provato ad utilizzare anche l'esempio servo knob ma non cambia niente...
... anche perché i Servo lavorano in PPM e non in PWM
Ricordando una spiegazione di Astro ...
In PWM l'informazione è veicolata dal rapporto tra parte bassa e parte alta del segnale, in PPM l'informazione può essere veicolata in due modi, sia dalla durata della sola parte alta, o parte bassa, del segnale, che dalla posizione dell'impulso se è un treno d'impulsi componente un pacchetto di dati.
Ciao Uwe
Sull'entrata analogica ho i dati che variano da 0 fino a 1023 quindi tutto giusto...
Il post che mi ha linkato gpb01 lo leggerò domani perché tra poco inizio a lavorare...
Grazie mille
Un mio amico mi ha detto che forse potrei controllarla anche con un analogWrite... Che mi dite?
Ho fatto il micro programma e comunque non mi varia il valore scritto...
Mi sento scemo perchè non ne capisco il motivo
Lascio il programma qui di seguito
Grazie mille
int motor = 9;
int potpin = A0; // Analogico sul pin A0
int val; // valore che sarà letto
void setup()
{
pinMode(motor, OUTPUT);
Serial.begin(9600);
}
void loop()
{
val = analogRead(potpin);
Serial.println(val);
delay(500);
if (val <= 508) //divido con 508 perchè utilizzo l'analogico della playstation
{ //e quando rimane al centro da in entrata un valore di circa 506/8
val = 0;
analogWrite(motor, val);
}
else if (val > 508)
{
val = map(val, 508, 1023, 0, 255);
analogWrite(motor, val);
}
Serial.println(motor);
delay(15);
}
Teoricamente no... Però se metto println di val anche li mi da i valori corretti da 0 a 255 grazie mille ahahah
La domanda adesso è: si può controllare un ESC con un segnale analogWrite?
Alessandro_Redi:
Un mio amico mi ha detto che forse potrei controllarla anche con un analogWrite... Che mi dite?
Che così rischi solo di fare danni !
Se avessi letto attentamente il post indicato, avresti notato:
... avoid calling the servo pulses PWM because analogWrite is the way Arduino produces PWM and driving a servo using Arduino analogWrite can destroy servos.
Ciao Uwe
Per armare cosa intendi? Io l'ho programmata con la sua relativa program card,con qualche difficoltà...
Lascio qui di seguito il sul "libretto" delle istruzioni... Quello che mi incuriosisce e in pagina 3 sotto la voce connection to the receiver
Grazie mille
Alessandro
Ciao Alessandro
Non do risposte private perché non credo di dare le soluzioni migliori e perché é utile che le risposte siano visibili a tutti, anche quelli che cercano soluzioni a dei problemi analoghi.
Armare vuol dire che gli ESC non fanno partire il motore se non dai prima 0% di gas. Il ESP dovrebbe dare un suono di conferma e poi alimenta il motore. Comunque qualcuno che fa modellismo sa spiegarlo meglio.
Ma i LED del ESC sono accesi come descritto nel manuale?
Essendo un esc per uso automobilistico non va armato, ma la prima volta che lo usi va calibrato come indicato nelle istruzioni, inoltre alcuni esc vanno in blocco se appena accese non gli arriva il segnale come se lo stick fosse al centro in posizione neutra.
Volendo puoi usare l'Esc anche per alimentare arduino da Vin impostando la tensione del bec a 8,4V.
Certo Uwe hai ragione,
i led si accendono tutti da manuale ma non ho mai sentito emettere nessun suono...
Riguardo a quello che dice Zef domani ci provo sicuramente. Comunque se va in blocco basta spegnerla e riaccenderla per "sbloccarla"?
Grazie Mille
Alessandro
Alessandro_Redi:
Certo Uwe hai ragione,
i led si accendono tutti da manuale ma non ho mai sentito emettere nessun suono...
Riguardo a quello che dice Zef domani ci provo sicuramente. Comunque se va in blocco basta spegnerla e riaccenderla per "sbloccarla"?
Grazie Mille
Alessandro
Si, spegni e riaccendi... attendi qualche secondo quando spegni per dare il tempo al condensatore di scaricarsi.
Grazie a tutti per l'aiuto!
Oggi ho provato il tutto e sono riuscito a farlo funzionare!
Zef le tue indicazione sono state mitiche ahaha
Vorrei solo precisare che, a differenza di quanto pensavo all'inizio, il problema non era di ARDUINO...
Mitico lui funziona sempre
Alessandro