Buona sera, sto cercando di costruire una barra a led che si interfacci con un software chiamato AgOpenGps. Questo software permette di autocostruirsi un sistema di guida semiautonoma per trattori basato su arduino, c'è una folta comunità di agricoltori come me che ci lavora e risultati si vedono eccome. Poichè non ho la possibilità di montare tutto il sistema di autoguida, che prevede un motore da applicare allo sterzo del volante del trattore per farlo girare e seguire una linea, ho deciso di creare una barra a led che mi indichi quanto distante sono dalla linea retta che dovrei seguire mentre sono in campo ad eseguire le varie lavorazioni del terreno. Modificando lo sketch di arduino sono riuscito a far accendere i led e ad ottenere il risultato che mi ero prefissato, però ora ho un problema. Visto che non sono riuscito ad interfacciare arduino con le strisce a led che possono essere comandate per singolo led, si basano sui led chiamati WS2812, ho optato per la via più stupida probabilmente. Ho acquistato una ventina di led rossi e 3 verdi e collegati ai pin digitali della scheda elegoo mega 2560, ma ho notato che sebbene si accendano come dovrebbero, segnalandomi se mi sto spostando troppo a destra o a sinistra, la luminosità dei led non è sempre uguale: alcuni si accendono alla massima luminosità altri invece no. Il problema non è dei led ma sono proprio i pin digitali della scheda che non erogano tutti il giusto voltaggio
Secondo voi è la mia scheda ad essere difettosa?
vi ringrazio
Gianluca
I pin in uscita li hai dichiarati OUTPUT?
questa è la prima parte del codice che ho scritto
aspetta ho fatto la cazzata! non li ho dichiarati tutti!
il problema di fare le cose in più e più volte!
grazie!
digitalWrite(22,HIGH);
//turn-on/off leds
if
(steerAngleSetPoint < -1)
digitalWrite(37,HIGH);
else
digitalWrite(37,LOW);
if
(steerAngleSetPoint > 1)
digitalWrite(34,HIGH);
else
digitalWrite(34,LOW);
if
(steerAngleSetPoint > 5)
digitalWrite(39,HIGH);
else
digitalWrite(39,LOW);
Innanzi tutto se non ti sei presentato nell'apposita sezione fallo subito, altrimenti cancellano le risposte.
E poi devi imparare a postare il codice, ma aspettiamo che i più esperti ti dicano come fare, non per gli errori, che già li ho notati, ma per la presentazione.
La dichiarazione va fatta con pinMode....
Dopo il tuo avviso mi sono appena presentato nel forum. Ho controllato lo sketch, infatti avevo dichiarato con pinMode solo i pin che effettivamente accendevano bene i led! Sono un po' sbadato scusate.
Ho una domanda che riguarda le strisce led con chip ws2812b, quando ho provato ad inserire la library per comandarle all'interno dello sketch di arduino usato per interfacciarsi al programma AgopenGps, i led si accendevano ma in maniera incontrollata, infatti il valore che uso per decidere se accenderli o meno non era più stabile ma faceva salti enormi.
GianRav:
Dopo il tuo avviso mi sono appena presentato nel forum. Ho controllato lo sketch, infatti avevo dichiarato con pinMode solo i pin che effettivamente accendevano bene i led! Sono un po' sbadato scusate.Ho una domanda che riguarda le strisce led con chip ws2812b, quando ho provato ad inserire la library per comandarle all'interno dello sketch di arduino usato per interfacciarsi al programma AgopenGps, i led si accendevano ma in maniera incontrollata, infatti il valore che uso per decidere se accenderli o meno non era più stabile ma faceva salti enormi.
Nel frattempo che qualcuno ti aiuti con l'ultima domanda, ti consiglio d'imparare a postare il codice, come hai fatto prima non va bene.
Ora ti mostro come devi postare , vai sul simbolo </> in alto a sx
e incolli il codice al centro dei CODE e ti apparirà così
digitalWrite(22,HIGH);
//turn-on/off leds
if
(steerAngleSetPoint < -1)
digitalWrite(37,HIGH);
else
digitalWrite(37,LOW);
if
(steerAngleSetPoint > 1)
digitalWrite(34,HIGH);
else
digitalWrite(34,LOW);
if
(steerAngleSetPoint > 5)
digitalWrite(39,HIGH);
else
digitalWrite(39,LOW);
>GianRav: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post #2 (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).
In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code]
così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.
Guglielmo