Horloge analogique/numérique - Arduino + PaperCraft (10 / 11 étapes)

Étape 10 : programmation

Algorithme de

Boucle principale

  1. Récupérer l’heure du module RTC (en heure et Minutes)
  2. Si le temps est différent Affichage de l’heure
  3. Répétez

Affichage de l’heure

  1. Temps intermédiaire en quatre chiffres. (à l’aide de / div 10)
  2. Pour chaque affichage 7 segments, déménager segments à afficher des chiffres

Chiffre d’affichage

  1. Placer la logique de décodeur. Traduire int en sept segments vous passez votre commande.
  2. Déplacez les servos nécessaires à partir de X degrés.  Déplacer les degrés de servos Y (où X est la position de sortie, et Y est la position de l’avion.

Échantillon

#include < Wire.h >
#include « RTClib.h »

RTC_DS1307 CCF ;

segA court = 0 ; Broche d’affichage 14
segB court = 1 ; Pivot d’affichage 16
segC court = 2 ; Goupille de l’affichage 13
segD court = 3 ; Broche 3 d’affichage
segE court = 4 ; Broche d’affichage 5
segF court = 5 ; Broche d’affichage 11
segG court = 6 ; Axe de l’écran 15

segA_OUT court = 110 ;
segB_OUT court = 110 ;
segC_OUT court = 110 ;
segD_OUT court = 110 ;
segE_OUT court = 110 ;
segF_OUT court = 110 ;
segG_OUT court = 110 ;

segA_IN court = 90 ;
segB_IN court = 90 ;
segC_IN court = 90 ;
segD_IN court = 90 ;
segE_IN court = 90 ;
segF_IN court = 90 ;
segG_IN court = 90 ;

int temps = 2000 ;

DateTime datePast ;
DateTime dateNow ;

maintien de la maison
void setup() {}
Serial.Begin(9600) ;
Wire.Begin() ;
RTC.begin() ;
RTC.adjust (DateTime (__DATE__, __TIME__)) ;
datePast = RTC.now() ;
}

boucle principale
void loop() {}
dateNow = RTC.now() ;
Si (! () datePast.hour() == dateNow.hour() & & datePast.minute() == dateNow.hour()))
{
displayNumber(dateNow.hour()*100+dateNow.minute()) ;
datePast = dateNow ;
}
}

Étant donné un certain nombre, nous affichons 10:22
Après traversant les 4 numéros, l’écran reste éteint
void displayNumber (int afficher) {}
pour (int digit = 4; chiffres > 0; chiffres--) {}
lightNumber (afficher 10 %, un chiffre) ;
Afficher / = 10 ;
}

démarrer le mouvement
Serial.Print ("T") ; Serial.println(Time) ;
}

{} void move (int servo, int position)
Serial.Print("#") ;
Serial.Print(servo) ;
Serial.Print ("P") ;
Serial.Print(position) ;
}

Compte tenu d’un certain nombre, se met en marche ces segments
Si le nombre == 10, puis éteignez le nombre
void lightNumber (int numberToDisplay, int segment) {}

int offset = (segment - 1) * 7 ;
Switch (numberToDisplay) {}

case 0 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_OUT) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_IN) ;
rupture ;

cas 1 :
déplacer (segA + offset, segA_IN) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_IN) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_IN) ;
déplacer (segG + offset, segG_IN) ;
rupture ;

cas 2 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_IN) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_OUT) ;
déplacer (segF + offset, segF_IN) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas 3 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_IN) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas 4 :
déplacer (segA + offset, segA_IN) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_IN) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas no 5 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_IN) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;


déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas 6 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_IN) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_OUT) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas 7 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_IN) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_IN) ;
déplacer (segG + offset, segG_IN) ;
rupture ;

cas 8 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_OUT) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas 9 :
déplacer (segA + offset, segA_OUT) ;
déplacer (segB + offset, segB_OUT) ;
déplacer (segC + offset, segC_OUT) ;
déplacer (segD + offset, segD_OUT) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_OUT) ;
déplacer (segG + offset, segG_OUT) ;
rupture ;

cas no 10 :
déplacer (segA + offset, segA_IN) ;
déplacer (segB + offset, segB_IN) ;
déplacer (segC + offset, segC_IN) ;
déplacer (segD + offset, segD_IN) ;
déplacer (segE + offset, segE_IN) ;
déplacer (segF + offset, segF_IN) ;
déplacer (segG + offset, segG_IN) ;
rupture ;
}
}

Autres
Vous devrez également vous mettre horloge RTC la première fois. Cela lui donnera une heure de départ égale à celle de votre ordinateur. Vous aurez besoin de la bibliothèque de CCF pour exécuter le code suivant.

#include
#include « RTClib.h »

RTC_DS1307 CCF ;

annuler le programme d’installation () {}
Serial.Begin(57600) ;

Wire.Begin() ;

RTC.begin() ;

if (!. {RTC.isrunning())}
Serial.println ("RTC n'est pas running!") ;
RTC.adjust (DateTime (__DATE__, __TIME__)) ;
}
}

Articles Liés

ARDUINO interfaces et convertisseurs pour les entrées/sorties analogiques/numériques

ARDUINO interfaces et convertisseurs pour les entrées/sorties analogiques/numériques

