Taula de continguts:

Rellotge LED mitjançant Neopíxels: 4 passos (amb imatges)
Rellotge LED mitjançant Neopíxels: 4 passos (amb imatges)

Vídeo: Rellotge LED mitjançant Neopíxels: 4 passos (amb imatges)

Vídeo: Rellotge LED mitjançant Neopíxels: 4 passos (amb imatges)
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Desembre
Anonim
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels
Rellotge LED mitjançant Neopíxels

Benvingut al meu instructiu sobre com fer un rellotge LED amb 60 Neopíxels.

Trobareu 3 fitxers PDF adjunts per als segments del rellotge, un altre per a la base i, finalment, un model per ajudar a enganxar les seccions.

Per completar-ho, necessitareu el següent

  • L'anell de 60 neopíxels es distribueix en 4 quarts. cerca de "ws2812 ring 60" (12,00 £)
  • Cerca RTC del "mòdul DS3231" (2,50 £)
  • Arduino Nano (4 £)
  • Fusta contraxapada de 3 mm.
  • trossos de filferro. espero que en tingueu algun per aquí?
  • Unitat d'alimentació USB de 5v. El tipus que els vostres fills hauran destruït el connector.

A continuació es mostren els elements alimentats per bateria Lipo, però després de provar-los, el rellotge va consumir massa energia, de manera que es va deixar caure la bateria en favor d’una alimentació USB de xarxa.

  • cerca del convertidor dc-dc "boost converter" (3 £)
  • Cercar circuit de càrrega TP4056 "tp4056" (2 £)
  • Cèl·lula única LiPo 1000Mah. cerca "1000mah lipo 3.7" O "503450 lipo" (8,00 £)

El número de LiPo és 503450 i pot ser bo saber que això significa 50 mm de llarg 34 mm d'ample i 5,0 de profunditat.

Pas 1: Els bits de fusta

Els bits de fusta
Els bits de fusta
Els bits de fusta
Els bits de fusta
Els bits de fusta
Els bits de fusta

Hauríeu de poder veure a les imatges que he imprès el disseny i enganxar-hi també la fusta contraxapada. El que podria no ser obvi és que he tallat 3 seccions alhora i que la secció inferior es talla primer al voltant del perímetre, després se suprimeix una secció (de la part posterior) i després es va retallar el forat a les dues seccions restants i després una altra secció. es va retirar deixant només el bit frontal que quedava i es va tallar la ranura per als cables.

Quan s'hagin retallat tots els bits, primer haureu de comprovar com encaixen tots i després enganxar-los tots. Vaig construir les 3 capes sobre un pla del rellotge per assegurar-me que tot fos correctament circular. Assegureu-vos també d’obtenir els bits inferiors en l’orientació correcta i que la llesca central completa estigui muntada cap per avall de manera que pugueu sobre les juntes.

Els forats de les seccions anteriors permeten que les juntes soldades de les cambres s’asseguin. La secció inferior permet passar els cables.

La sèrie d’imatges també mostra com s’ajunta la base.

Pas 2: Cablatge de l'anell LED

Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED
Cablatge de l'anell LED

No hi ha moltes coses a dir sobre aquest pas, però per si de cas no heu utilitzat una tira de WS2812LED, són intel·ligents, de manera que cadascú té una entrada i sortida de dades. Als arcs de 15 LED, el PCB gestiona totes les connexions, però quan arribeu a unir-vos a les seccions heu de fer les connexions d'alimentació i les dades. No es poden equivocar les connexions perquè estan en un cercle, però, quan hagueu acabat el cercle, haureu de perdre un enllaç a les dades IN / OUT per permetre connectar els cables a les dades IN. On els cables es connectin a les dades IN serà el primer LED o, ja que està correctament numerat ZERO.

Em vaig preguntar com era la millor manera de fixar l'anell dels LED a l'anell de fusta? però al final vaig decidir utilitzar un cable que s’acostava a la circumferència saltant-se un LED cada vegada.

Pas 3: Cablatge de l'Arduino Nano i l'alimentació

Cablatge de l'Arduino Nano i l'alimentació
Cablatge de l'Arduino Nano i l'alimentació
Cablatge de l'Arduino Nano i Power
Cablatge de l'Arduino Nano i Power
Cablatge de l'Arduino Nano i Power
Cablatge de l'Arduino Nano i Power

