Anular voltage de salida en arduino

Hola, estoy desarrollando y programando un módulo de puertas abiertas de carro, que emite un sonido cuando estas están abiertas, pero estoy teniendo un problema, su funcionamiento es el siguiente:

Se abre la puerta, y por el pin 7 entra una señal negativa que activa el DFplayer mini, para que este emita el sonido.

Problema: Cuando las puertas se cierran, sale voltaje por el PIN 7, y hace que unas luces led que poseen las puertas, se enciendan.

Mido el voltaje y salen aprox 6v, que encienden esos leds con las puertas cerradas.

Como puedo anular que no salga voltaje negativo por el PIN 7, que solo reciba la señal negativa de entrada?

Codigo:


#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"



SoftwareSerial mySoftwareSerial(10, 11); // RX, TX


DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

# define ACTIVATED LOW


int btn_door = 7;



void setup()
{

  pinMode(btn_door, INPUT);
  digitalWrite(btn_door,HIGH);


  Serial.begin(9600);

  
  mySoftwareSerial.begin(9600);  


  
  Serial.println();
  Serial.println(F("Proyecto"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

  
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }
  Serial.println(F("DFPlayer Mini online."));
  
  myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
  
  //----Set volume----
  myDFPlayer.volume(30);  //Set volume value (0~30).
  myDFPlayer.volumeUp(); //Volume Up
  myDFPlayer.volumeDown(); //Volume Down
  



}

void loop(){

  if (digitalRead(btn_door) == ACTIVATED) {
    myDFPlayer.play(1);
    delay(2000);
    }

}

Locura total lo que has hecho.
Alimentas el Arduino con una DC-DC de 12 a 5V a traves de 5V y GND.
Esta mal, no pero ten cuidado. No conectes el cable USB mientras lo tengas conectado de esa forma.
Ahora lo grave es que el LED esta a +12V y el pin 7 cierra el circuito luego de la R de 5X0 ohms.
Nada debe conectarse por encima de 5V a un pin del arduino.

Soy nuevo en esto, como puedo hacerlo entonces?

Cambia

pinMode(btn_door, INPUT);
digitalWrite(btn_door,HIGH);

por

pinMode(btn_door, INPUT_PULLUP); 

Lo normal es que, para detectar la apertura de puertas, haya interruptores que cierran a masa cuando se abre una puerta, entonces debes habilitar la resistencia pull-up de la entrada (o en su defecto agregarla externamente).

Lo que puedes hacer es poner un optoacoplador para aislar los interruptores del arduino.

Saludos

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.