Nuovo progetto: Rasaerba con Arduino....
salve tutti,
sono nuovo del forum e colgo l'occasione per congratularmi con tutti voi del lavoro e passione che mettete in questo "mondo" che ho da poco scoperto e che voglio imparare...
sono alle prese con la realizzazione di un rasaerba e voglio controllarlo con arduino.
volevo partire da 0 e trascrivere passo passo tutti progressi e di poter avere un contributo "intelletivo" alla realizzazione.
mi sono documentato in maniera sufficente su cosa circola su internet e youtube ma credo che ci sia una sorta di "secretazione" di certi accorgimenti come fossero segreti di stato...![smiley-roll :smiley-roll:](https://forum.arduino.cc/smileys/arduino/smiley-roll.png)
allora con tanta passione e determinazione del tipo "chi fa da se fa per tre" mi sono procurato arduino un paio di settimane fa e ci ho giocato con potenziometri,resistenze e servocomandi ecc ecc... ora si fa sul serio!!! ]![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
partiamo dal primo problema: motore elettrico che taglia l'erba!
soluzione: un bel brushless con la sua bella esc dedicata, portalame tornito con supporto per le lame da cutter (in fase di realizzazione...)
per controllare la esc nessun problema con la libreria servo il motore gira che è uno spettacolo... il problema più grosso è armare l'esc in automatico una sola volta all'accensione o eventualmente richiamandola se ce ne fosse bisogno.
per armare l'esc ho creato un ciclo da 0 max e viceversa, con un if (condizione) seguito da break sono uscito dal e con analogwrite impostato il valore cui volevo il motore girasse. ora il problema è che sul ciclo loop questo viene ripetuto ciclicamente!
nella realtà l'esc si arma il motore gira ma poi si ferma perchè riparte il ciclo fin tanto che non arriva l'ultima riga dove si rimette girare perchè l'esc è gia armata per il delay che ho messo e poi si ferma e sempre cosi...
come posso fare ad armare l'esc una sola volta e poi far partire il motore regime?
questo e il codice che al momento avevo scritto:
un ringraziamento sentito tutti quelli che mi aiuteranno su questo progetto![wink ;)](https://forum.arduino.cc/smileys/arduino/wink.gif)
sono nuovo del forum e colgo l'occasione per congratularmi con tutti voi del lavoro e passione che mettete in questo "mondo" che ho da poco scoperto e che voglio imparare...
sono alle prese con la realizzazione di un rasaerba e voglio controllarlo con arduino.
volevo partire da 0 e trascrivere passo passo tutti progressi e di poter avere un contributo "intelletivo" alla realizzazione.
mi sono documentato in maniera sufficente su cosa circola su internet e youtube ma credo che ci sia una sorta di "secretazione" di certi accorgimenti come fossero segreti di stato...
![smiley-roll :smiley-roll:](https://forum.arduino.cc/smileys/arduino/smiley-roll.png)
allora con tanta passione e determinazione del tipo "chi fa da se fa per tre" mi sono procurato arduino un paio di settimane fa e ci ho giocato con potenziometri,resistenze e servocomandi ecc ecc... ora si fa sul serio!!! ]
![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
partiamo dal primo problema: motore elettrico che taglia l'erba!
soluzione: un bel brushless con la sua bella esc dedicata, portalame tornito con supporto per le lame da cutter (in fase di realizzazione...)
per controllare la esc nessun problema con la libreria servo il motore gira che è uno spettacolo... il problema più grosso è armare l'esc in automatico una sola volta all'accensione o eventualmente richiamandola se ce ne fosse bisogno.
per armare l'esc ho creato un ciclo da 0 max e viceversa, con un if (condizione) seguito da break sono uscito dal e con analogwrite impostato il valore cui volevo il motore girasse. ora il problema è che sul ciclo loop questo viene ripetuto ciclicamente!
nella realtà l'esc si arma il motore gira ma poi si ferma perchè riparte il ciclo fin tanto che non arriva l'ultima riga dove si rimette girare perchè l'esc è gia armata per il delay che ho messo e poi si ferma e sempre cosi...
come posso fare ad armare l'esc una sola volta e poi far partire il motore regime?
questo e il codice che al momento avevo scritto:
code: [select]
int brush = 9;
int = 0;
int = 0;
void setup() {
serial.begin(9600);
pinmode (9, output);
}
void loop() {
for( a=0;a<1;a+=1){
for( i=0;i<140;i+=1){
analogwrite (brush , i);
delay(20);
serial.println(i);
}
for( i=140;i>=1;i-=1){
analogwrite(brush , i);
delay(20);
serial.println(i);
}
if(a==1){
break;}
}
analogwrite(brush , 145);
serial.println(led);
delay(10000);
delay(10000);
delay(10000);
}
un ringraziamento sentito tutti quelli che mi aiuteranno su questo progetto
![wink ;)](https://forum.arduino.cc/smileys/arduino/wink.gif)
esattamente non ho capito che problema hai, se lo spieghi meglio ci si può lavorare su.
per adesso ho notato:
1)il ciclo più esterno è inutile con quel settaggio perchè esegue il suo codice una sola volta. se poi lo incrementi più volte ti consiglierei di mettere una variabile o una costante all'inizio.
2)le variabili contatore dei cicli è meglio dichiararle nel stesso e usare ++ visto che è più bello
.
3) per comandare il controllo del motore forse ti conviene usare un micro dedicato cui deleghi la gestione delle lame così non hai problemi di temporizzazioni. basta un bell'enable e lui fa il suo sporco lavoro.
per adesso ho notato:
1)il ciclo più esterno è inutile con quel settaggio perchè esegue il suo codice una sola volta. se poi lo incrementi più volte ti consiglierei di mettere una variabile o una costante all'inizio.
2)le variabili contatore dei cicli è meglio dichiararle nel stesso e usare ++ visto che è più bello
![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
code: [select]
for(int a=0;a<max;a++)
3) per comandare il controllo del motore forse ti conviene usare un micro dedicato cui deleghi la gestione delle lame così non hai problemi di temporizzazioni. basta un bell'enable e lui fa il suo sporco lavoro.
Arduino Forum > International > Italiano > Software (Moderator: leo72) > Nuovo progetto: Rasaerba con Arduino....
arduino
Comments
Post a Comment