Berlin horloge, Arduino Nano, DS1307 horloge en temps réel. Registre à décalage 8 bits 74HC595N. (3 / 5 étapes)

Étape 3: L’électronique et le programme a expliqué

Comme l’a expliqué que j’utilise un Arduino Nano (ou clone) Maj lecteur 3 * 595 enregistre et un CCF relié à l’I2C pour garder le temps. À ce stade, je vais essayer et expliquer les parties plus difficiles du code, car il n’est pas une évidence pour travailler, (bien que facile une fois que vous s’en sortir).

Le temps est fourni par l’horloge en temps réel comme secondes 0-59, minutes 0-59 et heures 0-23. Parce que l’horloge est basée sur 5 que vous devez diviser les minutes (et heures) par 5 tout d’abord ce qui vous donnera la ligne « 5 minutes » (second
un up) si vous vous entraînez ensuite le module de calcul alors que vous donne le reste qui est le 0-4 minutes (rentabilité).

c'est-à-dire de minutes = 48

48/5 = 9 (stocker en tant que minFives)

48 %5 = 3 (stocker en tant que minUnits)

9 s’allume sur la deuxième rangée pendant 45 minutes puis 3 lumières sur la rangée du bas pendant 3 minutes ajouter les deux ensemble vous donne 48.

rester avec le procès-verbal que le problème suivant est le 595 Maj s’inscrire ne détient que 8 bits et j’ai besoin d’utiliser un complètement et ensuite 3 « bits » d’un autre registre.

Donc pour faire ce coup d’oeil à la minFives (0-11) si le nombre est supérieur à 7 puis diviser la valeur en deux valeurs.

c'est-à-dire que si (minFives > 7)

Le prochain numéro doit afficher toutes les lumières et pas seulement le nombre réel, donc dans l’exemple ci-dessus (48), vous avez 3 sur la rangée du bas et 9 lumières sur la deuxième rangée. Afin de corriger cela pour la rangée du bas, vous avez besoin allumer la lumière 1 et 2 la lumière et lumière 3, ce qui signifie un nombre de 7 (total 1 + 2 + 4) doit être envoyé au registre série. Je suis sûr qu’il y a plusieurs façons de le faire, mais j’ai choisi d’exécuter une boucle pour le nombre donné et pour chaque boucle double le nombre d’index et l’ajouter au fichier. (voir ci-dessous pour la fonction pow() comme solution de rechange)

c'est-à-dire

J’espère que vous pouvez travailler ce point, mais fondamentalement vous obtiendrez le nombre correct requis des LEDs allumés pendant un nombre donné d’entrée.

c'est-à-dire 1 = 1, 2 = 3, 3 = 7, 4 = 15, 5 = 31

J’ai réalisé après que j’ai écrit ce que je pourrais utiliser la fonction pow() donc je vais faire un essai et voir si son plus efficace. exemple, entrée 6 (pow(2,6)) -1 = 63

(J’ai essayé et il n’ya vraiment pas beaucoup de différence dans le temps, les deux sont vraiment rapides. Je suppose que la fonction pow() semble plus soignée, mais j’ai coincé avec la fonction ci-dessus)

Articles Liés

Arduino Nano : DS1307 en temps réel Clock(RTC) avec Visuino

Arduino Nano : DS1307 en temps réel Clock(RTC) avec Visuino

DS1307 horloge en temps réel sont des modules de RTC I2C faible coûts largement disponibles. Ils viennent avec une horloge et une petite batterie et lorsqu'il est connecté à l'Arduino, peuvent garder trace de temps réel même si la carte Arduino est h
Arduino Nano - tutoriel accéléromètre numérique 3 axes 12 bits/8 bits MMA8452Q

Arduino Nano - tutoriel accéléromètre numérique 3 axes 12 bits/8 bits MMA8452Q

Le MMA8452Q est un accéléromètre intelligente, faible puissance, trois axes, capacitif, micro-usinés avec une résolution de 12 bits. Options programmables d'utilisateur flexible sont fournies avec l'aide des fonctions incorporées dans l'accéléromètre
Arduino 8 * 8 Led Matrix pilote avec des registres à décalage de 2 * 74HC595

Arduino 8 * 8 Led Matrix pilote avec des registres à décalage de 2 * 74HC595

J'ai acheté une matrice de 8 x 8 Led y compris une carte de conducteur avec une puce MAX7219CNG. Malheureusement cette puce ne fonctionnait pas correctement. J'ai donc décidé de construire mon propre pilote avec l'aide de 2 registres à décalage 74HC5
En utilisant une LED Dot Matrix avec un Arduino et un registre à décalage

