Bonjour, je dispose d'un quartz résonnant à la fréquence de 32768Hz, et je souhaiterai, dans le but de réaliser une montre à quartz, pouvoir utiliser une carte arduino afin de le faire osciller(j'ai déjà essayé l'oscillateur pierce pour la première partie mais le quartz est trop instable), et de diviser sa fréquence afin de récupérer un signal d'une seconde. Je n'ai jamais fait de Arduino, et débute en électronique. Merci de bien vouloir m'aider à réaliser ce projet, notamment sur le montage à exploiter et le code.
Bonjour,
Votre sujet n'est pas au bon endroit sur le Forum :
Il ne s'agit pas d'un projet fini...
Si vous voulez utiliser l'Arduino, le Quartz n'est pas nécéssaire.
En effet une carte Arduino n'est (pour moi) qu'une interface physique pour un microcontrôleur ATmegaXXX.
Ce microcontrôleur à besoin d'un Quartz pour fonctionner, donc dans une carte Arduino il y a déjà un quartz de 16MHz...
Dans le code, on peut par exemple dire d'avancer l'aiguille toute les secondes, mais on n'a pas besoin d'un quartz cadencé a 1s.
Bonjour, fil déplacé.
Je pense que le but de @noah_76 est d'utiliser un quartz horloger, réputé plus précis, à la place, non pas du quartz 16 MHz de la carte, mais du résonateur 16 MHz de la carte
un résonateur est moins précis qu'un quartz.
Cela doit être possible, mais il faut absolument le vérifier dans la datasheet du microcontrôleur.
Mais ça, ce sera le plus facile.
Pour la suite :
- Il faudra probablement modifier les "fuses" du microcontrôleur avec le logiciel avrdude.
Je dis cela parce qu'il y a plusieurs réglages pour le démarrage de l'oscillateur → encore un point à vérifier. - Un quartz a besoin de deux condensateurs, chaque valeur de fréquence a besoin de condensateurs différents.
Il faudra regarder dans le schéma de la carte arduino les valeurs actuelles.
Il faudra trouver les valeurs correspondant au quartz horloger et voir si elles diffèrent de celles installées.
Cerise sur le gâteau, un quartz bouge en température.
Bel exemple avec le module DS1307 qui est équipé de quartz bas de gamme et qui dérive un max.
Il y a d'autre solution : un module DS3231.
Il délivre une fréquence de 32 kHz avec une grande précision.
Il n'a pas besoin de micro en permanence, juste pour la mise en service.
Il peut être autonome sur pile.
Note : le DS3231 n'utilise pas un quartz, mais un "dispositif résonnant interne à la puce" qui peut être compensé en température, d'où sa grande précision.
Tout est réalisable, mais cela ne va se faire "finger in the nose".
Dans la datasheet de l'ESP8266 il est indiqué
This clock is generated from the internal crystal oscillator and an external crystal.
The crystal frequency can range from 26MHz to 52MHz.
On est loin du compte.
Ou je suis miro ou il n'a jamais parlé d'ESP8266.
Je pense que le demandeur n'a pas exprimé ce qu'il voulait faire, j'ai donc supposé ce qui me semblait le plus probable.
Je pense à un projet qui a les yeux plus gros que le ventre.
Pour faire une montre, il y a des CPU moins énergivores.
Même l'ESP32 est plus intéressant pour cela.
Pour info on trouve actuellement sur AliExpress pour une trentaine d'euros, dans sa version la plus simple, ou un peu plus de 40€, dans sa version en boîtier métal, une montre avec un ESP32 un écran E-Paper 200x200, un accéléromètre, un vibreur, une batterie. Elle a une autonomie entre 3 et 5 jours suivant l'usage que l'on en fait.
Il y a une librairie et pas mal d'exemples de code.
https://fr.aliexpress.com/item/1005008519059686.html
Un peu plus d'info ici
Bonsoir
Les ATMega328 (je fais la supposition que noah_76 pense aux cartes Arduino de première génération) ont un mode de fonctionnement Low Frequency Oscillator adapté aux quartz horlogers. (32,78KHz) Data Sheet p41
Dans ce mode , adieu au bootloader et à l'environnement logiciel Arduino qui ne sont pas du tout conçus pour une horloge CPU aussi basse.
L'écriture du code devient plus difficile........
schéma de l'oscillateur Pierce testé ?
les valeurs des condensateurs sont elles OK avec les caractéristiques du quartz utilisé ?
Avec une horloge quasiment 500x plus lente que l'horloge habituelle, il va falloir optimiser le code aux petits oignons.
Et il faut être conscient d'une chose, ce n'est pas en allant très très lentement que l'on économise le plus d'énergie, mais plutôt en allant à vitesse raisonnable et en passant beaucoup de temps en veille.
Je prends le projet pour le plaisir de réussir "un truc".
Je n'ai jamais imaginé une vraie réalisation.
Sinon si c'est pour faire une vraie montre, il va être difficile de trouver un bracelet de poignet pour une carte UNO.
Les 18600 en pendentifs d'oreille ?
Merci à tous pour votre réactivité et vos réponses,
Pour l’oscillateur pierce nous avons utilisé le montage suivant, toutefois nos condensateurs sont de 68pF et non de l’ordre de la vingtaine.
En ce qui concerne la carte arduino uno, nous n’avons pas encore d’expérience mais plusieurs rapport d’étudiants semblaient utiliser cette méthode afin de faire osciller le quartz et de diviser sa fréquence, notamment en utilisant les compteurs de bits qui permettraient à l’aide d’un overflow de compter les secondes (et également le quartz remplacerait les 16MhZ présent dans la carte pour avoir une plus grande précision, du moins dans le cas de notre étude il est nécessaire). Merci encore pour vos réponses.
Les valeurs de condensateurs données par le fabricant du quartz sont des valeurs théoriques.
Le fabricant ne peut pas connaitre dans quel environnement son quartz fonctionnera.
La porte NAND apporte de la capacité, il faut en tenir compte.
Les valeurs optimisées des condensateurs seront au mieux égales, probablement plus faibles que les valeurs théoriques.
Vous avez doublement faux avec vos 68 pF
Je n'en dit pas plus, je n'ai toujours pas compris ce que vous voulez faire.
Cela laisse penser à un projet scolaire/universitaire, si c'est le cas il eût été normal de le signaler comme tel.
Bonjour
Je n’ai pas testé car je ne suis pas chez moi. ChatGPT :
• ATmega328P
• Quartz 32,768 kHz
• 2 condensateurs 22 pF (classiques)
• Câblage entre :
• Quartz entre broches TOSC1 (PB6) et TOSC2 (PB7) (broches physiques 9 et 10 du 328P)
• Les deux condensateurs entre chaque patte du quartz et la masse
Ne pas confondre PB6/PB7 (broches 9/10 du chip) avec les pins 9/10 d’Arduino !
⸻
Fonctionnement
• Le Timer2 est le seul timer de l’ATmega328P pouvant fonctionner en mode asynchrone avec une source d’horloge externe.
• Quand on connecte un quartz 32,768 kHz aux broches TOSC1/TOSC2, on peut configurer le Timer2 pour générer une interruption toutes les 1 seconde, avec très bonne précision.
⸻
Exemple de code (ATmega328P – Arduino IDE)
volatile uint8_t secondes = 0;
void setup() {
Serial.begin(9600);
cli(); // Désactiver les interruptions globales
// Configurer Timer2 en mode asynchrone avec quartz 32,768 kHz
ASSR |= (1 << AS2); // Timer2 en mode asynchrone (source externe)
TCCR2A = 0; // Mode normal
TCCR2B = (1 << CS22) | (1 << CS20); // Prescaler = 128
TCNT2 = 0; // Compteur à 0
TIMSK2 |= (1 << TOIE2); // Interruption sur overflow
// Attendre que l'écriture dans les registres soit terminée
while (ASSR & ((1 << TCN2UB) | (1 << TCR2BUB) | (1 << TCR2AUB)));
sei(); // Activer les interruptions
}
ISR(TIMER2_OVF_vect) {
// Overflow toutes les 1 seconde avec prescaler 128
secondes++;
}
void loop() {
static uint8_t lastSecond = 0;
if (secondes != lastSecond) {
Serial.print("Seconde : ");
Serial.println(secondes);
lastSecond = secondes;
}
}
Attention prendre en compte les recommandations de @al1fch
C’est peut être une piste mais non testée.
Bonne journée
PS : après cette façon de faire implique des détails non listés ici comme la programmation des fuses…
Bonjour, en effet il s’agit d’un projet pour classe préparatoire, notre but est d’étudier le comportement d’une montre à quartz dans son entièreté en confrontant modèle théoriques et résultats expérimentaux. Nous avons déjà fait l’étude du quartz et l’étape suivante de notre projet est donc la réalisation de l’oscillateur à quartz et du diviseur de fréquence @68tjs, voilà pour le topo des informations et de la ou nous en sommes.
@philippe86220, merci pour l’indication, nous avions testé un programme similaire mais je pense que nos valeurs de condensateurs sont trop importantes, merci beaucoup.
Je ne pensais pas que les valeurs des condensateurs influaient tant dans la condition d’oscillation, merci de m’avoir éclairé sur ce point @68tjs.
Bonjour
Pour information : le circuit intégré CMOS CD4060B se prète bien à l'étude d'un oscillateur 32,768 kHz à quartz horloger + division de fréquence. (sans carte Arduino)
Voir ici : Electronique - Realisations - Base de temps 001
Montage 001b (je doute des valeurs de C1 et C2 dans le premier montage)
lire ce qui concerne C1 et C2
ce que j'ai retenu d'expériences antérieures :
*utiliser de préférence un quartz horloger doté d'une Data Sheet avec une indication de sa capacité de charge CL nominale *
si l'oscillateur ne démarre pas : augmenter très légèrement C1 et C2
si l'oscillateur est instable , diminuer très légèrement C1 et C2
éviter si possible de connecter l'oscilloscope, même avec une sonde en X10, sur l'une ou l'autre borne du quartz
dans le cas d'un montage sur plaque d'essai tenir compte des capacités parasites qui s'ajoutent à celels des condensateurs
ici la Note d'application Selecting and testing 32.768 kHz crystal oscillators for AVR Microcontrollers
Toutafais. +1000
Parce qu'une sonde d'oscilloscope ajoute de la capacité.
Question câblage les condensateurs doivent être câblés avec des fils courts.
Leur point de masse doit être proche d'un point de masse du circuit intégré.
La masse n'est jamais uniforme, même si on n'est qu'a 32 kHz le meilleur moyen pour éviter les mauvaises surprises est de câbler le plus court possible.
Si utilisation de plaquettes pastillées au pas de 2,54 mm, utiliser des condensateurs CMS au format 0805.
Si on câble long, on ajoute de l'inductance qui peut décaler la fréquence centrale du quartz.
Format CMS
longueur en 1/100 d'inch largeur en 1/100 d'inch
Pour le 0805 :
longueur : 8 x 25,4/100 = 2,03 mm
largeur : 5 x 25,4/100 = 1,27 mm
Ce format se soude très facilement.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.



