Pages: [1]   Go Down
Author Topic: Not enough voltage to trip digital HIGH pin  (Read 2383 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!

thanks

john
Logged

Offline Offline
Faraday Member
**
Karma: 66
Posts: 2571
Now, More Than Ever
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

"Hello, I must be going..."
"You gotta fight -- for your right -- to party!"
Don't react - Read.
"Who is like unto the beast? who is able to make war with him?"

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Norfolk UK
Offline Offline
Faraday Member
**
Karma: 70
Posts: 2577
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:


* photo 1_1.jpg (529.99 KB, 1365x1024 - viewed 121 times.)

* photo 2_1.jpg (553.03 KB, 1329x879 - viewed 73 times.)
« Last Edit: May 05, 2013, 06:47:20 pm by blalockj » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Faraday Member
**
Karma: 66
Posts: 2571
Now, More Than Ever
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

void loop()
{
  result = digitalRead (ICpin);
  if (result == 1)
  {
    itisHigh();
  }
  else
  {
    itisLow();
  }
  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?
« Last Edit: May 06, 2013, 08:27:15 pm by Runaway Pancake » Logged

"Hello, I must be going..."
"You gotta fight -- for your right -- to party!"
Don't react - Read.
"Who is like unto the beast? who is able to make war with him?"

Norfolk UK
Offline Offline
Faraday Member
**
Karma: 70
Posts: 2577
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The datasheet says the output levels should trigger an arduino pin.
Code:
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.
Logged


USA
Offline Offline
Sr. Member
****
Karma: 17
Posts: 387
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Pages: [1]   Go Up
Jump to: