Pages: [1] 2   Go Down
Author Topic: Problema con sensore magnetico reed  (Read 1438 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
scusate se ho sbagliato argomento ma sn nuovo del forum (abbiate piatà)
avrei un problemuccio con arduino mega e delle ampolle magnetiche.
Le ho montete su un circuito di un trenino x automatizzarlo ma non riesco a farle funzionare.
Mi spiego meglio:
le ampolle sono 2 e devono farmi accendere e spegnere un led.
fatto il programmino funziona al quanto bene (magnete sulla prima ampolla led=on; magnete sulla seconda ampolla led=off)
quando ci faccio camminare il trenino sui binari il led impazzisce.....si accende e si spegne come gli pare!!!!

Ps...sto impazzendo anche io.

potete aiutarmi se qualcuno lo sa o almeno sa indirizzarmi???
grazie.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comunicazione di servizio:
La prox volta apri una discussione nuova e non agganciarti a quella di un altro utente: anche se stai usando lo stesso tipo di
componente, il tuo è un problema del tutto differente.


Detto questo, dovresti per favore darci lo schema dei collegamenti ed i componenti che stai usando nonché lo sketch in uso.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12573
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se dice che gli funziona bene il problema non è né di sketch e né di circuito. Semplicemente è un problema meccanico (vibrazioni provocate dal movimento del treno) oppure elettromagnetico (il campo generato dal circuito di alimentazione dell'intero plastico disturba le ampolle). Non so quanto sia grande il tuo plastico, puoi fare due prove:
1 - Fai muovere il treno manualmente con le alimentazioni spente e vedi se le ampolle continuano a funzionare.
2 - Fai circolare il treno in un punto molto lontano dalle ampolle e vedi cosa succede.

Potrebbe però trattarsi anche del classico problema del debounce (quindi avrebbe ragione Leo a voler vedere lo sketch), ma in questo caso avresti il problema "pazzia" solo nel momento in cui il magnete entra in contatto con l'ampolla.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Diciamo che visto che non sappiamo da dove viene il problema, dobbiamo iniziare ad analizzare sia la parte HW (ecco perché servono i collegamenti) sia quella SW (lo sketch).
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12573
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

va bene Capo, era solo per risparmiare un passaggio smiley-wink
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie di aver risposto alla mia domanda..... e scusate di aver sbagliato forum.
cmq ho fatto il circuito con fritzing e il programma è un semplice codice x tenere su un pulsante.
ecco tutto:

 

Code:
const int amp4 = 47;
const int amp6 = 51;
const int releb = 40;



int ampolla4 = 0;
int ampolla6 = 0;
int relebstato = 0;


 void setup()  {
  
pinMode(amp4, INPUT);
pinMode(amp6, INPUT);
pinMode(releb, OUTPUT);
 }
 
 
 void loop()  {
   ampolla4 = digitalRead(amp4);
   ampolla6 = digitalRead(amp6);



 if ((ampolla4==HIGH) && (relebstato==0))  {
     digitalWrite(releb, HIGH);
     relebstato=1;
     delay(500);
   }
  
   else if ((ampolla6==HIGH) && (relebstato==1))  {
     digitalWrite(releb, LOW);
     relebstato=0;
     delay(500);
   }

 }

Spero vi possa essere utile x capire che hanno le mie ampolle.
Ps: ho anche cambiato ampolle con delle nuove pensando che erano rotte ma il risultato è lo stesso.
     cmq a trenino senza alimentazione (cioè se lo spingo io sulle ampolle) il circuito funziona benissimo.
     il problema si verifica quando do alimentazione ai binari e le ampolle sono tra i due binari;
    non vorrei che siano soggette a campi elettromagnetici x via del motorino del treno ?!?!?! BHAA..

HELP ME.

edit by mod: per favore includi il codice usando gli appositi tag


* schema ampolle.jpg (126.44 KB, 770x543 - viewed 27 times.)
« Last Edit: February 25, 2013, 09:49:27 am by leo72 » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I treni elettrici hanno dei motori internamente, e questi hanno dei magneti.
Non vorrei che quando il treno ci passa sopra, questi facciano scattare i reed. Prova facendo un semplicissimo circuito con 1 led in serie al sensore reed e poi controlla cosa succede:

PIN 5V ------ R 330 ohm ----- LED ROSSO ------ SENSORE REED ------ GND

In questo modo se il treno interagisce coi reed lo vedi subito.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho già provato a farlo ma l' OUTPUT di arduino va HIGH anche quando il treno si trova a 1 matro e mezzo dalle due ampolle.

ho misurato anche con un tester x capire se erano segnali spuri in entrata ed effettivamente un piccle tenzine c è ma x me irrilevante ma siccome è un tester digitale non riesco a vedere bene nel tempo i cambiamenti delle ampolle mi ci vorrebbe
un oscilloscopio che non posseggo.

oggi ho anche fatto un altra prova:
invece di collegare direttamente le ampolle ad arduino le ho collegate a dei relè e poi ad arduino in modo da isolare elettricamente
le ampolle da arduino facendo arrivare ad i pin di ingrsso di arduino dei contatti puliti e una 5 volt pulita senza interferenze.
RISULTATO: FUNZIONA PERFETTAMENTE ANCHE CON TRENO ALIMENTATO.

qualcuno sa spiegarmi il perchè?????
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora è qualche disturbo elettromagnetico che viaggia sulle linee ed entra nei pin di Arduino.
Al posto dei relé potresti provare ad isolare il circuito di gestione dei reed dall'Arduino mediante dei fotoaccoppiatori.

Ottieni lo stesso isolamento al prezzo di una gestione più semplificata. Un 4N35 può andar bene, se ce l'hai in casa puoi fare la prova.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no al momento non me lo trovo ma faro' la prova al più presto....
ma non c'è qualche componete passivo da mettere magari come filtro x questi disturbi???
io ho anche provato a scendere la R di pullUp  a 5 Kohm e devo dire che in apparenza il risultato è leggermente migliorato ma
cmq non accettabile sempre restando il condensatore ai capi del motore del treno.

Volevo solo sapere se non c'è rimedio se no  uso dei relè o dei fotoaccoppiatori...
intanto grazie x dritte...... leo72 e se hai delle idee fammi sapere.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12573
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La pull-up lasciala a 10k, prova invece a mettere un C da 1nF-10nF (puoi provare fino a 100nF) tra il pin dov'è collegata l'ampolla e massa; il comportamento è dato probabilmente da molteplici microvibrazioni dell'ampolla, il relé assorbe tutto col ritardo del suo tempo di eccitazione, probabilmente col condensatore aggiuntivo risolvi, ma puoi anche implementare il debounce software.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi provare ad aggiungere un piccolo C ceramico da 0.1uF in parallelo al pin dell'Arduino collegato a massa, per filtrare le componenti ad alta frequenza.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12573
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non si può moderare il Forum tenendo un'occhio alle trasmissioni sulle elezioni smiley-mr-green
La pull-up lasciala a 10k, prova invece a mettere un C da 1nF-10nF (puoi provare fino a 100nF) tra il pin dov'è collegata l'ampolla e massa; il comportamento è dato probabilmente da molteplici microvibrazioni dell'ampolla, il relé assorbe tutto col ritardo del suo tempo di eccitazione, probabilmente col condensatore aggiuntivo risolvi, ma puoi anche implementare il debounce software.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Doppio post. Ormai l'avevo scritto, non mi andava di cancellarlo  smiley-razz
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie ragazzi dei consigli....
sto appena ora provando con dei condensatore da 10 uF in parallelo ai pin di arduino in entrata e pare che funzioni bene....

speriamo che continui così...lo provo x un po e poi vediamo.

grazie ancora.
Logged

Pages: [1] 2   Go Up
Jump to: