Horloge RVB design pour moins de 10âŹ
Voir toutes les vidéos en Electronique
Présentation
đ Horloge RGB design DIY avec Arduino Envie de rĂ©aliser une horloge originale et ultra design ? đ Dans ce projet, je vous montre comment fabriquer une horloge RGB Ă lâaide dâun Arduino Pro Mini, dâun âŠ
Ce que vous allez apprendre
Dans cette vidĂ©o, vous dĂ©couvrirez : Horloge RVB design pour moins de 10âŹ.
Niveau de difficulté : 
Description complĂšte
đ Horloge RGB design DIY avec Arduino
Envie de rĂ©aliser une horloge originale et ultra design ? đ
Dans ce projet, je vous montre comment fabriquer une horloge RGB Ă lâaide dâun Arduino Pro Mini, dâun module RTC et de quelques mĂštres de filament 3D đ„
đ§ Au programme :
* Conception du projet
* Assemblage électronique
* Intégration Arduino + RTC
* Impression 3D du boĂźtier
* Résultat final
đĄ Un projet complet mĂȘlant Ă©lectronique et impression 3D pour un rendu vraiment unique !
đ Plus dâinformations :
đ http://www.crazymakers.fr/videos-youtube/horloge_rvb_design_pour_moins_de_1ae-art-OxHgl5IvX5E.html
đ Une superbe piĂšce Ă exposer sur votre bureau ou dans votre atelier !
#Arduino #RGB #DIY #maker #electronique #3Dprinting
â INFORMATIONS: â
âïž CatĂ©gorie: Electronique.
â° Temps: 5h.
đȘ DifficultĂ©: 6/10.
âïž SOUTENIR CRAZYMAKERS âïž
â€ïž Soutenez-nous : http://www.crazymakers.fr/don-crazymakers.html
đ Like la vidĂ©o pour nous aider
đ Partage autour de toi (ça aide Ă©normĂ©ment !)
đ REJOINS LâAVENTURE CRAZYMAKERS đ
đ Site officiel : http://www.crazymakers.fr
đ Facebook : https://www.facebook.com/CrazyMakers/
đž Instagram : https://www.instagram.com/crazymakers_fr/
đŹ YouTube : https://www.youtube.com/c/CrazyMakersFr
đŹ TikTok : https://www.tiktok.com/@crazymakers.fr
đŹ UNE IDĂE OU UNE QUESTION ?
Contacte-nous en commentaire ou sur nos rĂ©seaux đ
đ„ Merci Ă tous đ
Le Circuit:
Un circuit extrĂȘmement simple utilisant un module RTC DS1302, un arduino pro mini, une rĂ©sistance 4,7 Kohms, une photorĂ©sistance, 4 micro switch et 42 modules leds RVB Diam. 10mm Noirs

