Crazy Makers

Faites-le vous même!

SOUTENEZ-NOUS!
Déjà 21 personnes nous ont soutenu. Nous vous en sommes très reconnaissants.
39.662921348315 %
PARTAGER SUR:
  • facebook
  • twitter
  • linkin
  • Google Plus
Logo CrazyMakers

Horloge RVB design pour moins de 10€

Réalisez une magnifique horloge RVB très design à l'aide d"un arduino pro mini, d'un RTC clock et de quelques mètres de filament 3D. Plus de renseignements sur la page du projet: http://www.crazy...



La culture maker (de l'anglais make, lit. faiseur) est une culture (ou sous-culture) contemporaine constituant une branche de la culture Do it yourself (DIY) (qu'on peut traduire en français par « faites-le vous-même »).          (Source: Wikipedia)
les "Crazy Makers" sont les plus fous et les plus passionnés des makers...

Catégorie

Arduino

Niveau de difficulté

temps nécessaire

5h

Horloge RVB design pour moins de 10€



Réalisez une magnifique horloge RVB très design à l'aide d"un arduino pro mini, d'un RTC clock et de quelques mètres de filament 3D.

Plus de renseignements sur la page du projet:
http://www.crazymakers.fr/videos-youtube/horloge_rvb_design_pour_moins_de_1ae-art-OxHgl5IvX5E.html

➕ INFORMATIONS: ➕
⁉️ Catégorie: Arduino.
⏰ Temps: 5h.
💪 Difficulté: 6/10.

🔌 NOTRE MATERIEL: 🔌
Caméra: Samsung Galaxy S7
SJCam SJ5000+ Wifi: https://goo.gl/giFhVV
Trépied: https://goo.gl/L7VCPD

⭐️ COMMENT NOUS AIDER ? ⭐️
❤️️ Soutenez-nous: http://www.crazymakers.fr/don-crazymakers.html
👍 Pensez à "liker" la vidéo.
🔗 Partagez nos vidéos et parlez de nous autour de vous

📡 NOUS SUIVRE OU NOUS CONTACTER: 📡
🌍 Site Internet: http://www.crazymakers.fr
✏️ Facebook: https://www.facebook.com/CrazyMakers/
🎥 Chaine Youtube: https://www.youtube.com/c/CrazyMakersFr



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(leds, NOMBRE_LEDS_TOTAL); // Initialisation de la librairie FastLED

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 déposés sur Youtube

Voir les commentaires du site

### Déposer un commentaire ###

Par: Olivier D le 2019-03-11T11:51:49.000Z
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 👍



Aucun Commentaire Posté pour le moment
Soyez le premier à poster un commentaire.

Vos commentaires seront lus par d'autres visiteurs et seront affichés en page d'accueil.
Merci de bien vouloir soigner la rédaction de vos messages.



Attention, suite aux nombreux spams et messages anonymes, en postant un commentaire,
comme sur un forum,votre ip:34.231.21.123 sera stockée sur notre base de données.
En postant un commentaire, vous recevrez un message à chaque fois qu'un utilisateur y répondra.