Alright, there are numerous problems with your code.
2) In your loop() you have two different functions. Although they are both called blink_binary_number, they are overloaded.
I don't follow. My blink_binary_number is defined once. It is not overloaded. I do call the function several times however.
3) do not assign a variable in your parameters list of a method, whether it works or not, its a convention. You just don't do that.
So defaults, by convention, are generally frowned on? I did try to search for Arduino sketch conventions but didn't pull anything related to it. I think in this case I am going to remove the default assignment since it does not add to the program in anyway and takes away the readability. Though based on your comment it is not clear why the Arduino community adopts avoiding defaults by convention.
These points posted do not address why pins 5 through 7 won't blink.
4) Your digital write is funky, when you call your method, you are sending a LOW with it. The problem is, in your blink_binary_number method, it doesn't do anything unless the pin is already HIGH. So even if you sent the method a HIGH, if the pin wasn't already HIGH, it wouldn't do a single thing.
I don't follow. The method as is currently does not behave this way. Keep in mind I have spent all of about 2 hours with Arduino sketching so it is possible I am not understanding it but I don't think that method is behaving as your describe above.
For my first hello world sketch I used this method to create a binary counter that would count up to 31(I only had 5 pins at the time). Unfortunately I did not use pins 5-7 so I don't know if I would have the same problem or not.
Anyhow the blink_binary_number worked as intended. I got some fantastic feedback from Nick Gammon
when setting it up. Here is a video
of the counter in action. Here is the actual sketch
itself. So we know the function is working to an extent.
Your blink_binary_number method is underdeveloped.
Yes I think you are right. Is it wise to send a LOW to pins that are already turned off? Is there any harm in this? If not I could send LOW to each PIN who represents the binary 0 in the binary array and I could send HIGH to each pin that represents the binary 1. When the number changes the function will just turn off the pins that need to be off and turn on the pins that need to be on. I would only need to call the function once per loop.
You cannot do what you are trying to do with just four lines of code.
What am I trying to do with just 4 lines of code? Do tell.