BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Arduino e throttle in (https://www.baronerosso.it/forum/circuiti-elettronici/367346-arduino-e-throttle.html)

eaman 04 febbraio 17 16:42

Citazione:

Originalmente inviato da ElNonino (Messaggio 5010706)
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:

I PIN settati come input su le arduino avr sono ad alta impendenza (100 megohm) flottanti, quindi non dovrebbero avere problemi a sniffare un canale della RX in parallelo. Si possono mettere (non tutti) in pull-up, il pull-down non c'e'.

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.

ElNonino 04 febbraio 17 19:57

Citazione:

Originalmente inviato da eaman (Messaggio 5010797)
I PIN settati come input su le arduino avr sono ad alta impendenza (100 megohm) flottanti, quindi non dovrebbero avere problemi a sniffare un canale della RX in parallelo. Si possono mettere (non tutti) in pull-up, il pull-down non c'e'.

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.

Se i pin di Arduino hanno le caratteristiche che riporti non esiste la possibilità che, collegati in parallelo con il pilotaggio del ESC, interferiscano con lo stesso; allora collegando una sonda dell'oscilloscopio con i classici 1/10Mohm sul pin Rx l'ESC dovrebbe dare lo stesso problema.

Quindi o gli input della scheda Arduino non rispettano tali valori o va controllato tutto il circuito (ritorni di massa ???).

:yeah:

eaman 05 febbraio 17 00:54

Citazione:

Originalmente inviato da ElNonino (Messaggio 5010863)
Se i pin di Arduino hanno le caratteristiche che riporti non esiste la possibilità che, collegati in parallelo con il pilotaggio del ESC, interferiscano con lo stesso; allora collegando una sonda dell'oscilloscopio con i classici 1/10Mohm sul pin Rx l'ESC dovrebbe dare lo stesso problema.

Quindi o gli input della scheda Arduino non rispettano tali valori o va controllato tutto il circuito (ritorni di massa ???).

Yep, ripensandoci (perche' l'aereo non e' mio e non ci posso guardare) il canale era attaccato al pin A3, che sta di fianco al VCC. Potrebbe essere che la saldatura sia un po' sbavata.

- 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 :)

aero330 05 febbraio 17 12:26

Citazione:

Originalmente inviato da eaman (Messaggio 5010960)
Yep, ripensandoci (perche' l'aereo non e' mio e non ci posso guardare) il canale era attaccato al pin A3, che sta di fianco al VCC. Potrebbe essere che la saldatura sia un po' sbavata.

- 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 :)

Aspetta un attimo....tu stai sniffando il segnale della Rx col pin A3 dell'arduino?
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);

eaman 05 febbraio 17 17:06

Citazione:

Originalmente inviato da aero330 (Messaggio 5011045)
Aspetta un attimo....tu stai sniffando il segnale della Rx col pin A3 dell'arduino?
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);

Non direi: io faccio un digital read su A3, che puo' essere configurato pure come OUTPUT.
- 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).

aero330 05 febbraio 17 17:53

Citazione:

Originalmente inviato da eaman (Messaggio 5011145)
Non direi: io faccio un digital read su A3, che puo' essere configurato pure come OUTPUT.
- 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).

Facendo una ricerca su internet, si possono utilizzare persino i pin di ingresso analogici come pin di uscita digitali, questa proprio non la sapevo...ero convinto che non si potesse fare e invece...
https://www.arduino.cc/en/Tutorial/AnalogInputPins
Per cui a questo punto è possibile usare il pulseIn insieme ad A3....:lol:

Efisio 24 settembre 17 21:55

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

ioteo 07 aprile 18 16:34

Citazione:

Originalmente inviato da aero330 (Messaggio 5011162)
Facendo una ricerca su internet, si possono utilizzare persino i pin di ingresso analogici come pin di uscita digitali, questa proprio non la sapevo...ero convinto che non si potesse fare e invece...

https://www.arduino.cc/en/Tutorial/AnalogInputPins

Per cui a questo punto è possibile usare il pulseIn insieme ad A3....:lol:



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!

aero330 07 aprile 18 18:07

Citazione:

Originalmente inviato da ioteo (Messaggio 5097242)
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!

Si certo, perchè c'è anche una conversione A/D da fare...


Tutti gli orari sono GMT +2. Adesso sono le 21:30.

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