Inicialment vaig decidir utilitzar un LiPo en aquest projecte, però quan el vaig provar la bateria es va esgotar durant la nit. Al principi vaig pensar que la bateria podria haver estat duff, així que vaig mesurar el corrent i vaig descobrir que el circuit dibuixava 73 mA, cosa que significa que a la bateria seria més. De fet, vaig mesurar el corrent a la bateria (abans del convertidor d’augment) i vaig descobrir que tenia més de 110 mA. Per tant, era evident que aquest rellotge no funcionaria amb bateria.

Així que, en canvi, trio utilitzar un carregador USB de 5V. Acostumo a tenir molts carregadors USB morts a causa que els connectors reben abús de dos nens petits.

Per tant, com que fem servir LEDs WS2812, només tenim 3 connexions a l’Arduino Nano.

  • Potència
  • Terra
  • Dades IN. De taronja a D2 a Nano

A continuació, tenim el RTC, que només té 4 cables.

  • Potència 5 volts
  • Terra
  • SCL (rellotge I2C) de color blau a A5 a Nano
  • SDA (dades I2C) de color groc a A4 a Nano

Per últim, necessitem alimentació i això passa al terminal de 5 V de potència del Nano.

Pas 4: el programa

M’agrada molt programar, no sóc molt bo en això.

Problema 1

Els segons i els minuts es presenten correctament com un número del 0 al 59. No obstant això, el primer LED i, per tant, el zero es troba a la part inferior. Per tant, calia corregir-ho.

void correctPos (int A)

{if (A 30) {A = A - 31; }} temp = A; }

Problema 2

Vaig intentar esborrar tots els LED abans de mostrar la nova posició, però això va provocar que parpellegessin. Així que vaig decidir activar el següent LED i després apagar l’anterior. Ha funcionat molt bé ?? NOPE perquè si la nova posició fos zero, s’intentaria desactivar -1. de manera que es va tractar al mateix temps.

void deletePrevious (int B)

// suprimiu el led anterior, si era zero llavors // apagueu 59 sinó resteu 1 // i desactiveu-lo. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // all off}}

Problema 3

Fer l’anterior va funcionar molt bé fins que la nova segona posició va quedar al lloc del minut vell. El que significava que el minut que s’actualitzava després dels segons l’apagava. El mateix per a l’hora / minut

if (segons == min-1)

{strip.setPixelColor (mins-1, 0, 30, 0); }

Problema 4

Les coses comencen a tenir un bon aspecte, així que barregem els colors quan caiguin en la mateixa posició?

if (min == segons)

{strip.setPixelColor (mins, 15, 13, 0); // verd i vermell per fer groc. }

Problema 5

Les hores comencen en format de 24 hores. per tant, primer cal corregir-ho

si (hores> 12)

{hores = hores -12; }

Problema 6

I no oblidem que hi ha 24 hores al dia i tinc 60 LED. Fàcil, realment ho crida per 5

hores = hores * 5;

Problema 7

Un cop fet això, ara tenim l’hora de saltar 4 LEDs, quedaria molt millor si s’utilitzessin tots els LEDs i mostressin correctament fraccions d’una hora? Una vegada més, això va ser una solució senzilla. Acabo d'afegir el nombre original de minuts dividit per 12 a les hores.

hores = hores + (addMin / 12);

Problema 8

Quan el led o l'hora del minut es troba a la part inferior, els segons desapareixen durant un segon abans.

hores = if (min == 0)

{if (segons == 59) {strip.setPixelColor (59, 0, 30, 0); // verd}} if (hores == 0) {if (segons == 59) {strip.setPixelColor (59, 0, 30, 0); // verd}}

Problema 9

Configuració de l'hora. Vaig decidir mantenir aquesta compilació molt senzilla, de manera que no vaig incloure botons per ajustar el temps. Per tant, només es tracta de connectar el rellotge a l’ordinador i carregar-ne una altra. Simplement descomenteu la secció següent i configureu el temps que necessiteu i, a continuació, carregueu el programa. Un cop correcte torneu a comentar la línia i torneu a enviar el programa, en cas contrari, si perdeu energia, tornareu a executar la configuració i carregareu el temps anterior.

// 12 d’abril de 2020 a les 23:20 hores trucaríeu a:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Recomanat: