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
Code Exchange
  • Technologies
  • More
Code Exchange
Documents need help with pull up on input
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Code Exchange to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: joetrotter
  • Date Created: 15 Feb 2017 3:09 PM Date Created
  • Last Updated Last Updated: 6 Oct 2021 9:02 PM
  • Views 580 views
  • Likes 0 likes
  • Comments 3 comments
Related
Recommended

need help with pull up on input

I am using the gertboard and wiringPi ,and trying to figure out the buttons. The program reads the low when the pull is pushed, but when not pushed, the input is acting as if it is floating and reading random HIGH and LOW. Im a teacher, new to RaspberryPi, beginner  programmer, and am trying to further my knowledge of C. Any help is appreciated. My code is:

 

#include <wiringPi.h>

#include <stdio.h>

#include <math.h>

#include <time.h>

int main(void)

{

wiringPiSetupGpio();

pinMode(25,INPUT);

pullUpDnControl(25,PUD_UP);

pinMode(17,OUTPUT);

pinMode(24,OUTPUT);  //if these unused i/o left not set up. they follow GPIO 17 for some reason

digitalWrite(24,LOW);

pinMode(23,OUTPUT);

digitalWrite(23,LOW);

pinMode(22,OUTPUT);

digitalWrite(22,LOW);

pinMode(21,OUTPUT);

digitalWrite(21,LOW);

pinMode(18,OUTPUT);

digitalWrite(18,LOW);

pinMode(15,OUTPUT);

digitalWrite(15,LOW);

int x=0;

while(x<20)

{

if (digitalRead(25)==LOW)

{

printf("pushed LED ON, %i\n",x);

digitalWrite(17,HIGH);

while (digitalRead(25)==LOW)

{;}

}

if (digitalRead(25)==HIGH)

{

printf("not pushed LED OFF , %i\n",x);

digitalWrite(17,LOW);

while (digitalRead(25)==HIGH)

{;}

x++;

}

 

}

return 0;

}

 

  • Share
  • History
  • More
  • Cancel
  • Sign in to reply
Parents
  • mcb1
    mcb1 over 8 years ago

    joetrotter

    I'd suggest removing these lines and seeing what happens.

     

      while (digitalRead(25)==LOW)
      {;}
    
    
      while (digitalRead(25)==HIGH)
      {;}

     

    These will have you stuck and not contnuing the loop.

     

    As the loop runs it checks if Pin25 is LOW or HIGH and does what it needs to.

     

    A comparison would be sending two pupils to a door and asking one is the Door OPEN, and the other is the Door CLOSED

    versus sending them and telling them to stay while it is OPEN or CLOSED.

     

     

    Outputs should only change when told to.

    So there should be no need to do anything else.

     

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • mcb1
    mcb1 over 8 years ago

    joetrotter

    I'd suggest removing these lines and seeing what happens.

     

      while (digitalRead(25)==LOW)
      {;}
    
    
      while (digitalRead(25)==HIGH)
      {;}

     

    These will have you stuck and not contnuing the loop.

     

    As the loop runs it checks if Pin25 is LOW or HIGH and does what it needs to.

     

    A comparison would be sending two pupils to a door and asking one is the Door OPEN, and the other is the Door CLOSED

    versus sending them and telling them to stay while it is OPEN or CLOSED.

     

     

    Outputs should only change when told to.

    So there should be no need to do anything else.

     

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
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