Téléchargement:
Voici l'archive contenant les fichiers Ă imprimer, le fichier fritzing pour le raccordement et le programme.
Fichiers
Le Programme:
// Importation bibliothĂšques
#include ‹virtuabotixRTC.h›
#include ‹Time.h›
#include ‹Wire.h›
#include ‹EEPROM.h›
/*Définition Pinout du RTC DS1302 + Création du RTC
SCLK (Clock) -> 6, I/O (Data) -> 7, CE (reset) -> 8*/
virtuabotixRTC myRTC(6, 7, 8);
// Configuration FAST LED
#include "FastLED.h"
#define NOMBRE_LEDS_TOTAL 45 // Nombre de leds total
#define RTC_DATA_PIN 3 // Pin utilisée pour les données.
CRGB leds[NOMBRE_LEDS_TOTAL]; // Définition du tableau de couleurs RGB pour les LEDS.
byte SEGMENTS[10][7] = {{1,1,1,1,1,1,0}, // Digit 0
{0,1,1,0,0,0,0}, // Digit 1
{1,1,0,1,1,0,1}, // Digit 2
{1,1,1,1,0,0,1}, // Digit 3
{0,1,1,0,0,1,1}, // Digit 4
{1,0,1,1,0,1,1}, // Digit 5
{1,0,1,1,1,1,1}, // Digit 6
{1,1,1,0,0,0,0}, // Digit 7
{1,1,1,1,1,1,1}, // Digit 8
{1,1,1,1,0,1,1}}; // Digit 9
//Variables pour le choix de couleurs
uint32_t liste_couleurs[]={0x0000FF,0x00FF00,0xFF0000,0xFFCC00,0xFF6600,0x0099FF,0xFF0099};
int nombre_couleurs=7;
//Chargement de la derniére couleur sélectionnée.
int Num_Color=EEPROM.read(1);
//Variable pour horloge ou date
int MODE_AFFICHAGE=0; //0 horloge, 1 date
long delai_attente;
unsigned long ledColor; // Color used (in hex)
void setup(){
FastLED.addLeds
pinMode(5, INPUT_PULLUP); // BOUTON 1
pinMode(4, INPUT_PULLUP); // BOUTON 2
pinMode(11, INPUT_PULLUP); // BOUTON 3 HAUT
pinMode(10, INPUT_PULLUP); // BOUTON 3 BAS
}
void Luminosite_Auto()
{FastLED.setBrightness(map (analogRead(A3),10,1024,255,50));}
void RemplirArray(){
int cursor;
String minutes;
String heures;
String secondes;
long Now;
FastLED.clear();
ledColor = liste_couleurs[Num_Color];
if (MODE_AFFICHAGE==0) {
// ---------------------------- Récupération de l'heure du RTC et formatage ----------------------------
myRTC.updateTime(); //Lecture de l'heure sur le RTC
heures=String(myRTC.hours); minutes=String(myRTC.minutes); secondes=String(myRTC.seconds);
if (heures.length()==1){heures="0"+heures;} //Formatage de l'heure
if (minutes.length()==1){minutes="0"+minutes;} //Formatage des minutes
if (secondes.length()==1){secondes="0"+secondes;} //Formatage des secondes
Now=secondes.toInt()+minutes.toInt()*100+heures.toInt()*10000; //Création de l'heure brute en INT pour envoi sur Ruban
// ------------------------- Fin récupération de l'heure du RTC et formatage --------------------------
}
else
{
// ------------------------------- Récupération de la date et formatage -------------------------------
myRTC.updateTime(); //Lecture de la date sur le RTC
String heures=String(myRTC.hours); String minutes=String(myRTC.minutes); String secondes=String(myRTC.seconds); //Récupération de l'heure sur le RTC
String jour= String(myRTC.dayofmonth); String mois=String(myRTC.month); String annee=String(myRTC.year-2000);
if (jour.length()==1){jour="0"+jour;}
if (mois.length()==1){mois="0"+mois;} //Formatage des minutes
if (annee.length()==1){annee="0"+annee;} //Formatage des secondes
Now=annee.toInt()+mois.toInt()*100+jour.toInt()*10000; //Création de l'heure brute en INT pour envoi sur Ruban
// ----------------------------- Fin Récupération de la date et formatage -----------------------------
}
leds[14]=ledColor;
leds[15]=ledColor;
leds[30]=ledColor;
for(int i=1;i<=6;i++){
int Position_Chiffres[]={38,31,23,16,7,0}; //Position des différents chiffre sur la chaine de leds
int digit = Now % 10; // Récupération du dernier caractére de l'heure
cursor=Position_Chiffres[i-1]; //Positionnement du curseur sur la position du chiffre
for(int k=0; k<=6;k++){ //Remplissage du chiffre avec les valeurs des LEDS.
if (SEGMENTS[digit][k]== 1){leds[cursor]=ledColor;} else if (SEGMENTS[digit][k]==0){leds[cursor]=0x000000;}; //Remplissage des segments avec 0 ou couleur.
cursor ++;
};
Now /= 10; // Suppression du dernier caractére de l'heure Affiché
};
};
void Reglage() {
int button1 = digitalRead(5); // BOUTON 1
int button2 = digitalRead(4); // BOUTON 2
int button3 = digitalRead(11); // BOUTON 3 HAUT
int button4 = digitalRead(10); // BOUTON 3 BAS
int jour= myRTC.dayofmonth;
int mois=myRTC.month;
int annee=myRTC.year;
if (button1 == LOW || button2 == LOW|| button3==LOW || button4==LOW) {
delay(500);
myRTC.updateTime();
int hours = myRTC.hours;
int minutes = myRTC.minutes;
int seconds = myRTC.seconds;
if (button1 == LOW && button4==HIGH && MODE_AFFICHAGE==0) {if (hours == 23) {hours = 0;} else {hours += 1;}}
if (button1 == LOW && button4==LOW && MODE_AFFICHAGE==0) {if (hours == 0) {hours = 23;} else {hours -= 1;}}
if (button2 == LOW && button4==HIGH && MODE_AFFICHAGE==0) {if (minutes == 59) {minutes = 0;} else {minutes += 1;}}
if (button2 == LOW && button4==LOW && MODE_AFFICHAGE==0) {if (minutes == 0) {minutes = 59;} else {minutes -= 1;}}
if (button1 == LOW && button4==HIGH && MODE_AFFICHAGE==1) {if (jour == 31) {jour = 0;} else {jour += 1;}delai_attente=millis();}
if (button1 == LOW && button4==LOW && MODE_AFFICHAGE==1) {if (jour == 0) {jour = 31;} else {jour -= 1;}delai_attente=millis();}
if (button2 == LOW && button4==HIGH && MODE_AFFICHAGE==1) {if (mois == 12) {mois = 0;} else {mois += 1;}delai_attente=millis();}
if (button2 == LOW && button4==LOW && MODE_AFFICHAGE==1) {if (mois == 0) {mois = 12;} else {mois -= 1;}delai_attente=millis();}
if (button3 == LOW && button4==HIGH && MODE_AFFICHAGE==1) {annee += 1;MODE_AFFICHAGE=1;delai_attente=millis();}
if (button3 == LOW && button4==LOW && MODE_AFFICHAGE==1) {annee -= 1;MODE_AFFICHAGE=1;delai_attente=millis();}
if (button3 == LOW && MODE_AFFICHAGE==0) {MODE_AFFICHAGE=1;delai_attente=millis();}
if (button4 == LOW && MODE_AFFICHAGE==0 && button1==HIGH && button2==HIGH && button3==HIGH) {Num_Color+=1;if(Num_Color>=nombre_couleurs){Num_Color=0;}; EEPROM.write(1,Num_Color);}
myRTC.setDS1302Time(seconds, minutes, hours, 0, jour, mois, annee);
}
}
void loop() // Main loop
{
Reglage(); // Check to se if time is geting modified
RemplirArray(); // Get leds array with required configuration}
Luminosite_Auto();
FastLED.show(); // Display leds array
if (millis()>delai_attente+5000){MODE_AFFICHAGE=0;}
}
Commentaires YouTube
Déposer un commentaire sur YouTube
bonjour
je vient d'imprimer les pieces et souder les leds
il me reste plus qu'a compiler le programe
MAIS
je ne trouve pas les bibliotheque
merci a ceux qui pourront m'aider
PS:superb projet
Can Sir rtc ds3231 be used?
Bonjour, comme dĂ©jĂ demander d'aprĂšs ce que j'ai vu, mais il n'y avait pas de rĂ©ponse, c'est pour l'alimentation 5âV ou faut-il la placer sur le circuitâŻ? Afin de ne pas endommager le mini, merci de votre retour si possible. Autrement chouette montage bravo.
bonjour pourriez vous me dire ou vous branchez l alimentation et quelle voltage
Superbe, bravo ;)
Bravo, belle réalisation.
Peut-ĂȘtre un projet d'Ă©cran avec ces leds ?
Super boulot. Je vais tenter de reproduire. Dans le zip, il n'y a pas le stl du cache. Ou puis-je le trouver ?
Merci d'avance
Bonjour,
Merci pour le tutođ
Premier projet arduino pour moi
Je viens de télécharger les fichiers et commencer à imprimé les différents éléments
Le .stl pour le couvercle n'est pas prĂ©sent dans le dossier,dommage đ
L' autre petit problÚme vous expliqué qu'il faut alimenté les led sans passé par l'arduino,
Auriez vous un lien de schéma pour comprendre comment faire?
J'ai fait une demande d'adhĂ©sion Ă votre groupe sur Facebook il y a dĂ©jĂ un moment mais n'a toujours pas Ă©tĂ© validĂ© đ
D'avance merciđ
Un grand fan de votre chaĂźne đ
Salut l'ami, top ton horloge a fabriquer soi mĂȘme en ^lus pas un soir froid en hiver, j'adore. MĂ©lange d'impression 3D, Ă©lectrique, informatique programmation, montage, il y a de tout, chapeau. đ
Super, j'adore. Bravo.
Super boulot :)
Je ne connaissais pas ces Leds adressable en série. Hop un tour chez ALI et c'est dans le panier.
Bonjour. Super résultat.
OĂč as tu achetĂ© ton ruban led? Et a combien?
J'ai l'impression que ça revient plus cher que 10⏠avec les LE Ds et PLA. Enfin j'aurais imaginé plus.
Continu comme ça
Bye
GĂ©nial bravo je compte bien l'a rĂ©alisĂ© des que j'aurai installer mon imprimante 3d vraiment du beau travail !! đđđ
GĂ©nial bravo je compte bien l'a rĂ©alisĂ© des que j'aurai installer mon imprimante 3d vraiment du beau travail !! đđđ
tres sympa ça. par contre est ce qu'on ne voit pas trop que ce n'est qu'une led par cabochon qui eclaire ? est ce bien diffus comme eclairage ? sur la video on vois clairement le point de la led mais en vrai ce n'est peu etre pas pareil....
Merci pour ce tuto.
Tu l'évoques dans la vidéo, l'horloge du module RTC se décale avec le temps. J'ai entendu parler de 'quelques' secondes chaque jour. Mais ce quelques est un peu vide de sens (entre 2 secondes et 50 secondes par jour, il y a un monde). D'aprÚs ce que tu observes sur ton horloge, le décalage que tu constates est de combien ?
Si ce dĂ©calage est rĂ©el, je me demande aussi si il n'existe pas des modules RTC plus prĂ©cis (car c'est quand mĂȘme son boulot de nous donner l'heure, et pas le notre)... Ca serait quand mĂȘme dommage de devoir rĂ©cupĂ©rer l'heure sur un module GPS pour avoir une valeur qui ne se dĂ©rĂšgle pas. Je me demande d'ailleurs sur quoi les horloges "Radio Controlled" se calent (peut ĂȘtre y'a t'il moyen de s'en inspirer).
Un portage sur wemos serait idéal avec interrogation d'une sonde température extérieure se serait le top et WAF
super travail... une idée à lancer si un jour il y a une v2 et d'ajouter une appli bluetooth pour régler aussi depuis son tel.
Superbe horloge, moi j'adore .Ăa mĂ©lange le dessin 3d, l'Ă©lectronique et la programmation, enfin tout ce que j'aime.
Bravo.
Effectivement, une bien sublime horloge.
JâespĂšre que les changements perso sont positifs.
Merci pour le partage.