element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Assistance with Arduino Inputs
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 6 replies
  • Answers 2 answers
  • Subscribers 394 subscribers
  • Views 482 views
  • Users 0 members are here
Related

Assistance with Arduino Inputs

Former Member
Former Member over 11 years ago

Hi, first time on the forums.  Sorry if this has been answered already, but my search-fu isn't returning anything helpful.

 

Here's my project:  I make busy lights.

 

I have my arduino all coded and happy so that when a momentary switch is pressed (built in pull-up resistor), a relay is turned on and a series of LED lights make a very pretty lighting animation until the momentary switch is let go and the entire board goes silent.  It's perfect.

 

Now comes the challenge.  I want the arduino to be "triggered" by an external event.

 

I've taken apart my wireless headset, desoldered one of the LEDs and extended those leads to my breadboard.  So now, when I pick up my phone with the headset, I've got an LED that lights up on my breadboard.  Nice!

 

Now my question, how to connect the two?  I want the LED light from the headset to trigger the arduino just like the momentary switch does now.

 

I've tried using digitalRead on Pin9 (doesn't change the value, shows "0")

I've tried using analogRead on Pin9(doesn't change the value reported to the Arduino)

 

I feel like I'm missing something simple, a way for the arduino to detect voltage from an outside source (the LED reports either zero voltage (headset is not on) or 2 volts (headset is on, LED is lit up).

 

If this isn't enough information, I can prototype everything on Fritzing and post the file, or I can post my arduino code, but I have a feeling someone is going to say, "use the BLAH" and maybe point me to a link that I can take and run with.

 

Sorry for the wall of text, appreciate those who read till the end.

 

Thanks,

 

Aaron

  • Sign in to reply
  • Cancel

Top Replies

  • bobcroft
    bobcroft over 11 years ago +1 verified
    Aaron, Have you correctly configured your Arduino I/O as inputs? Have you tried setting the internal pull up on the input pin? the output to the LED on the headset may be open collector. That would need…
  • Former Member
    Former Member over 11 years ago +1
    You guys are amazing! Thanks for the responses. The problem was two-fold (wrong input pin and too low voltage for Arduino to recognize). I didn't know to use A0 (analog zero) as the input and was using…
  • bobcroft
    0 bobcroft over 11 years ago

    Aaron,

              Have you correctly configured your Arduino I/O as inputs?

    Have you tried setting the internal pull up on the input pin?  the output to the LED on the headset may be open collector.  That would need a pull resistor to drive the Arduino input high.  A 2 volt input may be close to the lower threshold for a '1' (high) if the Arduino is powered at 5 volt.  I am not certain of the threshold values.

     

    Have you connected the head set ground to Arduino ground?

     

    If you have tried the analog input and all is correctly configured I would expect an analog value of about 410 for 2 volt, (2/5 * 1024).  This would work even if the voltage was below the threshold voltage for digital inputs because you could use any analog value, say > 100, to turn on your LED display.  If you want to use the analog input you could simulate the input from your head set with a potentiometer to test the trip point.

     

    Don't despair what you want to do can most definitely be done.  With inputs the golden rule is not too little and definitely not too much voltage.  Try my suggestions and come back to us if you need more help.

     

    Bob

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • gihu
    0 gihu over 11 years ago

    Hi Aaron,

     

    I think that the atmega8 in the arduino UNO, needs at least 3Vdc for a digital '1', even digital '0' goes from 0volts to 0.2*Vcc, in the UNO Vcc is 5volts, so 2volts is still a digital '0'.

    Probably you could use a optocoupler, applying the voltage to LED of the optocuopler, then the digital with a pull-down resistor,the emiter connected to the digital input and the collector to VCC, so when you get 0 volts from the headset you will have a digital '0' in the arduino, and when you get 2volts in the headset, you will have a digital '1'.

     

    Hope that helps,

    Miguel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago

    With a 5V uController, 2V may not quite be enough to allow the Arduino to read a one, using one of the alalogue inputs should have read something though, you have got a common ground right ?, connecting the low side (Volts wise) of the LED to the GND of the Arduino

     

     

     

    Another option is to power a transistor base, say a 2n2222 or similar to drive the input to ground and also allow it to go to the full voltage of the pullup inside the micro

     

     

     

    Regards

     

     

     

    Peter

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    You guys are amazing!  Thanks for the responses.  The problem was two-fold (wrong input pin and too low voltage for Arduino to recognize).  I didn't know to use A0 (analog zero) as the input and was using Pin9.  The 2v is too small of a threshold for the arduino to pick it up on that pin.  However, when I changed it to A0, I now show values of 0,1,2,3, but when I switch on the 2v source, those values go up to 400+.  This is more than enough for me to use as a switch in the arduino busy light.

     

    Thanks again!!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago in reply to Former Member

    Your welcome

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bobcroft
    0 bobcroft over 11 years ago

    Aaron,

                  In addition to Peter's suggestion to use a transistor you could also use an opto isolator.  This may be the case if you wanted to physically separate the input source from the Arduino inputs, perhaps to protect the Arduino.  The opto isolater output would be connected as Peter suggest's for the transistor.  These opto isolators can also be used for voltages higher than the Arduino's VCC.

     

    glad we could help.

     

    Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube