Not enough voltage to trip digital HIGH pin

Hello I'm a bit new to Arduino and electronics. I'm using an Arduino Uno to hack some telephones to use DTMF to communicate between two arduinos across phone lines (much like the cellphone controlled robots). I am using a MT8870DE DTMF tone decoder right now (though I have some MT8888's). It generates a binary code on four output pins. Everything is working fine--the chip generates binary code when I send a tone from the phone--but the arduino can't read it.

I am getting just enough power to turn on an LED but apparently not enough for the digital pin to see it.

Here are the things that I have tried:

-Having the chip send binary to LED lights --Works--the lights turn on

-Having the chip send binary to arduino analog pin --low reads 0-40, high reads 1020-1022 (only about 700 if the LED is plugged in)

-Send the signal to a HEX Inverter (DM74LS04) --Works on an LED but gives the same (though opposite) values to the analog pin--and still does not trip HIGH for digital

-Send the signal to a transister (PN2222 and TIP120) --not enough power to trip the transistor

Running out of ideas--I'm getting ready to just read this thing from analog (messy code) or do an optic coupler (just stupid)! It seems like it should be so simple!



The tone decoder's Gnd is connected to Arduino Gnd?

Try the Arduino's internal pullups : pinMode(pin#,INPUT_PULLUP);

Pins Configured as INPUT_PULLUP The Atmega chip on the Arduino has internal pull-up resistors (resistors that connect to power internally) that you can access. If you prefer to use these instead of external pull-down resistors, you can use the INPUT_PULLUP argument in pinMode().

Yea I tied the Arduino to the ground for the chip. Internal pull up resistors seem to get me a tiny bit more juice but not enough.

How have you got the device wired up to the Arduino? Is the device 18 or 20 pin? Is TOE pin set high? Do you monitor StD or ESt to ensure signal is present on data lines?

This is the 18 pin chip (though I have the 20 pin chips as well). I am wiring the 4 digital pins–the data sheet calls these Q1-Q4, and the StD pin as well–however none of these pins are able to trip arudino’s digital High (though I can seen a signal change on the analog pins). TOE is pulled to high (tied to the Vdd.

I’m attaching my circuit diagram drawing:

Right!? It should be able to trigger the high. Right now I'm only use a very basic program to serial read the pin:

int sens1; int sens2 = 2;

void setup(){ pinMode (sens2, INPUT); Serial.begin(9600); }

void loop(){ int read1 = analogRead(0); int read2 = digitalRead(sens2); Serial.print(read1); Serial.print(", "); Serial.println(read2); delay(10); }

I've tested the pins with a button and a potentiometer and they give normal readings. However when reading from the chip the analog input reads either 600-700 (with the LED plugged in) or 1020-1022 (with no LED), and the digital only reads 0 (all this is reversed with the hex inverter of course).

byte result = 0;  // 
byte ICpin = 2; // D2 to 8870 pin to test

void setup()
  pinMode(ICpin, INPUT);

void loop()
  result = digitalRead (ICpin);
  if (result == 1)
  delay (10);

void itisHigh ()
  Serial.println("Pin = 1");

void itisLow ()
  Serial.println("Pin = 0");

Try a 4.7K resistor, or so, to Gnd (instead of the LED circuits). I appreciate the pic, but if this doesn't work out - could you take another after tidying things up some, and we can see [u]all[/u] of the connections (ground wires, + wires, all of it), leaving the observer to assume nothing, and just as they are under test?

The datasheet says the output levels should trigger an arduino pin.

Low level output voltage     V[sub]OL[/sub] V[sub]SS[/sub] +0.03 No load
12 High level output voltage V[sub]OH[/sub] V[sub]DD[/sub] -0.03  No load

Are you connecting the outputs to the LED's and the arduino pins at the same time or do you remove the LED's when connected to the ardunio? The voltage drop across the LED will probably lower it enough not to register as a digital signal.

The photograph shows a yellow wire connected between the Arduino’s pin 2 and the breadboard. I don’t see anything else connected to that wire - it looks to be open at the breadboard. Maybe a wire is missing?