Skip to main content
Share Your Experience: Take the 2024 Developer Survey

Questions tagged [data-type]

Identifies the size and nature of information held by a variable in a program. It is language-dependent. Examples for C/C++ include: `int`, `float`, and `char`.

Filter by
Sorted by
Tagged with
14 votes
5 answers
77k views

How to retrieve the data type of a variable?

I am using Arduino and I would like to know if there is a function that returns the data type of a variable. That is, I would like to run something as like the following: // Note: 'typeof' is a ...
user502052's user avatar
10 votes
3 answers
12k views

arduino - millis()

Copied from the Arduino reference - millis() Tip: Note that the parameter for millis is an unsigned long, errors may be generated if a programmer tries to do math with other datatypes such as ...
user3060854's user avatar
10 votes
2 answers
4k views

Why is int only 2 bytes?

When using C/C++ on other platforms, the int type is typically 4 bytes (or potentially more). However, on Arduino, it's only 2 bytes. Why is it different? Does it affect performance if I always use ...
Peter Bloomfield's user avatar
10 votes
3 answers
65k views

Convert to and from Unix Timestamp

What is the best way to convert between date, hours, min, seconds to Unix timestamp in milliseconds in Arduino? I need to have this conversion, since I'm using RTC (date, hours, min, secs etc) and ...
Dzung Nguyen's user avatar
6 votes
3 answers
7k views

How can I convert Arduino String to C string type?

I got a String which as I understand is an Arduino object, and got some C++ code: #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <string.h> LiquidCrystal_I2C lcd(0x20,...
diegoaguilar's user avatar
3 votes
5 answers
8k views

Serial.print() is slower than it should be

I'm trying to use Arduino as a DAQ but the Serial.print() is not working as fast as I expected. How many bits are sent if you are using a int, because if I use a uint8_t, it's taking the same amount ...
Arnau Perez's user avatar
3 votes
4 answers
738 views

Can I use 1-byte datatypes to store digital input?

I am reading the docs on DigitalRead() and wondering why it stores seemingly boolean HIGH and LOW inputs in int data type variable. I have two issues with that: int is 2-byte, while bool and ...
Arthur Tarasov's user avatar
3 votes
2 answers
6k views

inttypes vs Arduino defined integral types

In my Arduino projects I use both Arduino types and types defined in the "inttypes.h" file, which #includes stdint.h. So far I've always written code only for the ATmega328P microcontroller (either in ...
noearchimede's user avatar
3 votes
2 answers
315 views

Can I have help interperting this code? char variable somehow storing big numbers

