คำสั่งใน arduino

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Dtostrf() – Turn Your Floats Into Strings

Dtostrf() Syntax

Let’s jump straight into this. Here are the parameters that dtostrf() expects:

dtostrf(float_value, min_width, num_digits_after_decimal, where_to_store_string)

Sprintf() With Arduino Print Multiple Variables To The Serial Monitor


Character Specifiers

Here are some of the common character specifiers:

d or i – signed decimal integer


u – unsigned decimal integer
s – a string of characters

For example, if you use %d, you’re telling sprintf() to format the inserted variable as a signed decimal
integer.

 sprintf(buffer, "The %d burritos are %s degrees F", numBurritos, tempStr);


A QUICK SPRINTF() REVIEW

Variable Scope | Fix Error: ‘YourVariable’ Was Not Declared In This Scope? | SOLVED

VARIABLE SCOPE IN LAYMAN’S TERMS

Roughly speaking, variable scope has to do with where you can use a variable you
have defined. Let’s take a look at an Arduino program and talk about some sections.

If I define a variable inside the setup function, I can only use that variable in the
setup. Trying to use that variable in the loop would get me the error message…

void setup() {

 int dogBreath; // Defined here

void loop() {

 dogBreath = 7; // Error...not declared in this scope

}
If I define a variable inside the loop function, I can only use that variable in the loop.
Trying to use that variable in the setup, I get the error message…

void setup() {

 catBreath = 5; // Error...not declared in this scope

void loop() {

 int catBreath = 10; // Defined here

If I create my own function, and I define a variable inside that function, it can only be
used in that function. Were I to use it in another function, like setup or loop, I’ll get
that error!  Can you begin to see how variable scope is working?

void setup() {

void loop() {

 giraffeBreath = 63;// Error...not declared in this scope

void myFunction() {

int giraffeBreath; // Defined here

Can you see how the curly braces sort of compartmentalize our variables? If I define
a variable inside curly braces, I cannot use that variable outside of those curly
braces. Other functions can’t see the variable outside of it’s curly braces, they
don’t even know they exist!

I mean check this out. If I put curly braces around a variable declaration, and then try
to use that variable outside the curly braces, I get that error.

void setup() {

 {
   int hippoBreath; // Defined here

 }

 hippoBreath = 9; // Error...not declared in this scope

It’s kind of like the curly braces are force fields – holding in your variable. The curly
braces set the scope of the variable.

Nested Variable Scope

Now here is where it gets interesting…

If you create a variable outside of and before a set of curly braces, that variable can
“get into” curly braces after it…

Let’s do a little demonstration here:

void loop() {

 int freshBreath = 0; // Defined here

 for (int i = 0; i & lt; 3; i++) {

   freshBreath += i; // used inside curly braces here

 }
}

In this example, freshBreath can be used anywhere inside its scope, including the for


loop.

Global Scope

Now what if we did something crazy…What if we create a variable outside of any


curly braces! What is the variable scope then?
This is what we call global scope. A variable with global scope, known as a global
variable can be used anywhere in your program.

int genieBreath = 8; // Defined here

void setup() {

 genieBreath = 1;

void loop() {

 genieBreath = 898;

void myFunction() {

 genieBreath = 21;

Now, you might be tempted to think that using global variables is the way to go,
since you can use them everywhere – seems to make things easier. For a really small
program, yes, you can get away with a couple global variables, but as your programs
grow in complexity, you really want to limit global variable use.

There’s a bunch of reasons not to use global variables too much, but a big argument
against their use is that using global variables can make your code far more difficult
to debug. So use global variables sparingly…

You might also like