![]() |
Arduino e throttle in Sto preparando degli impianti di illuminazione basati su Arduino (mini pro, nano, attiny85), per variare il comportamento delle luci conto di utilizzare anche i segnali provenienti dalla RX: ad esempio il CH3 del throttle per variare la luminosita' di un LED posizionato sul motore. C'e' qualche contro indicazione se piglio direttamente il segnale dal cavo del segnale CH3 che va' alla ESC e lo infilo in un PIN input di Arduino? Da qui https://www.arduino.cc/en/Tutorial/DigitalPins leggo che un PIN settato come INPUT (il default) dovrebbe avere un'impendenza di 100 megohm che quindi non dovrebbe dar fastidio all'ESC. Quando ho dei canali in piu' preferibilmente piglio un canale libero per le bazze con Arduino ma su vari aerei non ho canali liberi disponibili. Io ho provato al banco e non ho problemi, su un mio aereo e non ho problemi, ne ho messo uno in questa configurazione su un aereo di un amico (ia6 con una ESC di HK da ~20a se non ricordo male) e non si inizializza l'ESC. Voi avete qualche esperienza a riguardo? |
Citazione:
|
@aero330 : thanks, ho messo un po' di MOC3043 e PC817 nel carrello e provero' con questi. Pero' io devo passare il segnale della ricevente -> Arduino, non il contrario. Oppure un 6N137? |
1 Allegato/i Citazione:
Secondo me basta anche il classico 4n25. Però l'utilizzo di un fotoaccoppiatore mi sta convincendo sempre di meno...per il fatto che il segnale proveniente dalla RX non so se sia in grado di fornire una corrente di almeno 10mAh per il led del fotoaccoppiatore stesso.....per cui forse meglio inserire un buffer ad OpAmp (TL081) che sicuramente non assorbe corrente |
Citazione:
Il 6N137 che dovrebbe essere veloce dice 20ma (che poi magari va' anche con un po' meno...): perfetto per Arduino ma non per la RX. Il MOC3043 5ma. Poi c'e' anche il forward voltage, magari faccio una prova pero' mi abbassa il voltaggio del segnale di 1.5v! Provo a guardare anche l'OP amp, che non inserisca una latenza. Grazie anche per il disegno. Se qualcuno altro passa su questo thread riporto il quesito originale: Avete mai avuoto problemi a "sniffare" il segnale di un servo (con un cavo in parallelo) da Codice: RX ----> Servo / ESCGrazie per i suggerimenti aero330 :) |
Citazione:
Esempio: alimentazione 5v, If=10ma, Vf=1.5V => Resistenza = (alimentazione -Vf)/10mah=350ohm Però, come ti ripeto, meglio puntare su un buffer ad opamp https://i.stack.imgur.com/5lsaY.png Citazione:
Citazione:
|
Sempre usato in diretta, in parallelo sia con esc che con servi. |
Se proprio si devono/vogliono usare componenti un buon vecchio emitter follower dovrebbe funzionare. http://ecelabs.njit.edu/ece392/images/392_2_1a.gif P.S. anche nel caso di utilizzo di un opto-coupler si può mettere la resistenza sul emettitore per evitare l'inversione di polarità del segnale. :yeah: |
Citazione:
Infatti anche io ho sempre fatto cosi', il problema si e' posto con l'aereo di un amico col quale con la lettura in parallelo non si inizializza l'ESC (e lamentava degli errori di erogazione del motore). Non essendo l'aereo mio non mi e' stato possibile fare tutte le prove che avrei voluto (potete immaginare la gioia del proprietario che dopo tutto lo sbattimento a cablare LED RGB, buca qua e taglia la, si ritrovava con un aereo che non si accende...). Ora dato che il sistema vorrei usarlo su vari aerei di altri sono alla ricerca di esperienze di altri. @aero330 Se ho solo uno o due input posso usare PULSEIN(). Pero' questa e' blocking e mi puo' interferire con i fade quando sono rapidi. Userei sempre degli interrupt ma per comodita' saldo direttamente un darlinghton ULN2803 sulla Mini Pro / Nano e finisce che occupo i pin con degli output. @ElNonino Grazie dello schema. Anche io avevo pensato alla peggio di fare un piccolo circuito con un mosfet per leggere il segnale eventualmente. Pero' il gioco al momento si basa su delle strisce di LED 12v super economiche, dei pacchi di arduino mini pro 168 da 1 euro con 1 o 2 ULN2803 sopra, una libreria a oggetti non blocking per le luci e degli sketch di esempio con delle FSM per chi non e' pratico di programmazione. Poi conto di "allungare" le mini / nano con dei magnetometri e dei 6 assi che sono dello stesso formato. Se gli devo far fare tagliare dei pezzi di basette preforate per montare due transistor la gente (...) si spaventa. |
Non conosco molto Arduino ed il relativo micro però hai provato a giocare con i Pull-Up o Pull-Dwn sugli ingressi digitali che usi ? Se gli impulsi in uscita dalla Rx sono positivi prova a mettere un diodo in serie al collegamento con Arduino, anodo alla rx e catodo ad Arduino. Se hai un pull-up attivo su Arduino ed impulsi negativi dalla Rx inverti i collegamenti del diodo. :yeah: |
Citazione:
Anche il diodo e' una soluzione posto che ci sia il problema, si potrebbe saldare direttemente un smd sul darlinghton per non avere delle parti separate. |
Citazione:
Quindi o gli input della scheda Arduino non rispettano tali valori o va controllato tutto il circuito (ritorni di massa ???). :yeah: |
Citazione:
- https://cdn.sparkfun.com/assets/5/8/...4b4b000000.png - http://git.andreamanni.com/web?p=aer...ti/bugatti.ino Lunedi' lo rivedo e provo a chiedergli se ha voglia di portarsi dietro l'aereo e guardarci, la palla e' che la scheda e poco accessibile ma visto che cosi' le luci sono tristi (gli ho messo un programma che le cambia con una sequenza determinata non avendo un input) spero che abbia voglia di guardarci. Thanks per lo spunto, provo a rompere le scatole al padrone che magari colto dall'interesse nazionale della cosa si rende disponibile a farmi riesumare il caso :) |
Citazione:
Se così fosse sbagli perchè vuoi leggere un segnale digitale con un pin che è un ingresso analogico per la lettura di una tensione! Tutto funziona, ma leggi o 5V o 0V per cui dubito che sia un problema di saldatura :wink: L'istruzione "pinMode(A3,INPUT);" non ha un gran senso in quanto i pin A0,A1,......A5 sono degli ingressi ANALOGICI e non si può modificare il loro "stato"; il compilatore comunque non da errore e lo ritiene un comando corretto (ma concettualmente no) Per far le cose fate fatte bene devi utilizzare un pin I/O DIGITALE dichiarato come INPUT. Esempio (considerando di utilizzare il pin 13): thrPin = 13; pinMode(thrPin,INPUT); thrIn = pulseIn(thrPin, HIGH, 25000); |
Citazione:
- https://www.arduino.cc/en/Reference/digitalRead Sul fatto del pinMode(A3,INPUT) hai perfettamente ragione: i PIN di default sono "input" (ad alta impendenza) quindi quell'istruzione non serve. Pero' dato che non funzionava ce l'ho messa per prova, sai mai che abbiano cambiato qualcosa... Piuttosto sono i PIN analogici A6,A7 (mini / nano) che non possono essere usati in altro modo se non analogico (non sono manco attaccati al pull up). |
Citazione:
https://www.arduino.cc/en/Tutorial/AnalogInputPins Per cui a questo punto è possibile usare il pulseIn insieme ad A3....:lol: |
Ciao, vorrei condividere un dubbio su arduino e il throttle in (Rx in) degli ESC. Riapro questa discussione perchè mi sembra a tema e perchè leggendo ho visto che molti usano tranquillamente arduino e l'ESC. Ho collegato un'uscita di arduino al Rx in dell'ESC e la piloto con la libreria servo.h; in teoria so esattamente che segnale mando all'ESC (se servo.h funziona :huh:). Secondo gli standard per i ricevitori RC dovrebbe funzionare in questo modo: - segnale con lunghezza impulso da 1000 microsecondi equivale a manetta tutta indietro - segnale con lunghezza impulso da 1500 microsecondi equivale a motore fermo - segnale con lunghezza impulso da 2000 microsecondi equivale a motore a palla avanti. L'ho trovato su internet, perdonatemi se è una castroneria o generalizzazione sbagliata :rolleyes:. il mio motore a banco comincia a muoversi a 1600 ms e dopo i 1800 ms non aumenta più, uguale in retromarcia (1400 - 1200). Ho tolto la deadband, calibrato, ma niente... ..mi rimane solo da pacciocare con le percentuali di frenatura ect... Posso convivere con questo comportamento ma mi chiedevo se è normale. Qualcuno ha avuto la stessa esperienza? Efisio |
Citazione:
Ti dirò di più, fare un digitalRead() oppure analogRead() su pin analogici occupa tempi di lettura molto diversi! Parlo per esperienza personale, la lettura analogica impiega (vado a memoria) circa 10 volte tanto quella digitale! |
Citazione:
|
| Tutti gli orari sono GMT +2. Adesso sono le 13:39. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002