Salut,
Avec l'aide de tous le monde je veux réaliser l'affichage de la température sur l'afficheur 7 segment de 4 digit sous une précision de 1° seulement
j'ai lu le cours de bigonoff et je veux suivre ces conseils et le datasheet du ds18b20.
donc la 1ere chose c'est d'initialiser le DS18b20 selon Mr bigonoff:
I – ETAPE1 – INITIALISATION
Toutes les transactions sur le BUS One Wire commencent par une séquence d’initialisation. Elle consiste en un RESET PULSE initié par le maître (le microcontrôleur) suivi d’un PRESENCE PULSE transmis par l’esclave (le DS18B20). Le ’PRESENCE PULSE’ informe le maître que le ou les esclaves sont prêts sur le BUS.
Timing de la séquence d’initialisation
Durant la séquence d’initialisation le maître envoie le RESET PULSE en forçant le BUS au niveau bas pendant au moins 480µs, puis il relâche le BUS et passe en mode réception. Quand le BUS est relâché, la résistance de pull-up de 5k ramène le BUS au niveau haut. Quand l’esclave a détecté ce front montant, il attend entre 15µs et 60µs et transmet le PRESENCE PULSE en forçant à nouveau le BUS au niveau bas pendant 60 à 240 µs
IMPORTANT : la séquence complète d’initialisation DOIT DURER au moins 480+480=960µs.
en principe j'ai respecter le cours et je vai attaquer la deuxième etape.Code:void reset_DS18b20(void) { TRISA.2 = 0; //envoie le RESET PULSE en forçant le BUS au niveau bas pendant au moins 480µs DQ = 0; delay_ms(1); TRISA.2 = 1; delay_us(60); while(DQ == 0);// il attend entre 15µs et 60µs et transmet le PRESENCE PULSE en forçant à nouveau le BUS au niveau bas pendant 60 à 240 µs }
-----