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 analog read a value and call it something else
  • 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
  • Replies 10 replies
  • Subscribers 392 subscribers
  • Views 660 views
  • Users 0 members are here
Related

analog read a value and call it something else

Former Member
Former Member over 10 years ago

Hi everyone, I am trying to read an analog value I am calling airState and if both my buttons are pressed I want to set it as a variable to save for later. I have the if statements, the variable, and the buttons figure out, I just cant figure out how to read a variable and assign it a name of its own as a varible.

 

All guidance will be much appreciated, thanks

 

psuedo code:

analog read airState

set progairState to current airState reading

 

[CODE]

  airState = analogRead(airPin);

  analogRead(airState);                         //read analog input "airState" and set to memory as "progairState" to compare

Serial.println(progairState);                  //how do I make progairState equal airState at Serial print time

[CODE]

 

Answering my own question maybe.... Does this work?

  airState = analogRead(airPin);

  analogRead(airState);                         //read analog input and set to memory

  if (airState != 0)

  Serial.println(progairState);

 

Message was edited by: Randy Ashdown

  • Sign in to reply
  • Cancel

Top Replies

  • mcb1
    mcb1 over 10 years ago in reply to Former Member +2
    I spent some time coming to grips with various bits of Arduino. Not coming from a software base, it was a struggle, but eventually it does sink in .. You may want to look at this book. http://it-ebooks…
  • gadget.iom
    gadget.iom over 10 years ago +2
    Hi Randy . Getting started in these areas can often be a frustrating experience, and while it seems tempting to just get the answer, it's far more rewarding to learn and solve the issue yourself. The community…
  • shabaz
    shabaz over 10 years ago +1
    Hi Randy, Your code is close, but there are some basic rules that need to be understood, about operators, assignment and functions. Without this knowledge, you'll be repeatedly stuck. Fortunately it doesn…
Parents
  • shabaz
    shabaz over 10 years ago

    Hi Randy,

     

    Your code is close, but there are some basic rules that need to be understood, about operators, assignment and functions. Without this knowledge, you'll be repeatedly stuck.

    Fortunately it doesn't take long to pick it up, and the best way is to look at some examples, and also study the Foundations section on the Arduino site.

    When you're using specific functions from existing Arduino libraries, you can use the reference section to look up the specific function, to see if it has a

    return value.

    In your specific code, the second line doesn't make sense because the analogRead function provides a return value and you're choosing not to do anything with it in that second line.

    Your first line already stores the analog value in a variable.

    I've also included a link on C operators below, because while the Arduino website is good, in some areas it is slack.

     

    Useful links:

    Arduino - FunctionDeclaration

    Arduino - Foundations

    http://arduino.cc/en/Guide/HomePage

    Arduino - AnalogRead

    C - Operators

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to shabaz

    Hi shabaz, thanks for your reply. I have read all of those Arduino pages several times. Thats how I got this far, which might not seem very far. I understand about the second line just taking up space (thank you). This is for a motorcycle air ride suspension. When I get the right height, I want to commit it to progairState, or programmed air state. Then upon start up I will have the Arduino output to the compressor until airState equals progairstate. This is the programming part where I have the bike at the desired height, and want to store that value. I am hesitant to use progairState = airState, because airState will be changing, where I want progairState to be my target. I thought I read the Serial.println writes it as a variable to be used as a static number. I have been reading so much, I am confusing myself.

     

      airState = analogRead(airPin);

      if (airState != 0)                                 //ensure I have an input on A0

      Serial.println(progairState);           //save current reading as a static number to compare to elsewhere in code.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 10 years ago in reply to Former Member

    Hi Randy,

     

    println is a function (aka member function) of the object called Serial. The println function is responsible for sending content over a serial port (this would be described in the Arduino Serial reference [link]). The function doesn't perform variable assignment. When you say "write to a variable" you mean "assignment". Assignment is done using an '=' operator.

     

    This is the reason for all the links. Much like any language that may have verbs adjectives and punctuation, C and C++ (which is what the Arduino language is like) has functions, operators and so on. Recognising them comes over time, so it is important to spend time reading the theory and doing simple examples before moving on to building your own application.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to shabaz

    Recognising them comes over time

    Thats why I was just looking for an answer.

     

    I get the whole learn by doing it yourself thing. When someone is stuck and confused, they just need to get past it and let that part sink in. I know I will learn by searching and reading. I have read so much, I am confused. I will look elsewhere.

     

    Thank you for your time, adown

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 10 years ago in reply to Former Member

    Randy Ashdown wrote:

    I am hesitant to use progairState = airState, because airState will be changing, where I want progairState to be my target.

     

    I think I now understand the confusion.

     

    When an assignment is made, it is not forever, it is just for that point in time when the machine (the arduino) processes the instruction. Once the instruction has been processed, the Arduino forgets about it, just the memory

    (where the variable contents are stored) is kept. It is not like algebra where y=mx means that y changes whenever m and/or x changes.

     

    Once the assignment is made, the right side variable (airState) can be changed by you at any time, and it will not affect the left side variable.

     

     

     

    In a similar vein, when you have a function providing the value for the assignment such as:

    airState = analogRead(airPin);

    The analog value is captured into airState just when the line is executed; they actual physical voltage on the pin can vary, but the left side variable (airState) won't change unless you execute the same line again at some stage (e.g. in a loop).

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • shabaz
    shabaz over 10 years ago in reply to Former Member

    Randy Ashdown wrote:

    I am hesitant to use progairState = airState, because airState will be changing, where I want progairState to be my target.

     

    I think I now understand the confusion.

     

    When an assignment is made, it is not forever, it is just for that point in time when the machine (the arduino) processes the instruction. Once the instruction has been processed, the Arduino forgets about it, just the memory

    (where the variable contents are stored) is kept. It is not like algebra where y=mx means that y changes whenever m and/or x changes.

     

    Once the assignment is made, the right side variable (airState) can be changed by you at any time, and it will not affect the left side variable.

     

     

     

    In a similar vein, when you have a function providing the value for the assignment such as:

    airState = analogRead(airPin);

    The analog value is captured into airState just when the line is executed; they actual physical voltage on the pin can vary, but the left side variable (airState) won't change unless you execute the same line again at some stage (e.g. in a loop).

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • 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