Arduino: Serial. Print a Multiple-Character Element

I need to print 4-bit long numbers, these numbers are Binary numbers frome 0 to 16 (0000, 0001, 0010, ...).

PROBLEMS:

Considering this code:

char array[] = {'0000', '0001', '0010', '0011'};
int i;

void setup() {
  Serial.begin(9600); 
}

void loop() {
  while (i < 4){
    Serial.println(array[i]);
    i++;
  }
}

The serial monitor outputs:

0
1
0
1

My expected output is:

0000
0001
0010
0011

It seems that only the first "character" of each element of the array is read.

QUESTION: How can I print the entirety of each element like in my expected output?

After some reasearch, I found this:

Arduino serial print

which then refers to using PROGMEM but I'm not sure if this is what I need or if there is a simpler solution to my problem.

3

1 Answer

As mentioned in the comments, don't use multi-character constants (the ones you used, with single quotes); they might kill puppies. Single quotes are for character constants, like 'a'.

You can use strings (with double quotes), or real binary numbers without trickery; the latter will print without leading zeros.

This code example does both, so pick what you need:

const char* array1[] = {"0000", "0001", "0010", "0011"}; // strings
uint8_t array2[] = {0b000, 0b0001, 0b0010, 0b0011};      // binary numbers
int arraySize = sizeof(array1) / sizeof(array1[0]);
    
void setup() {
  Serial.begin(9600);
  while (!Serial);
    
  Serial.println("Print the strings:");  
  int i = 0;
  while (i < arraySize){
    Serial.println(array1[i]);
    i++;
  }
      
  Serial.println("\nPrint the binary numbers (note: no leading zeroes):");
  i = 0;
  while (i < arraySize){
    Serial.println(array2[i], BIN);
    i++;
  }
      
}
    
void loop() {
}
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

James H. Sterling

James H. Sterling

Environmental Science & Climate Journalist

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.

Share this article
Twitter Facebook Pinterest