I have this GSM module I got for my arduino project and I am trying to access the call feature, but the function makes no sense. boolean Adafruit_FONA::callPhone(char *number) { char sendbuff[35] ...
Joe salad's user avatar
3 votes
1 answer
3k views

Print unsigned long long in ESP8266

I need to print an unsigned long long variable: unsigned long long t = 1559072327000ULL; I have tried the following: Serial.println(t); // call of overloaded 'println(uint64_t&)' is ambiguous ...
Yván Ecarri's user avatar
2 votes
2 answers
648 views

Read one byte from file and convert to decimal

Ok, I'm fairly new to Arduino and I'm trying to read bytes from a file in an SD card and convert to integer values (0-255). I have a file, with 1 byte on it (128 int value, created in Python, can ...
melev's user avatar
  • 71
2 votes
3 answers
214 views

Is the strange problem I'm having to do with comparing floats?

I have a timer interrupt that controls a stepper motor, on an UNO board. In the interrupt handler it checks the speed of the motor and compares it to the target speed. This allows the motor to ...
stib's user avatar
  • 133
2 votes
2 answers
12k views

Convert uint8_t array to uint32_t array

I have this array of bytes, that I need to convert to an array of unsigned ints. Also the function (btea) that needs it, seems to need a pointer. I'm currently using reinterpret_cast which seems to ...
Gerben's user avatar
  • 11.3k
2 votes
2 answers
2k views

Own type definition using a struct does not name a type

I need to initialize several buttons and LEDs connected to my Arduino. To store data related to an individual button or LED, I decided to define my own data type using two different structs. One for a ...
albert's user avatar
  • 205
2 votes
4 answers
4k views

Assemble or typecast byte array to float

The serial port on my Arduino Mega is receiving 3 floats as bytes (total of 12 bytes, 4 per float) over serial. Unfortunately I cannot assemble the 4 Bytes in a float, as the serial monitor only ...
Dario's user avatar
  • 145
2 votes
1 answer
293 views

Arduino data-types

(Im new to the arduino side of stackexchange). Im working on a worksheet for to begin with arduino. I have prior experiences working with arduinos, but problem is new for my field of expertise. Any ...
UnfreeHeX's user avatar
2 votes
1 answer
166 views

Conditional compilation depending on sizeof(double)

Is there a macro (#define ...) somewhere in the bowels of Arduino IDE or core header files which tells me at compile time(!), if the double data type for a given platform/board is a true double ...
Andy's user avatar
  • 123
2 votes
2 answers
229 views

How does an 8bit MCU make use of data-types over 8bits?

how does an 8bit MCU handle 16bit output? How does an 8bit MCU store values higher than 8bits? I am using an attiny, on an adafruit trinket. and other 8bit MCUs. http://www.atmel.com/devices/attiny85....
j0h's user avatar
  • 892
2 votes
2 answers
6k views

Since double and float represent the same data type (usually), which is preferable?

It looks like on ATMega based boards, float and double are equivalent 32-bit (4-byte) data types. However, on the Arduino Due, doubles are 64-bit (8-byte) where floats are 32-bit (4-byte), same as ...
Ehryk's user avatar
  • 121
2 votes
2 answers
5k views

Arduino Variable Data Type?

Is there a variable data type available for Arduino? I have a class that should have a member that will differ in data type, in the past I have used the "variable" keyword in c++ but when I tried to ...
Andy Braham's user avatar
2 votes
2 answers
650 views

Not output on serial monitor, sending string on serial.print

I get two 10-bit values from analog pins. These two values in a string, ";" combine with. for ex: 515; 510 I am sending it to another arduino via Serial.print. I cannot display this string ...
Enes Orhan's user avatar
2 votes
1 answer
11k views

Need help: Cast from 'char*' to 'uint8_t {aka unsigned char}' loses precision [-fpermissive]

I'm trying to convert the string that I receive from the Websocket to uint8_t that I can copy to the data bytes of CAN protocol frame. I'm using an ESP32 chip and programming it on an Arduino IDE. The ...
ObviousActivity936's user avatar
2 votes
1 answer
243 views

double to char* conversion. Weird results from dtostrf

Here’s the code: void setup() { Serial.begin(9600); delay(300); double lat = 1111.11; double lon = 4444.44; const byte len{10}; char sLat[len]; char sLon[len]; ...
zhekaus's user avatar
  • 439
2 votes
3 answers
3k views

Writing a float to a BLE characteristic. What data format?

I am currently working on a python-based Bluetooth Low Energy client for OS X and I got stuck while trying to write a remote float characteristic value. First of all: my setup is an Arduino 101 with ...
ArduStack's user avatar
2 votes
2 answers
223 views

How can i do something like multi threathing in arduino?

I am checking for ways to implement multi threathing in Arduino, I have also tried using the library TimerOne but it doesn't seem to work, what I'm trying to make is an Arduino application then, every ...
user57129's user avatar
  • 121
2 votes
1 answer
2k views

How to pass value of a function from the RFID-RC522 library into a variable then be sent into either serial or ethernet?

I'm using an RC522 RFID reader with an Arduino UNO. There is a function?? (or whatever it's called :)) in Miguel Balboa's new MFRC522.h library which is mfrc522.uid.uidByte[i] that prints the bytes of ...
Jeff Valerio's user avatar
2 votes
1 answer
344 views

Determine whether a variable is of an arithmetic type

Is there a way to determine whether a variable is of an arithmetic type or not? arithmetic: integer, floating point numbers, boolean values not arithmetic: pointers, references; e.g. strings, and ...
noearchimede's user avatar
2 votes
3 answers
2k views

Sending struct from Arduino to Raspberry Pi - wrong types

I'm using Raspberry Pi and Arduinos for my home automation project where Raspberry Pi is the controler of Arduino nodes. I use nRF24 wireless transceivers to communicate. My problem is that when I ...
lewiatan's user avatar
  • 123
1 vote
3 answers
4k views

Why char 0x80 == 0xFFFFFF80?

As far as I know a char is an 8 bit variable void setup() { Serial.begin(9600); } void loop() { char x = 0x80; if(x != 0x80){ Serial.println(x, HEX); } delay(1000); }
Евгений Новиков's user avatar
1 vote
1 answer
1k views

cast double to long leads to unexpected results

I wrote a little program to show my problem: void setup() { Serial.begin(9600); double K=39.85; double a=K*100; Serial.print("a= "); Serial.println(a); long val_long = 0; val_long = ...
Hardy72's user avatar
  • 19
1 vote
3 answers
4k views

Set and extract individual bytes of a number (lowByte() and highByte())

You can extract the low-order (rightmost) byte of a variable or the high-order (leftmost) byte of a word with the functions lowByte() and highByte() respectively (the quotes are from the ...
LukasFun's user avatar
  • 295
1 vote
2 answers
122 views

Comparing custom variable type definitions

In a library I am using with an OBD adapter, they define a public function to get the state of the OBD connection using some strange (and, in my opinion, useless) custom defined variable type: // ...
Benjamin Brownlee's user avatar
1 vote
2 answers
2k views

Const data optimisation for Arduino

I'm taking a course on Arduino Uno programming and on today's talk I heard that the const data is optimized by Arduino, so that it occupies less space than the actual data type (namely, a const int ...
theSongbird's user avatar
1 vote
1 answer
3k views

Cast from long to int

How does arduino uno cast from long to int? Does it truncate the bits? (Does it just delete the 16 most left bits?)
João Almeida's user avatar
1 vote
1 answer
2k views

square root of large number

I've got 2 int16_t numbers, say 388 and 10288, which are sensor readings from an accelerometer. I want to estimate the angle of the device on that, but seemingly there are some type overflow issues: ...
mike's user avatar
  • 347
1 vote
1 answer
309 views

Why use \" in arduino code?

While working with JSON parsing I noticed that the char type data string is written like this: char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\&...
Sohan Arafat's user avatar
1 vote
1 answer
379 views

Change data-type String

I'm currently working with an ESP8266 NodeMCU V3 and an IR transmitter breakout board. The module receives NEC IR commands trough a HTTP request and then sends them trough the IR transmitter. Getting ...
Rick's user avatar
  • 61
1 vote
1 answer
1k views

Int64_t aka long long acts as int32_t and overflows at 2^31

I have an int64_t variable. When I add another int64_t variable and convert it to a double to print it on the serial monitor, it acts as if it was a int32_t variable. This is the program: int64_t a =...
LukasFun's user avatar
  • 295
1 vote
2 answers
1k views

Why does Arduino IDE recommend storing 0-255 numbers in "byte" instead of "char"?

I bumped into byte datatype recently. My knowledge of C/C++ is shallow, but I know char and I couldn't find much on byte in C++ docs. I looked it up in the Arduino docs: It’s recommended to only ...
Arthur Tarasov's user avatar
1 vote
2 answers
529 views

SoftwareSerial receives beginning of data mangled

I'm using SoftwareSerial to communicate with a Sigfox module. Documentation for the read function assigns its value to a char. However using it I get mangled characters and also have read in other ...
Marki555's user avatar
  • 129
1 vote
1 answer
248 views

DS18B20 sending variable via Enthernet shield

I am trying to send temperature read from DS18B20 to a web server. I know two things: to read a temperature, and to send something to web server. What I don't know is how to convert float that ...
Milos Tosic's user avatar
1 vote
1 answer
3k views

Trouble with large numbers

Probably something stupid, but I can't figure out how to work with these large numbers, then cast the result (which will be small) to an integer. I keep getting negative numbers, which I think means I'...
JeffThompson's user avatar
1 vote
1 answer
624 views

How to know the data type of constant in arduino IDE?

For example constant of MSBFIRST, It used to as input in SPI.setBitOrder(MSBFIRST). But sadly i don't know the type data of MSBFIRST. This is applied to like SPI_MODE0 and other.
Muhammad Ikhwan Perwira's user avatar
1 vote
1 answer
420 views

What else is consuming Data Segment reported by avr-size?

I am facing a low memory available problem in arduino. I am compiling a big sketch for arduino mega 2560. Analysing a .elf file, the avr-size tool gives: text data bss dec hex filename ...
LeandroIP's user avatar
1 vote
1 answer
201 views

Data type explanation regarding analogRead of a photoresistor

This is a fundamental question - very new (1st post) and trying to learn. I have a photocell connected in series with a 10kOhm resistor between 5v & Gnd (to make a voltage divider) and the ...
bsmntdweller's user avatar
1 vote
1 answer
12k views

Can't create an array of type const char*

I have something being returned as a const char* and would like to save it to an array. I've tried this: const char* book[amtBooks] = ""; and get this error: error: array must be initialized with ...
Kara's user avatar
  • 37
1 vote
1 answer
9k views

Receiving hex data from terminal

I am trying to transmit serial data from terminal to Arduino and I want to reconfirm that its the same data. But I am not able to get the right answer. I want data to be HEX. I want to check only the ...
Gaurav Wagh's user avatar
1 vote
2 answers
267 views

Is this assignment valid or needs casting?

I have this assignment and while i don't get any error not even warning from the compiler. uint16_t Buffer[40000]; for (int n=0; n<40000 ; n++){ Buffer[n] = (0.99 * cos(((2.0*PI)/40000)*n); } ...
user1584421's user avatar
  • 1,405
1 vote
3 answers
1k views

How is a local variable address retrieved/returned inside the CPU of Arduino?

How is the address of a local variable retrieved in Arduino's ATMEGA328 micro-controller? Lets say somewhere inside the main we have lines as: int x = 5; //a variable declared and value of 5 stored ...
user16307's user avatar
  • 237
1 vote
2 answers
2k views

invalid conversion from 'char' to 'const char*'

My intention was to overload a function to handle optional parameters. My code looks like void functionA(const char *errorMsg) { functionA('0', errorMsg); } void functionA(char errorCode, const ...
CarbonMan's user avatar
  • 233