Introduction: Geek Clock: FiBiNo Fibonacci Binary Arduino Clock

Picture of Geek Clock: FiBiNo Fibonacci Binary Arduino Clock

I am a "lover" of watches and, when I saw "The Fibonacci Clock", I wanted to make one.

The "FiBiNo Clock" (Fibonacci Binary ArduiNo Clock) is a clock that displays the hours with Fibonacci method, while the minutes and the seconds with the Binary system and you have to be a geek to figure out what time it is.

To facilitate those who do not have time to waste on complicated binary, I also put a display that gives me the time and date.

As in my instructable I also added three buttons to adjust the time and date.

Step 1: Material

Picture of Material
  • Arduino/Genuino Mega 2560
  • RTC DS1307
  • 3 buttons
  • 1 x LCD 16x2 I2c
  • 1 x Stripboard
  • multi-layer plywood panel 6 mm
  • planed beech slats 10x10 mm
  • 24 leds
    • 12 Yellow
    • 5 Red
    • 3 Green
    • 2 Blue
    • 2 White
  • resistances:
    • 1 x 220Ω
    • 1 x 370 Ω
    • 6 x 10KΩ
    • 17 x 470 Ω
  • capacitors:
    • 1 x 100 μf
    • 1 x 0,1pF
  • 1 x diode D4001
  • 1 x voltage regulator L7805
  • 1 x voltage regulator LM317
  • 3 x transisor NPN BC547
  • electric wires
  • Dupont connector 2.54mm
  • Female strip connectors 2,54mm
  • screws M3
  • dice m3
  • semitransparent plexiglass
  • Switch
  • DC connector 2.1 / 5.5
  • self-tapping screws
  • glue

Step 2: Numb3rs Fibonacci - Binary

Picture of Numb3rs Fibonacci - Binary

Fibonacci was an Italian mathematician who lived in the the XIII century in Pisa, to resolve a question of calculation (A mathematical law to describe the growth of a rabbit-breeding) has entered into a series of numbers, in fact the "Fibonacci sequence":

A sequence of positive integers in which each number is the sum of the two previous numbers.

1, 1, 2, 3, 5, 8, 13, 21, 34….

To calculate What time is it, just sum the numbers lit.

The binary number is a base-2 number system with only 0 and 1.

In a binary figure, each number has a value with an exponent that depends on the position in which it is located.

Starting from the first issue on the right, the exponent is 0, the second is 1, the third is 2, etc., In so doing, each LED assumes a fixed value which together to others, gives me the minutes and the seconds.

Position:

  • 6 = 2⁵ = 32
  • 5 = 2⁴ = 16
  • 4 = 2³ = 8
  • 3 = 2² = 4
  • 2 = 2¹ = 2
  • 1 = 2º = 1

Example:

•○ ○ • • • = 100111 = 1x2⁵ + 0x2⁴ + 0x2³ +1x2² + 1x2¹ + 1x2º = 32 + 0 + 0 + 4 + 2 + 1 = 39

As mentioned before...things to Geek

Step 3: Case

Picture of Case

I'm not a good carpenter and I have not the appropriate equipment, but with what I had I made a case "artistic".

I used the plywood panel 6 mm and the laths 10 mm,for cutting I used for a metal cutting saw and an electric sander

I used to paste the "Loctite" quick-setting glue.

Dimensions (mm):

length 170; height 150; depth 100

To facilitate the assembly and the possible disassembly clock, I glued inside of the strips to create the grooves where to put the Arduino and the circuit board (step 4)

In the front panel must drill the holes for LED 5 mm, in the top panel the holes for the buttons (depending on the size of the button) and the groove for the LCD screen (this also depends on its size), in the right side panel, the slot for the Arduino USB socket, in the rear panel the holes for the switch and the power connector

Step 4: The Circuit Board

Picture of The Circuit Board

To facilitate links with arduino I realized a circuit with a "Stripboard"

The novice can also leave on breadboard but it seems a good reason to learn to weld (guide "how to")

As you can see, I added a voltage regulator (LM 317) which, together with the resistances R1 and R2, provides me 3.3 volts, in order to implement the project with other components (ESP8266)

Step 5: Electrical Assembly

Picture of Electrical Assembly

