So I need to automaically eject a CD from a Blu-Ray drive, I have a wire welded on the drive's card that if manually connected for a split second (pulse) to the ground of that same card on the drive, will eject the CD. Now in order to do that automatically I'm using an Arduino Nano and I connected that wire to an analog pin "d1" set its mode to Output and connected the grounds of both Arduino and drive together. Here's my code 1
int ds1 = A2; //pin that indicates the existence of the CD inside the drive if HIGH and its inexistance otherwise
int d1 = A3; //pin connected to the wire that if connected to ground ejects the CD
void setup() {
Serial.begin(9600);
pinMode(ds1, INPUT);
pinMode(d1, OUTPUT);
while((!analogRead(ds1))) //if the CD isn't inside the drive wait
{}
}
void loop() {
analogWrite(d1,0); //eject CD
delay(500);
while(!analogRead(ds1)) //if the CD isn't inside the drive wait
{}
delay(1000);
}
I'm thinking that maybe setting the pin to 0 doesn't necessarily mean I connected it to the gnd, it's just a possibility if you see anything wrong with the code or have any suggestion please help me
pinMode(d1, OUTPUT);
sets the pin LOW (0 zero) connected to groundwhile(!digitalRead(ds1))
would be better at first line in loop. then you can leave it out from setup()Blu-Ray drive
? ..... is this a drive on a computer or is it a Blu-Ray player?