Forstå forskjellen mellom int og float i Arduino
int og float er to viktige datatyper i Arduino. Int brukes til å lagre hele tall, mens float brukes til lagring av reelle tall med et desimalt punkt. For eksempel vil du bruke Int for å lagre verdien av antall ganger en sløyfe utføres, mens du vil bruke Float til å lagre verdien av en temperaturavlesning.
Forstå heltall
Heltall, eller int, er en datatype i Arduino som kan holde hele tall (positive, negative eller null) innenfor et bestemt område. En int kan lagre en verdi mellom -32 768 til 32 767.
Forstå flytende punkttall
En flottør er en datatype i Arduino som kan inneholde desimalverdier. Floats kan lagre mye større verdier enn int mellom (-3.4028235e38 til 3.4028235e38) men krever mer minne for å lagre.
Hvordan konvertere int for å flyte i Arduino
Nå som vi har en grunnleggende forståelse av Int og Float, la oss utforske prosessen med å konvertere INT til å flyte i Arduino.
Trinn 1: Erklær Int -variabelen
Det første trinnet med å konvertere en int til en flottør er å erklære int -variabelen. La oss for eksempel si at vi har en heltallvariabel kalt “Myint”:
int myint = 10;
Trinn 2: Erklær floatvariabelen
Deretter erklærer vi floatvariabelen som lagrer den konverterte heltallverdien. La oss for eksempel kalle floatvariabelen “MyFloat”:
float myfloat;
Trinn 3: Utfør konverteringen
Til slutt utfører vi konverteringen fra Int til å flyte ved å tilordne INT -variabelen til Float -variabelen. For dette bruker vi Float () -funksjonen:
myfloat = float (myint);
"Float ()" -funksjonen konverterer heltallverdien til et flytende punktnummer.
Typecasting int å flyte i Arduino
Typecasting i Arduino -programmering er en annen måte å konvertere en datatype til en annen. I Arduino gjøres typekasting fra int til Float ved å plassere datatypen du vil konvertere til i parenteser foran variabelen du vil konvertere. Her er et eksempel:
int myint = 10;
float myfloat = (float) myint;
I dette eksemplet tildelte vi først verdien av 10 til variabel Myint. Vi tildelte deretter verdien av Myint til variabelen MyFloat, men denne gangen kaster vi eksplisitt verdien til en float -datatype.
MyFloat -variabelen har nå verdien 10.0, som er en float -datatype. Konverteringen fra int til flyter gjøres eksplisitt ved å typisk.
Arduino eksempelkode
Her er en eksempelkode i Arduino som konverterer en INT -verdi til en flottør:
void setup ()
Serie.Begynn (9600);
int myint = 423; // Eksempel heltallverdi
float myfloat = (float) myint; // konvertere int til å flyte
// Skriv ut de originale og konverterte verdiene
Serie.print ("Heltallverdi:");
Serie.println (myint/100);
Serie.print ("Float Value:");
Serie.Println (MyFloat/100);
void loop ()
I koden ovenfor definerer vi først en heltallvariabel som heter Myint og initialiser det med verdien 423 (Du kan erstatte denne verdien med hvilket som helst heltall du vil konvertere.
Deretter lager vi en floatvariabel som heter myfloat og tilordne det verdien av Myint konvertert til en flottør. For å gjøre dette, kastet vi ganske enkelt Myint til en flottør ved å plassere (flyte) før den.
Til slutt bruker vi seriell objekt for å skrive ut den opprinnelige heltallverdien og den konverterte flytende punktverdien til seriemonitoren. Programmet skriver ut verdiene til heltallvariabelen og flytende punktvariabelen delt på 100 til seriemonitoren:
Produksjon
I utgangen kan vi se en heltallverdi og en flytende punktverdi med desimalpunkt som viser at den nå konverteres.
Bruker float i Arduino
Når du har konvertert en int til en flottør i Arduino, kan du bruke den i prosjektet ditt. Her er noen få ting å huske på når du bruker flottører i Arduino:
Data-type | Størrelse | Lagret verdiområde |
---|---|---|
flyte | 4 byte (32 bit) | -3.4028235e38 til 3.4028235e38 |
int | 2 byte (16 bit) | -32768 til 32767 |
Konklusjon
Å konvertere en int til en flottør i Arduino er en enkel prosess som kan komme til nytte når du jobber med analoge innganger eller utfører beregninger som krever desimalpunkter. Ved å følge trinnene i denne artikkelen, kan du enkelt konvertere heltallverdier til flytende punkttall.