<--
Home
Deze 12 segment Fibonacciklok is een variatie op de
Fibonaccistokklok.
De elektronica en aansluitingen staan bij de bovenstaande link beschreven.
Deze pagina is een registratie van de gebruikte onderdelen en misschien een
inspiratiebron.
Deze klok werd uitgerust met:
Twaalf SK6812 RGBW LEDs,
een HM-10 Bluetooth module,
een MAX7219 display om de tijd digitaal te kunnen lezen,
een ZS-042 DS3231 RTC tijdmodule
en een KY-040 rotary encoder voor noodgevallen om de klok te bedienen
De software bevat functionaliteit voor een HC-12 transceiver,
een 3x4 membrane keypad of
een one wirekey 3x4 membrane
keypad
Zaag de blokjes met hoeken van 30 graden. Zaag een sleuf met de dikte van het plexiglas in de buitenring aan de binnenkant. |
|
Plak afplaktape aan de buitenkant van beide ringen keer ze om en
breng houtlijm aan op de schuine kanten. Verlijm de buitenring in twee helften. De binnenring kan helemaal verlijmt worden |
Vouw de ringen dicht en verwijder overtollig lijm. |
Zaag het plexiglas op maat. | Ik gebruikte mm-papier om de vorm op maat te krijgen |
Tussen de LEDs worden schotten van geschuimd PVC wit 2 MM RAL 9003 geplaatst. | |
Schilder de kast en zet alles in elkaar. | |
Met een zwarte viltstift of smal zwart tape kan het plexiglas boven de schotjes zwart worden gemaakt voor een mooi accent | |
De onderdelen kunnen direct aan een Arduino Nano worden
gesoldeerd of als er voldoende ruimte is op een printplaatje. In het programma kan gevonden worden waar de onderdelen worden aangesloten In het kort: De LEDs op Digitale pin D5 De lichtsensor op analoge poort A2 De RTC-tijdmodule op analoge pin A4 de SDA lijn en op A5 de SCL aansluiting De Bluetooth module kan op pin 0 en 1 of pin 6 en 7 worden aangesloten. De pin 6 en 7 keuze heeft als voordeel dat de Bluetooth-module met programmeren kan blijven zitten maar er is dan een extra bibliotheek nodig. Namelijk SoftwareSerial. Als de Bluetooth-module op poort 0 en 1 is aangesloten stoort deze bij het uploaden van een programma in de Arduino. Je zal hem dan tijdelijk moeten loshalen als een programm in de Arduino wordt geladen. //-------------------------------------------- // PIN Assigments //-------------------------------------------- enum DigitalPinAssignments { #ifdef STICKCLOCK EmptyD00 = 0, // EmptyD00 EmptyD01 = 1, // EmptyD01 EncoderPow = 2, // give power to Encoder clearButton = 3, // switch (labeled SW on decoder) encoderPinA = 4, // right (labeled DT on decoder) encoderPinB = 5, // left (labeled CLK on decoder) LED_PIN = 11, // Pin to control colour SK6812 WS2812 LEDs #endif //STICKCLOCK #ifdef PCBCLOCK EmptyD02 = 2, // EmptyD02 encoderPinA = 3, // right (labeled DT on Rotary decoder) clearButton = 4, // switch (labeled SW on Rotary decoder) LED_PIN = 5, // Pin to control colour SK6812 WS2812 LEDs encoderPinB = 8, // left (labeled CLK on Rotary decoder) #endif //PCBCLOCK #ifdef BTMOD_PIN6_PIN7 BT_TX = 6, // Bluetooth TX BT_RX = 7, // Bluetooth RX #endif //BTMOD_PIN6_PIN7 #ifdef MAX7219 MAX7219CLK = 10, // MAX7219CLK MAX7219CS = 11, // MAX7219CS MAX7219DataIn= 12, // MAX7219DataIn #endif //MAX7219 HeartbeatLED = 9, // EmptyD09 secondsPin = 13}; // if set to 13 led will blink on board SCK // Analogue hardware constants ---- enum AnaloguePinAssignments { EmptyA0 = 0, // EmptyA0 EmptyA1 = 1, // EmptyA1 PhotoCellPin = 2, // LDR pin OneWirePin = 3, // OneWire Keypad SDA_pin = 4, // SDA pin geel SCL_pin = 5, // SCL pin groen EmptyA6 = 6, // EmptyA6 EmptyA7 = 7}; // EmptyA7 |
Als de klok op een seriele poort wordt aangesloten wordt in een serieel terminal programma het menu getoond.
" D D14042020 is date 14 April 2020", "E Normal, Extreme or Ultimate mode", "F Fibonacci or Chrono display", "L (L5) Min light intensity (1-255)", "M (M90)Max light intensity (1-250)", "N (N2208)Turn On/OFF LEDs between Nhhhh", "P (P1) to select a palette (0-9)", "I for this info", "R Reset to default settings", "T T031500 is quarter past three am", "W Test LDR reading every second", "X (X50) Demo mode. ms delay (0-9999)",
De laagste lichtintensiteit dat naar de klok wordt gestuurd kan met L worden
ingesteld.
De klok gaat dan niet zachter branden dan die waarde als het compleet donker is.
L5 is een mooie waarde.
Met M kan de maximale sterkte worden ingesteld. Soms is de klok te fel of te
zwak voor de plek waar hij staat.
M80 is de default waarde.
Met P kan de kleurpalette worden gekozen. P1 is standaard.
Tijd en datum instellen gaat met de T of D optie.
Door invoer van de letter F kan de klok als een analoge klok of Fibonacci stand worden gezet.
Met E invoeren komt de klok in Extreme stand en verspringt elke 5 seconde
groen vlak verspringen,
met de volgende invoer van E komt de klok in de Ultimate stand.
Dan wordt elke seconde het aantal minuten met paarse vlakken getoond.
Je kan dan de klok tot op 5 seconde nauwkeurig aflezen.
Deze opties werken alleen goed als de klok in chrono stand met F is gezet.
Na invoer van R wordt de klok in zijn oorspronkelijke waarden teruggezet .
Bijlagen
Deze en nieuwere versies zijn beschikbaar op Github
2 november 2021,
18 maart 2021
Mail: Ed Nieuwenhuys