Connect the cathode of all the LEDs to the ground.

Welded, to each anode, an electric wire connected with a Dupont female connector 2.54 mm.

Solder the wires to the buttons, connected with the connector and Dupont, very patiently, following the diagram, connect the wires to the board and then to the Arduino board.

It is preferable to use wires of various colors and leave long, doing so is easier mounting.

Before closing the Case, make sure everything works.

Step 6: Arduino Code

Picture of Arduino Code

Link:

To view the time Fibonacci, the code is simple enough:

if (timeOra==1 || timeOra==13){ digitalWrite(hfib1a, HIGH);} if (timeOra==2 || timeOra==14){ digitalWrite(hfib2, HIGH);} ecc.

To display the time in a binary system, the method is a bit 'more complex:

  • const byte numPinm = 6; //numbers pin minutes
  • const byte numPins = 6; //numbers pin seconds
  • byte pinm[] = {27, 28, 29, 30, 31, 32 };// pin binary minutes
  • byte pins[] = {33, 34, 35, 36, 37, 38};// pin binary seconds
  • for(int i = 0; i < numPins; i++) { pinMode(pins[i], OUTPUT); } // set the seconds pin as an output
  • for(int i = 0; i < numPinm; i++) { pinMode(pinm[i], OUTPUT); } //set the minutes pin as an output
  • String binNumber = String(timeSecond, BIN);//formats the seconds in binary
  • int binLength = binNumber.length(); //stores the number
  • if(timeSecond > 0) { for(int i = 0, x = 1; i < binLength; i++, x+=2)//for statement
  • if(binNumber[i] == '0') state = LOW; //if the binary number is 0, the state is low
  • if(binNumber[i] == '1') state = HIGH; //if the binary number is 1, the state is high
  • digitalWrite(pins[i] + binLength- x, state); //bring the state to the corresponding LED

The same also applies to the minutes

Step 7: The Front Panel in a Semi Transparent Plexiglass

Picture of The Front Panel in a Semi Transparent Plexiglass

I used a purchased panel to Brico Center 0.3 mm thick

It was cut with a hacksaw and designed with a permanent marker (the ones to write the CDs).

Step 8: Final

Picture of Final

Since too much like that of our friend, I preferred not to put the front panel.

The choice is yours whether to use.

Comments

paapacj (author)2017-07-01

can we use arduino UNO?

and where all LED are connected??

please help

tittiamo68 (author)paapacj2017-07-02

I used a
MEGA because they were busy with 17 pin for the led, 3 pin for the buttons and
2 pin for the display.

Arduino UNO
has 14 pin digital and 6 analog, if you remove the time adjustment buttons, you
can use UNO

You can
find where to connect the LEDs in both the Fritzing and Arduino code from line
123 to line 134 line

Ciao

Tiziano

tittiamo68 (author)2017-01-03

You're right and I beg your pardon

The pin sequence of the hours is reversed.

I corrected the Arduino code

Ciao

Tiziano

ptjj999 (author)tittiamo682017-01-03

Ty Tiziano. Just wanted to clarify before I start the build. This is a great instructable. ?

ptjj999 (author)2017-01-03

I have a question. In the breadboard diagram the Hours connection seem to be reversed to the Sketch. E.g Hour 1a is Arduino 26 on the drawing but 22 in the sketch. Hour 5 Is 22 on the drawing but 26 in the sketch.

Is the drawing reversed for the hours connections?

Regards

Terry

tomatoskins (author)2016-11-09

This is beautifully executed! Thank you so much for sharing this wonderfully geeky clock!

tittiamo68 (author)tomatoskins2016-12-04

Thank you very much

ptjj999 (author)2016-12-04

A true thing of beauty, my next project. It will place alongside my Word Clock and my Binary Clock, Main aim is to confuse my family lol. A lovely instructable :)

tittiamo68 (author)ptjj9992016-12-04

Thank you very much

I am really glad

GianlucaG1 (author)2016-11-13

Uhmm... Do you know that with port manipulation writing a decimal value on a port you obtain automatically a binary conversion?... :-)

About This Instructable

8,558views

59favorites

License:

More by tittiamo68:ArduRadio AlarmClockLaura: Emotional Compass LampBright Ball IOT
Add instructable to: