Go Down

Topic: Strani fenomeni pilotaggio motori DC (Read 1 time) previous topic - next topic

Testato

#10
Feb 11, 2012, 12:25 pm Last Edit: Feb 11, 2012, 12:26 pm by Testato Reason: 1
purtroppo io non vedo soluzioni se non fare una misura con oscilloscopio per capire di quali entita' parliamo.
un motore mosso a mano e' una dinamo, che non produce solo "qualche disturbo", cioe' se e' da 12V produce 12V
che vanno a finire sulla linea di alimentazione,  indi misurare per fare una diagnosi
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Etan

Quote
purtroppo io non vedo soluzioni se non fare una misura con oscilloscopio per capire di quali entita' parliamo.

Giustissimo, mi riprometto di farlo.

Dico comunque che si tratta di un disturbo perchè scollegando il sensore dal pin di interrupt e mettendo in rotazione il motore dc da 24V, non accade nulla di nulla. Non appena però ricollego il sensore e forzo la rotazione, l'arduino riceve l'interrupt.

Si ha un'idea della variazione di tensione sufficiente  a far scattare l'interrupt? Così giusto per saperne parlare.

Grazie ancora

Testato

scusa ma tu dici che non stai usando il sensore per creare un interrupt, perche' poi dici che e' un interrupt la causa del problema ?
cmq i livelli di segnali che discrimina arduino sono sempre dello stesso livello, sia che tu stia usando quel segnae coe interrupt sia che lo stia usando per altre cose.
servono ameno 3V per fare intendere come Alto un segnale in ingresso ad un pin
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Etan

Quote
scusa ma tu dici che non stai usando il sensore per creare un interrupt, perche' poi dici che e' un interrupt la causa del problema ?

Magari si è creata un pò di confusione in merito.
Le cose stanno così: un sensore induttivo ha il compito di individuare un target metallico raggiunto il quale bisogna interrompere l'avanzamento di un motore.
In una prima fase, leggevo l'output di tale sensore come interrupt.
Capitava spesso che il sensore forniva l'interrupt al sistema nonostante  non ci fosse nessun corpo metallico di fronte ad esso.
Era come se la linea del sensore fosse soggetta a disturbi, alcuni dei quali potevano essere causati in maniera volontaria, come descritto in precedenza.

Per ovviare a tale inconveniente ho quindi modificato la modalità di lettura del sensore, non impiegando più l'interrupt ma utilizzando un cilco while che rileva le transizioni low to high del sensore stesso.
Il problema si è risolto quindi, ma serebbe interessante capire cosa faceva scaturire l'interrupt.

Grazie per il chiarimento sui livelli di input.

BrainBooster

forse il motore usato come "dinamo" ignetta sulla massa del circuito una tensione tale da falsare la percezione dei livelli sui pin

Go Up