En utilisant une LED Dot Matrix avec un Arduino et un registre à décalage

The Siemens DLO7135 Dot matrix LED est un étonnant morceau de l'optoélectronique. Il a présenté comme un 5 x 7 matricielle affichage Intelligent (r) avec mémoire/décodeur/conducteur. Avec cette mémoire, il a obtenu un affichage de ASCII caractères 96
Le registre à décalage 74HC164 et votre Arduino

Le registre à décalage 74HC164 et votre Arduino

registres à décalage sont une partie très importante de la logique numérique, elles agissent comme de la colle entre les mondes parallèles et séries. Ils réduisent le nombre de fils, broche utiliser et même aider à lever la charge hors de votre cpu e
Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Il s'agit de mon premier espoir instructable, que vous l'aimerez. J'ai été jouer avec LEDs pour un certain temps et j'ai réalisé que je suis assez bien limitée avec broches de l'Arduino et ne peut pas faire des projets énormes qui exige beaucoup d'ép
RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

Registre Write est un exemple de programme pour prolonger les sorties de l'Arduino à l'aide d'un registre à décalage.J'ai écrit un simple croquis qu'utilisera 3 sorties de l'Arduino pour conduire le registre à décalage.J'ai écrit ce que je ne pouvais
Arduino Nano et Visuino: 7 segments affichage horloge avec MAX7219 et DS1307 en temps réel Clock(RTC)

Arduino Nano et Visuino: 7 segments affichage horloge avec MAX7219 et DS1307 en temps réel Clock(RTC)

DS1307 horloge en temps réel sont des modules de RTC I2C faible coûts largement disponibles. Ils viennent avec une horloge et une petite batterie et lorsqu'il est connecté à l'Arduino, peuvent garder trace de temps réel même si la carte Arduino est h
Horloge en temps réel de l’Arduino (DS1307)

Horloge en temps réel de l’Arduino (DS1307)

Cette fois-ci j'ai va vous montrer comment faire un module pour laisser l'Arduino, Découvrez le temps. Bien qu'il existe de nombreux tutoriels pour le module horloge temps réel j'ai voulu faire ma version de ce module entièrement axé sur la soudure é
Horloge en temps réel de DS3231 Arduino avec couleur TFT

Horloge en temps réel de DS3231 Arduino avec couleur TFT

Construction d'une horloge temps réel avec une couleur écran TFT est extrêmement facile à utiliser Arduino. L'afficheur indique l'heure, la date, la température de migrer le long de la température MAX et MIN qu'il a mesuré. Nous allons construire !Et
Horloge en temps réel Arduino MAX7219

Horloge en temps réel Arduino MAX7219

Arduino-MAX7219-7-Segment-Led-ClockCette horloge en temps réel est basée sur la puce RTC DS32317 segments conduit construction (type de cathode commune)Panneau d'affichage est une coutume faite 7 segments led (vous pouvez utiliser n'importe quel LED
Arduino Nano avec DHT11, RTC DS1307 et LCD 16 x 2

Arduino Nano avec DHT11, RTC DS1307 et LCD 16 x 2

Salut. Il s'agit de mon premier Instructable, alors j'espère que ce sera OK.C'est mon projet Arduino Nano avec écran LCD avec I2C, RTC DS1307 et capteur DHT11.Pour ce projet, j'ai utilisé Arduino Nano, RTC DS1307 horloge board, Conseil de capteur DHT
12hr Binary Clock, heures et minutes seulement, RTC DS1307, i2C, Arduino Nano

12hr Binary Clock, heures et minutes seulement, RTC DS1307, i2C, Arduino Nano

Pendant un certain temps maintenant, j'ai voulu faire une horloge binaire, mais après avoir regardé autour, j'ai décidé que je voulais quelque chose d'un peu différent. Alors j'ai décidé d'afficher uniquement les heures et les minutes et uniquement a
Arduino Nano : BMP180 la pression barométrique et la température I2C afficheur LCD 2 X 16 avec Visuino

Arduino Nano : BMP180 la pression barométrique et la température I2C afficheur LCD 2 X 16 avec Visuino

Le BMP180 est un capteur de température et Arduino de pression barométrique combiné très populaire. J'ai déjà fait Instuctable avec BMP180. Un certain nombre de personnes a toutefois demandé comment vous pouvez connecter un autre périphérique I2C sur