| |
| | #1 (permalink) Top | |
| Guest Data registr.: 17-07-2013
Messaggi: 3.734
| Citazione:
![]() mi spaventava un pò questa roba ma alla fine è molto interessante.. anche sbagliando si scoprono ugualmente alcune cose utili. | |
| | |
| | #2 (permalink) Top | |
| User Data registr.: 18-05-2013 Residenza: Chivasso (TO)
Messaggi: 2.352
| Citazione:
![]() l'unico vantaggio del mio è che che non ha delay lunghi nel main loop (li spezzetta in piccoli delay sempre lunghi uguali) quindi se torni al centro con l'interruttore ch3 non devi attendere un tempo random da 0 a 2 secondi del delay alla fine dei cicli for , però non l'ho nemmeno passato al compilatore, di sicuro contiene errori grammaticali (gli AND verso il fondo) e anche la lettura del ch3, vedendo come fa lo sketch dopo il mio, ma può servirti per fare un po' di palestra
__________________ v911 - mCPX - PRȎTOS - TRex 450 500 550 A959B - Q32 - DF03 - LRP TC2 - XB4 - M06 - B5(M) - T8E - X1 - T4 - XB2C - GF01 | |
| | |
| | #3 (permalink) Top |
| User Data registr.: 02-07-2004 Residenza: Ronchi dei Legionari (GO)
Messaggi: 5.709
|
Prova questo #define LPAUSA 2000 //-- pausa laterale #define CPAUSA 2000 //-- pausa centrale #define maxsx 45 //-- corsa max sx #define maxdx 135 //-- corsa max dx #define centro 90 //-- centro servo #define VelSer 60 //-- velocita servo #define PinSer 9 //-- pin servo #define PinRX 8 //-- pin legge RX #include <Servo.h> Servo myservo; int rxpulse = 1500; int n = 90; void setup() { myservo.attach(PinSer); pinMode(PinRX, INPUT); } void loop() { rxpulse = pulseIn(PinRX, HIGH); Serial.println(rxpulse); if (rxpulse > 1700) { myservo.write(centro); delay(200); } else { ruota(); } } void ruota() { //-- da centro a sx for (n = centro; n >= maxsx; n--) { myservo.write(n); delay(VelSer); } delay(LPAUSA); //-- torno al centro for (n = maxsx ; n <= centro; n++) { myservo.write(n); delay(VelSer); } delay(CPAUSA); //-- da centro a dx for (n = centro; n <= maxdx; n++) { myservo.write(n); delay(VelSer); } delay(LPAUSA); //-- torno al centro for (n = maxdx ; n >= centro; n--) { myservo.write(n); delay(VelSer); } delay(CPAUSA); }
__________________ Solo Aeromodelli - Autogiro Elicotteri Multirotori No grazie |
| | |
| | #5 (permalink) Top | |
| Guest Data registr.: 17-07-2013
Messaggi: 3.734
| Citazione:
![]() ad ogni modo si, al momento fa il ciclo completo se si sorpassa il centro.. sarebbe meglio riposizionasse al centro indipendentemente dalla posizione di loop nella quale si trova. ad ogni modo l'ho montato sul camion almeno posso tarare la corsa del servo. poi ora un amico mi ha messo in testa la possibilità di assegnare a una posizione aux il segnale di sterzo invece che fare un loop.. ovvero avere la posizione fissa avanti per guidare e come seconda posizione poter scegliere di sterzare contemporaneamente alla cam. anche questa sarebbe una soluzione interessante, per darsi una guardata attorno almeno da fermo girando ruote e cam assieme. Ultima modifica di wrighizilla : 25 aprile 20 alle ore 18:32 | |
| | |
| | #6 (permalink) Top |
| User Data registr.: 02-07-2004 Residenza: Ronchi dei Legionari (GO)
Messaggi: 5.709
|
L' interruttore quante posizioni ha? Valori delle letture? Valori delle letture servo sterzo? int rxpulse; void setup() { Serial.begin(9600); } void loop() { rxpulse = pulseIn(8, HIGH); Serial.println(rxpulse); }
__________________ Solo Aeromodelli - Autogiro Elicotteri Multirotori No grazie |
| | |
| | #7 (permalink) Top | |
| Guest Data registr.: 17-07-2013
Messaggi: 3.734
| Citazione:
valori letture aux e sterzo sono simili: 1000 1900 ho provato adesso l'ultimo sketch che hai postato ![]() molto piacevole avere anche la pausa al centro, funziona benissimo, ho allargato la corsa del servo e centrato la visuale, la velocità l'ho alzata a 30. grazie non resta che provarlo sul campo per vedere quanto risulta pratico ma direi che va una meraviglia.
| |
| | |
| | #8 (permalink) Top |
| Guest Data registr.: 17-07-2013
Messaggi: 3.734
|
il loop è fantastico, ti ringrazio ancora per l'aiuto, penso di aver imparato qualcosa da questa esperienza anche solo facendo banali confronti ![]() adesso sto cercando di costruire una controller per radiocomandi 2 canali in modo da avere 4 ruote sterzanti e poter programmare le posteriori settando la centratura, il reverse e la corsa disponibile. sono arrivato qui, lo sketch adesso permette di settare reverse e corsa del servo ma non la centratura che ovviamente dovrà essere mantenuta proporzionale. #include <Servo.h> Servo myservo; unsigned int rxpulse; unsigned int newPos; void setup() { myservo.attach(10); pinMode(8, INPUT); } void loop() { rxpulse = pulseIn(8, HIGH); newPos = map(pulseIn(8, HIGH), 1000, 2000, 5, 175); myservo.write(newPos); } questo sketch vorrei che potesse sostituire il classico cavetto a Y dando il modo di settare i parametri di sterzo necessari a gestire la coppia di ruote posteriori. vediamo se ci riuscirò, credo di avere abbastanza chiaro cosa manca ma ancora non l'ho saputo scrivere bene. Ultima modifica di wrighizilla : 27 aprile 20 alle ore 12:38 |
| | |
![]() |
| Bookmarks |
| |
Discussioni simili | ||||
| Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
| buggy da completare | BoBoPoP | Automodellismo Mot. Scoppio Off-Road | 41 | 18 maggio 16 17:56 |
| monster da completare...! | bronto_19 | Automodellismo Mot. Elettrico Off-Road | 2 | 22 giugno 10 17:35 |
| Sto costruendo uno schiumino (o tzagi), mi aiutate??? | crido96 | Aeromodellismo Principianti | 72 | 07 febbraio 10 02:26 |
| Come completare una associated B4? | ryan-j | Automodellismo Mot. Elettrico On-Road | 9 | 04 maggio 08 11:55 |