Go Down

Topic: Not enough voltage to trip digital HIGH pin (Read 4522 times) previous topic - next topic


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!



Runaway Pancake

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

Try the Arduino's internal pullups :

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().
"Who is like unto the beast? who is able to make war with him?"
When all else fails, check your wiring!


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?
Don't PM me for help as I will ignore it.


May 06, 2013, 01:45 am Last Edit: May 06, 2013, 01:47 am by blalockj Reason: 1
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);

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

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).

Runaway Pancake

May 07, 2013, 03:07 am Last Edit: May 07, 2013, 03:27 am by Runaway Pancake Reason: 1
Code: [Select]

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 all of the connections (ground wires, + wires, all of it), leaving the observer to assume nothing, and just as they are under test?
"Who is like unto the beast? who is able to make war with him?"
When all else fails, check your wiring!


The datasheet says the output levels should trigger an arduino pin.
Code: [Select]

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.
Don't PM me for help as I will ignore it.


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?

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131