Ce schéma réunit toutes les interfaces ou convertisseurs que enfi­chables avec mes microcontrôleurs verser piloter mes systèmes (gaine de ventilation chauffante, régulation de température, portail automatisé, quatre thermique, monte charge, station d
Simulé convertisseur analogique/numérique pour RaspberryPi

Simulé convertisseur analogique/numérique pour RaspberryPi

Il est difficile d'obtenir des données numériques dans un RaspberryPi à travers le GPIO parce qu'il n'a pas un convertisseur numérique analogique. Cette instructable illustre à la fois la charge et la décharge d'un condensateur à lire un capteur rési
Comment faire une horloge numérique Arduino

Comment faire une horloge numérique Arduino

Pendules à lecture digitale comptent parmi la grande invention dans le domaine de la science.Avez-vous déjà demandé « Comment faire vos propres pendules à lecture digitale, tout comme dans les films! »???Eh bien, que j'ai également passé, mon enfance
Horloge numérique Arduino (avec Charlieplexing LED, affichage à 7 segments)

Horloge numérique Arduino (avec Charlieplexing LED, affichage à 7 segments)

c'est mon deuxième instructable. Je viens d'avoir un état d'esprit de faire une montre digitale. Mais je voulais faire un processus d'apprentissage. j'ai déjà eu un sanguino j'aurais pu facilement utiliser cette Atmega644 s'écailler. il aurait été pl
Potentiomètres numériques Arduino Shield

Potentiomètres numériques Arduino Shield

Le Bouclier de Arduino potentiomètres numériques a été testé pour la compatibilité avec Arduino Duemilanove, Diecimilaet Arduino UNO R1/R2Ce blason est issu de l'appareil AD5206 d'Analog Devices.Sur Internet, nous pouvons trouver quelques application
Arduino et Visuino : utilisation PCF8574/PCF8574A I2C GPIO pour ajouter plus de chaînes numériques à Arduino

Arduino et Visuino : utilisation PCF8574/PCF8574A I2C GPIO pour ajouter plus de chaînes numériques à Arduino

Peu importe combien de ports un Arduino board a, ils ne semblent jamais être suffisant pour le nouveau projet cool vous avez en tête;-). Heureusement, il existe une solution. L'Arduino possède des broches fois I2C et SPI, et il y a un certain nombre
Autocollant de fenêtre numérique (Arduino contrôlée)

Autocollant de fenêtre numérique (Arduino contrôlée)

un autocollant de taille matrice de LED qui affiche des images en séquence à partir d'une carte SD, pour produire une animation signe ou « vitrophanie ». Arduino contrôlée ! Inclut également le code de Windows, Mac et Linux pour la conversion des fic
BRICOLAGE, CONSTRUIRE VOTRE PROPRE HORLOGE BINAIRE NUMÉRIQUE!!!

BRICOLAGE, CONSTRUIRE VOTRE PROPRE HORLOGE BINAIRE NUMÉRIQUE!!!

Ce Instructable montre comment construire une horloge numérique dans le plus simple. Vous avez seulement besoin de quelques outils et un peu de temps...Étape 1: Introduction Il y a deux façons de construire votre propre horloge binaire.1.-un est de f
Projet boussole numérique Arduino

Projet boussole numérique Arduino

Salut! Dans ce instructable vous verrez comment vous pouvez faire une boussole numérique en utilisant un Arduino et l'IDE de traitement. C'est assez simple mais intéressant et cool à la recherche de projet Arduino.Vous pouvez regarder l'exemple de la
Moniteur d’entrée de Arduino LCD analogique/numérique.

Moniteur d’entrée de Arduino LCD analogique/numérique.

C'est une façon de faire une entrée/sortie écran ACL arduino alimentéÉtape 1: matériaux.Ce sont les choses dont vous aurez besoin.Arduino UNO.Bouclier de DFRobot 1602 LCD du clavier (il ne doit pas être ce type exact, il faut juste savoir le brochage
Analogique/Raspberry pi Conseil de conversion analogique/numérique et affichage de tension de GUI

Analogique/Raspberry pi Conseil de conversion analogique/numérique et affichage de tension de GUI

Cette instructable est sur la construction et l'exploitation d'un jury de A/D 16/18 BIT 4 canaux « différentiel ». Il est basé sur le MCP3428/MCP3424 et communique à la PI framboise via I2C. Le dessin a été choisi pour permettre une planche ou un num
Construire une plate-forme horizontale de caméra glissant (analogique/numérique)

Construire une plate-forme horizontale de caméra glissant (analogique/numérique)

l'inspiration pour ce projet est venu de regarder d ' attribuer de descente VTT vidéos et je me demandais comment les amaeture vidéo/photographes eu ces coups lisses. Après que quelques recherches, un trépied monté coulissant rig caméra était la sour
Algorithme de multimètre numérique shield pour Arduino

Algorithme de multimètre numérique shield pour Arduino

Cette instructable décrit un bouclier, qui convertit la carte « Arduino » dans un multimètre numérique (DMM).Le bouclier peut être inséré sur « Arduino » UNO und Duemilanove planches. Il peut fonctionner en trois modes :autonome - la mesure de donnée
8 bits série numérique-convertisseur analogique (gamme 5v) pour les microcontrôleurs (quand TTL et des résistances est tout vous avez)

8 bits série numérique-convertisseur analogique (gamme 5v) pour les microcontrôleurs (quand TTL et des résistances est tout vous avez)

donc j'avais besoin d'un DAC (convertisseur numérique-analogique) à utiliser avec mon pic12F675, et pour ceux d'entre vous qui n'avez jamais entendu parler de ce petit copain, c'est un microcontrôleur 8 broches de Microchip qui a seulement 6 broches