Entrada digital como antena (ARDUINO UNO).

Hola buen día, tengo un problema con las entradas de mi arduino.

Estoy utilizando el pin 2 o 3 del Arduino UNO para leer una señal que me manda un monedero cada vez que se inserta una moneda(dependiendo de la moneda mandara un número distinto de pulsos así la de 0.25ctv un pulso, 0.50 dos pulsos, etc ).

Utilizo interrupciones para esto, ademas de una resistencia pullup para evitar erores de lectura, sin embargo la entrada del Arduino sigue siendo demasiado sensible a tal punto que actua como antena, es decir si prendo y apago una lampara cerca del arduino, el arduino lee como un pulso o varios (de 1 hasta 100 pulsos de golpe) este le interpreta como una señal del monedero.

He intentado declarar a mi entrada como INPUT_PULLUP, y la resistencia pullup a parte pero nada, el problema no es del monedero pues le desconecto dejando unicaminte el cable y sigo con el mismo problema, es como si en cable se comporta como una antena senible a señales electromagneticas.

Si desconecto el cable que tiene que ir al monedero incluso sin connectale al monedero es decir unicamente un cable algo largo de 15 cm que sale del pin 2 ya no me lee ningun pulso al prende la lampara, pero al conectar cuanquie cable de mas de 5cm al pin 2 ya hace como antena.

El para aislar todo la alimentación del arduino es a travez de una computadora y la del monedero a travez de una bateria de 12v.

Aunque el proyecto es mas complejo he reducido el codigo y el esquema para visualizar unicamente el problema que comento aqui adjunto ambos.

Agradesco a quien me pueda ayudar.

volatile int cont_monedero=0;

#define mon 2

void setup() {

pinMode(mon,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(mon),Moneda,RISING);
Serial.begin(9600);

}

void loop() {
Serial.println(cont_monedero);

/*al visualizar en el monitor serial le numero de pulsos que tengo 

 el prender una lampara o algo que este en mi
*/
}

void Moneda()
{
 cont_monedero++;

}

Hi,
Tienes los ground conectatados a un mismo punto incluyendo el ground del arduino?

Hola touro0221 resumiendo el problema, como envie en la imagen, incluso sin monedero solo con un cable tengo este comportamiento de antena . Es decir alimentando el arduino con una computadora y colocando en el pin 2 un cable, este ya capta el ruido electrico y es muy sensible puse la resistencia pullup pero no sirve de nada, el la imagen mande las conecciones que son practicamente un cable y una resistencia de 10k a 5v.

NO SE COMO FILTRAR EL RUIDO ELECTRICO EN UNA ENTRADA DIGITAL, el arduino muy sensible, con el arduino pienso controlar motores, electrovalvulas incluido el monedero pero el ruido electrico le hace inestable.

Lo de los ground no es problema porque como digo ya reduci el problema a unicamente la entrada del arduino sin
ninguna coneccion aparte y sigo con el problema(ruido electrico).

Hi,
Tienes las especificaciones y modelo del monedero.Es importante saber que senal envie el monedero. Dices que dependiendo de las monedas el envia diferentes pulsos. Que voltaje envia el monedero. Aqui lo ideal seria un osciloscopio para ver como se ve la senal que envia el monedero. El cabinete donde esta montado el monedero es de plastico o metal y si es de metal esta conectado al ground de entrada de la energia electrica. Otra cosa si el monedero envia pulsos entonces tienes que cambiar la forma de leer el pin digital pues vaz a leer pulsos y no una senal digital fija.

Te invito a que te leas las NORMAS, en tu caso el código lo has posteado bien, pero la imagen debe verse y se explica como hacerse en las normas.

Tienes que colocar un condensador en paralelo desde el cable que hace de "antena" a GND. El valor depende, prueba con varios valores 10nF, 100nF o incluso 1uF hasta que consigas reducir el efecto (o incluso hacerlo desaparecer). Un valor muy alto puede perjudicar a la señal del monedero, uno muy bajo será sensible al ruido.