Leçons Théoriques et Pratiques Digitales
Leçons Théoriques et Pratiques Digitales
  • 228
  • 40 673
188 - 2ème partie - Étude du Transistor Bipolaire en Régime Saturé ou Bloqué
Bonjour,
Deuxième Partie de la septième leçon - Étude du Transistor Bipolaire, en Régime Saturé ou Bloqué :
Nous vous suggérons de mettre les sous-titres, afin de bien comprendre concernant les Transistors bipolaires avec leurs calculs, puis de choisir les références de ces derniers, en fonction de différents paramètres.
Nous vous suggérons également de mettre la vidéo sur pause afin de noter les formules mathématiques.
Étude du Transistor Bipolaire, en Régime Saturé ou Bloqué :
Dans le cas qui nous préoccupe, le transistor est utilisé soit en régime saturé, soit en régime bloqué, c’est-à-dire en commutation, à la manière d’un interrupteur, copiant les deux états de celui-ci :
Interrupteur fermé = transistor saturé
Cet état correspond au passage d’un courant dans le circuit.
Interrupteur ouvert = transistor bloqué
Ce second état correspond à l’absence du courant dans le circuit.
L’interrupteur est à commande mécanique alors que le transistor est à commande électrique.
La figure 12 représente cette analogie entre interrupteur et transistor utilisé en commutation.
Pour continuer dans la voie de l’analogie entre interrupteur et transistor, ce dernier fonctionnant en commutation, deux grandeurs physiques sont à prendre en considération. Reportez-vous à la figure 13, celle-ci représente le quadrant 1, c’est-à-dire la caractéristique de sortie IC fonction de VCE pour IB donné.
Ces deux grandeurs sont : VCE SAT. (VCE saturation) et ICB0.
VCE SAT. Correspond à la tension de coude de la caractéristique, on l’appelle encore tension de déchet. Il s’agit de la valeur minimale que prend la tension VCE pour un IC imposé.
En fonction du courant et du type de transistor, cette valeur évolue entre 0,15 Volt et 3 Volts environ.
ICB0 correspond au courant résiduel de collecteur pour un courant émetteur nul. Il représente la valeur minimum du courant collecteur au-delà duquel on ne pourra descendre quand le transistor est à l’état bloqué. C’est le courant inverse de la jonction collecteur-base (puisqu’il s’agit d’un courant inverse de jonction, il est dû aux porteurs minoritaires, par conséquent, il augmentera sensiblement avec un accroissement de la température).
L’ordre de grandeur de ce courant est de quelques microampères.
Ces deux valeurs limites correspondent à des défauts. En effet, à la saturation, équivalent de l’interrupteur fermé, une légère tension persiste, comme si on était en présence d’une résistance de contact.
D’autre part, au blocage, un léger courant résiduel subsiste et peut être assimilé à un interrupteur mal ouvert qui possèderait une résistance de fuite parasite en parallèle sur ses contacts.
Une autre valeur importante est la puissance maximale qui peut être dissipée sur le collecteur. Elle est donnée par le constructeur et peut être portée sur le quadrant 1, sous forme d’une courbe dite d’iso-puissance, (excusez-moi).
Précédemment, lors de la description du quadrant 1, nous avons indiqué que cette caractéristique permettait de déterminer la droite de charge.
Pour mettre en évidence, la présence ou l’absence du courant collecteur, ou d’une manière générale, la présence d’un courant électrique, il suffit de placer dans le circuit une résistance. La tension apparaissant aux bornes de celle-ci, nous informe de cette présence et l’amplitude de cette tension nous renseigne sur l’importance de ce courant.
Ceci correspond à la loi d’Ohm que nous rappelons :
U = R multiplié par I
U = tension en volt
R = résistance en ohm
I = intensité du courant en ampère.
Il s’agit de déterminer la résistance « R » à placer dans le collecteur de façon à recueillir dans le circuit de sortie du transistor un signal utile, en fonction d’un signal d’entrée.
La détermination de cette résistance « R » est influencée par le besoin électrique du courant suivant.
La figure 14 illustre deux possibilités de branchement.
Dans la figure 14-a, la lampe (ou élément de charge de l’interrupteur) est branchée en série avec l’interrupteur.
#MonMoisSurTH-cam #SciencePhysique #500Subscribers #Electronique #ElectroniqueFondamentale #Digitale
Abonnez-vous à notre chaîne pour y recevoir de nouvelles vidéos : th-cam.com/channels/0A0_9YNZGPnHKe_p6Ab9zQ.html
Daniel
มุมมอง: 52

วีดีโอ

187 - 1ère partie - l'Effet Transistor - le Transistor Bipolaire
มุมมอง 413วันที่ผ่านมา
Bonjour, Première Partie de la septième leçon - L'Effet Transistor - Le Transistor Bipolaire : Nous vous suggérons de mettre les sous-titres, afin de bien comprendre concernant les Transistors bipolaires avec leurs calculs, puis de choisir les références de ces derniers, en fonction de différents paramètres. Jonction N.P.N. : Associons à la jonction N.P. précédemment décrite un matériau dont la...
186. - 3ème partie - L’effet Zener et son Symbole Graphique + VARICAP
มุมมอง 8928 วันที่ผ่านมา
Bonjour, Troisième Partie de la sixième leçon - L’effet Zener et la Capacité de la Jonction : Pour bien comprendre, nous vous suggérons de mettre les sous-titres, afin de bien choisir les références des Diodes Zener. A noter que cette théorie est facile à comprendre et que pour cette raison, nous ne ferons pas de pratique concernant les Diodes Zener. En revanche, dans les prochaines vidéos, nou...
185. - 2ème partie - Polarisation d’une Diode à Jonction PN
มุมมอง 89หลายเดือนก่อน
Bonjour, Deuxième Partie de la sixième leçon - La Polarisation d’une Jonction PN : Pour bien comprendre, nous vous suggérons de mettre les sous-titres, afin de bien choisir les références des Diodes. La Polarisation d’une Diode à Jonction : La jonction P.N., en germanium ou en silicium, peut être utilisée pour réaliser un dispositif appelé diode don’t le symbole graphique est représenté figure ...
184 - 1ère partie - La Jonction PN et la Polarisation de la Jonction PN
มุมมอง 89หลายเดือนก่อน
Bonjour, Première Partie de la sixième leçon - La Jonction PN et la Polarisation de la Jonction PN : Pour bien comprendre, nous vous suggérons de mettre les sous-titres, il n’y a pas de pratique dans cette leçon, uniquement de la théorie science et physique concernant les Diodes, afin de bien choisir les références de ces mêmes Diodes. Polarisation de la Jonction PN : Nous allons à présent obse...
183 - 3ème partie - Multivibrateur Bistable du type Eccles Jordan
มุมมอง 222หลายเดือนก่อน
Bonjour, Troisième Partie de la cinquième leçon - Multivibrateur Bistable du type Eccles Jordan : Nous vous suggérons de mettre les sous-titres, il y a certaines formules plus ou moins complexes. Multivibrateurs Bistables : Les multivibrateurs bistables ont deux états stables. Cela signifie qu’au départ, un transistor est bloqué et l’autre conducteur. Après application d’une impulsion de comman...
182 - 2ème partie - Multivibrateur Monostable
มุมมอง 68หลายเดือนก่อน
Bonjour, Deuxième Partie de la cinquième leçon - Multivibrateur Monostable : Nous vous suggérons de mettre les sous-titres, il y a certaines formules plus ou moins complexes. Nous allons étudier une catégorie de circuits extrêmement importante en électronique : Le Multivibrateur Monostable. Comme leur nom l’indique, les multivibrateurs Monostables ont un état de fonctionnement stable et un état...
181. - 1ère partie - Multivibrateur Astable Abraham Bloch
มุมมอง 276หลายเดือนก่อน
Bonjour, Première Partie de la cinquième leçon - Multivibrateur Astable ABRAHAM BLOCH : Nous vous suggérons de mettre les sous-titres, il y a certaines formules plus ou moins complexes. Nous allons étudier une catégorie de circuits extrêmement importante en électronique : Les Multivibrateurs. Les multivibrateurs sont des générateurs d’ondes carrées. On les répartit en trois catégories : multivi...
180. - Réalisation d’un Thermomètre Digital
มุมมอง 1933 หลายเดือนก่อน
Bonjour, Dans la cinquante et unième pratique, nous allons examiner d’une Réalisation d’un Thermomètre Digital. L’expérience précédente vous a montré comment convertir une tension analogique en une valeur numérique correspondante. Cependant, ce type de convertisseur ne peut convertir d’autres grandeurs physiques telles que la pression ou la température. Pour effectuer une mesure de température,...
179. - Convertisseur Analogique / Digital à Approximations Successives à 8 Bits
มุมมอง 1923 หลายเดือนก่อน
Bonjour, Dans la cinquantième pratique, nous allons examiner d’un Convertisseur Analogique / Digital à Approximations Successives à 8 Bits. Il s’agit d’un convertisseur analogique / digital réalisé sous forme de circuit intégré, c’est le circuit ADC 0804. Sur son entrée, on envoie un signal analogique et on retrouve le nombre binaire correspondant sur sa sortie. Ce circuit est réalisé en techno...
178. - Convertisseur Digital / Analogique pour Générer un Signal Triangulaire
มุมมอง 894 หลายเดือนก่อน
Bonjour, Dans la quarante neuvième pratique, nous allons examiner d’un Convertisseur Digital / Analogique pour Générer un Signal Triangulaire. Les applications des convertisseurs D/A sont multiples, il est possible par exemple de les utiliser pour générer des signaux de formes très diverses. Il suffit d’envoyer une séquence de nombres binaires adéquats sur l’entrée. De nombreux circuits de comm...
177. - Amplificateur Opérationnel de type LM 747
มุมมอง 444 หลายเดือนก่อน
Bonjour, Dans la quarante huitième pratique, nous allons examiner d'un Amplificateur Opérationnel de type LM 747. Cette vidéo sera un peu plus longue par rapport aux autres, étant donné que cette dernière, les leçons sont un peu plus complexes donc, on vous demande de regarder jusqu’au bout, afin de bien comprendre. Toutes les grandeurs physiques (pression, température, intensité lumineuse, vit...
176. - Fréquencemètre Digital à deux Digits
มุมมอง 3664 หลายเดือนก่อน
Bonjour, Dans la quarante septième pratique, nous allons Réaliser un Fréquencemètre Digital à 2 chiffres de la cinquième expérience. La mesure digitale d’une fréquence est généralement plus précise que la mesure analogique. Pour effectuer une mesure digitale de fréquence, il suffit de compter le nombre de périodes du signal pendant un temps donné. La fréquence étant le nombre de périodes par se...
175. - Convertisseur de Tension Continue avec le Circuit Intégré LM 555.
มุมมอง 2425 หลายเดือนก่อน
Bonjour, Dans la quarante sixième pratique, nous allons Réaliser un Convertisseur de Tension Continue. Dans certains circuits, à partir d’une tension continue, il peut être nécessaire de créer une tension continue de valeur supérieure à celle existante. Il peut être utile d’avoir recours à un convertisseur de tension continue qui permet d’élever cette tension. Pour cela, plusieurs types de circ...
174. - Générateur de Signal Rectangulaire à Fréquence Variable, (Bonjour les oreilles).
มุมมอง 1515 หลายเดือนก่อน
Bonjour, Dans la quarante cinquième pratique, nous allons examiner un Générateur de Signal Rectangulaire à Fréquence Variable don’t nous utiliserons un bref aperçu à cause du bruit, en provenance du Haut-parleur sinon, bonjour les oreilles. Tout en conservant le montage précédent de la vidéo numérotée 304, vous allez dans cette expérience réaliser un multivibrateur astable dont la fréquence d’o...
173. - Multivibrateur Astable avec le Circuit Intégré LM555
มุมมอง 1115 หลายเดือนก่อน
173. - Multivibrateur Astable avec le Circuit Intégré LM555
172. - Multivibrateur Monostable ou Temporisateur LM555
มุมมอง 536 หลายเดือนก่อน
172. - Multivibrateur Monostable ou Temporisateur LM555
171. - Emploi de la Mémoire TC5517APL-2 pour Générer des Séquences
มุมมอง 746 หลายเดือนก่อน
171. - Emploi de la Mémoire TC5517APL-2 pour Générer des Séquences
170. - Lecture de la Mémoire SRAM TC5517APL- 2 ou HM6116P-2
มุมมอง 946 หลายเดือนก่อน
170. - Lecture de la Mémoire SRAM TC5517APL- 2 ou HM6116P-2
169. - Fonctionnement d’un Compteur à douze Étages ou 12 Bits
มุมมอง 1196 หลายเดือนก่อน
169. - Fonctionnement d’un Compteur à douze Étages ou 12 Bits
168. - Fonctionnement d’un Buffer Bidirectionnel Tri-State (3 États).
มุมมอง 397 หลายเดือนก่อน
168. - Fonctionnement d’un Buffer Bidirectionnel Tri-State (3 États).
167. - Utilisation d’un Multiplexeur à 8 voies pour assurer la Fonction d’un Réseau de Portes
มุมมอง 587 หลายเดือนก่อน
167. - Utilisation d’un Multiplexeur à 8 voies pour assurer la Fonction d’un Réseau de Portes
166. - Transmission de 8 Signaux sur un Démultiplexeur via le Multiplexeur
มุมมอง 1677 หลายเดือนก่อน
166. - Transmission de 8 Signaux sur un Démultiplexeur via le Multiplexeur
Nos Remerciements à tous pour les 500 abonnés !!
มุมมอง 627 หลายเดือนก่อน
Nos Remerciements à tous pour les 500 abonnés !!
165. - Examen d'un Commutateur Numérique à huit voies
มุมมอง 4177 หลายเดือนก่อน
165. - Examen d'un Commutateur Numérique à huit voies
164. - Examen d’un Commutateur Numérique à deux voies
มุมมอง 1498 หลายเดือนก่อน
164. - Examen d’un Commutateur Numérique à deux voies
163. - Examen d’un Circuit Sommateur de type Parallèle avec MM 74C83 et MM 74C164
มุมมอง 948 หลายเดือนก่อน
163. - Examen d’un Circuit Sommateur de type Parallèle avec MM 74C83 et MM 74C164
162. - Sommateur Complet pour Additionner 2 Nombres de 8 Bits en Série via les deux Registres
มุมมอง 598 หลายเดือนก่อน
162. - Sommateur Complet pour Additionner 2 Nombres de 8 Bits en Série via les deux Registres
161. - Sommateur Complet avec des portes OU Exclusif et NAND
มุมมอง 388 หลายเดือนก่อน
161. - Sommateur Complet avec des portes OU Exclusif et NAND
160. - Examen d’un Circuit Effectuant la Somme de 2 Nombres de 1 bit
มุมมอง 1429 หลายเดือนก่อน
160. - Examen d’un Circuit Effectuant la Somme de 2 Nombres de 1 bit

ความคิดเห็น

  • @islamcoherencepertinence.7226
    @islamcoherencepertinence.7226 2 ชั่วโมงที่ผ่านมา

    Bonjour, merci pour vos vidéos !

  • @gerardmansoif2183
    @gerardmansoif2183 5 วันที่ผ่านมา

    Merci pour ce savoir faire rare qui se perd de nos jours

    • @DanielROBERT92000
      @DanielROBERT92000 5 วันที่ผ่านมา

      Bonjour, Merci à vous et bon dimanche ! 😀

  • @ElkaniHanin
    @ElkaniHanin 28 วันที่ผ่านมา

    ❤❤❤

  • @gerardzi7930
    @gerardzi7930 หลายเดือนก่อน

    Le multivibrateur c'est toujours intéressant ces montages pour comprendre la saturation de la base du transistor, toujours Merci pour vos vidéos.

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 หลายเดือนก่อน

      C’est vrai pour comprendre la saturation de la base des transistors, en ce moment, j’explique la Jonction PN d’une diode via la pratique mais délicate, etc. On arrive !

  • @Old_Wirehead
    @Old_Wirehead หลายเดือนก่อน

    Merci pour cette vidéo très didactique :-)

  • @cyb3032
    @cyb3032 3 หลายเดือนก่อน

    Excellent cours pour la théorie comme pour la prtatique :)

  • @emericmuller1217
    @emericmuller1217 5 หลายเดือนก่อน

    merci.

  • @gerardzi7930
    @gerardzi7930 6 หลายเดือนก่อน

    Oh! le lm555 des souvenirs remontent de mes années de lecteur de la revue Électronique-Pratique , Merci

  • @gerardzi7930
    @gerardzi7930 6 หลายเดือนก่อน

    Après comme montage ,un générateur de patron de tests serait chouette pour faire des tests sur des montages numériques et ensuite faire une comparaison de la signature numérique. J'ai un montage ( source mag Elektor ) entièrement avec des circuits logiques .er une ram 6116 et roue codeuse. Passionnant ces cours ! Merci

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 6 หลายเดือนก่อน

      Bonjour, Cela viendra après, je pense au Simulateur que vous voulez construire ? Si j’ai bien compris.

  • @gerardzi7930
    @gerardzi7930 7 หลายเดือนก่อน

    Pour l'orientation de signaux numériques, j'utilisais le CD4066 un multiplexeur analogique.

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 7 หลายเดือนก่อน

      Oui, mais le CD4066 c'est un Commutateur Analogique, un multiplexeur ce n'est pas un commutateur, c'est tout simplement des signaux numériques afin de programmer ce dernier selon les projets en question via les Datas pour aller vers un démultiplexeur que ce dernier va trier tous les signaux un par un, pour aller dans les différents circuits, etc. 😀 Mais bon, ce n'est pas bien grave, bonne fin de soirée et à bientôt !

  • @grerlab2777
    @grerlab2777 7 หลายเดือนก่อน

    Excellente source de référence sur les composantes électroniques qui est disponible sur TH-cam... Bonne continuité et un grand MERCI pour le partage généreux de vos connaissances et de vos vidéos... Votre fidèle auditeur (Québec, Canada)... Grer...✌

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 7 หลายเดือนก่อน

      Je vous remercie de votre commentaire et à bientôt ! Bonne fin de soirée. ❤😀

  • @aliounebadarambengue1926
    @aliounebadarambengue1926 7 หลายเดือนก่อน

    Nous aussi nous vous remercions pour votre partage de connaissances et ton temps sacré pour nous que dieu vous bénisse 🙏🙏🙏

  • @salaheddineharket6502
    @salaheddineharket6502 7 หลายเดือนก่อน

    salut cher monsieur pouvez vous faire la simulation de cette réalisation sur le logiciel Proteus svp

  • @gerardzi7930
    @gerardzi7930 8 หลายเดือนก่อน

    Un logiciel utile pour les chronogrammes des circuits logiques c'est wavedrom. Il est open-source

  • @joeldubourthoumieu6093
    @joeldubourthoumieu6093 8 หลายเดือนก่อน

    bonjour. tel que vous l'avez retranscrit le programme ne fonctionne pas. Des oublis. du repetitif et des lignes inutiles. mais a le mérite d'exister.

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 8 หลายเดือนก่อน

      Je vous transmets l’URL de ma deuxième chaîne : th-cam.com/video/-wPu3YleGeY/w-d-xo.html

  • @ElieAksantiÉlie
    @ElieAksantiÉlie 8 หลายเดือนก่อน

    merci father❤❤👏👏👏👏

  • @ElieAksantiÉlie
    @ElieAksantiÉlie 8 หลายเดือนก่อน

    je suis abonne deja

  • @grerlab2777
    @grerlab2777 10 หลายเดือนก่อน

    Beau montage avec une généreuse présentation... Merci...👍

  • @rabidinouri9390
    @rabidinouri9390 11 หลายเดือนก่อน

    ok

  • @rabidinouri9390
    @rabidinouri9390 11 หลายเดือนก่อน

    OK

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Merci...👍

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Merci pour la formation sur les Bascule de Schmitt et les généreuses explications...

  • @poupinex4760
    @poupinex4760 ปีที่แล้ว

    Super vidéo, j'apprécie grandement votre détermination à produire un contenu de qualité. Votre vidéo m'aura permis de saisir les nuances du circuit à bascule RSC. Très intéressant et enrichissant pour ma formation professionnelle. Peut-être un tantinet trop complexe pour la majorité des gens et pour moi, mais au moins vous ne manquez pas de contenu. Votre approche très concrète et perfectionniste permet de comprendre en profondeur le fonctionnement des circuits que vous présentez sur votre chaîne. Bonne journée à vous et que vous ayez une vie électrifiante ! ⚡⚡⚡

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Merci pour la leçon et la démonstration pratique... Très généreux...👍

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Vidéo très généreuse... Merci...👍

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Vidéo très appréciée... Merci pour la belle présentation technique... 👍

  • @quevineuxcrougniard2985
    @quevineuxcrougniard2985 ปีที่แล้ว

    Pourquoi ce bonjour "à toutes et à tous", expression fautive en français et de plus, d'un ridicule notoire, issue du verbiage publicitaire le plus vulgaire ? Devenue à la mode dans l'Internet et chez les politiciens racoleurs, cette tournure devient agaçante. "Bonjour à tous" est du bon français et c'est si simple. Quoi qu'il en soit, votre exposé est parfait et très utile à tous. Merci beaucoup.

    • @quevineuxcrougniard2985
      @quevineuxcrougniard2985 ปีที่แล้ว

      @@DanielROBERT92000 Si vous voulez être poli et respectueux des femmes et des hommes, alors dites donc : "Bonjour Mesdames, bonjour Messieurs". C'était la règle pour tous et ça l'est toujours, mon bon Monsieur.

  • @grerlab2777
    @grerlab2777 ปีที่แล้ว

    Je viens tout juste de vous découvrir... Intéressant votre chaine TH-cam... Merci pour la vidéo... 👍

  • @MujeebelectricgroupBD-uy6hd
    @MujeebelectricgroupBD-uy6hd ปีที่แล้ว

    🇧🇩nice video

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    Programmes des Menus, Sous-Menus et Sous-Sous-Menus : Il suffit de cliquer sur le lien ci-après et sélectionner les textes des programmes et faites copier/coller : www.electronique-et-informatique.fr/Arduino/LES_MENUS_ET_LES_SOUS-MENUS_HORODATEUR.php

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    /* www.electronique-et-informatique.fr/Electronique-et-Informatique/index.php NANTERRE, LE 13/04/2023 PAR DANIEL ROBERT*/ /*1 - déclaration et initialisation des variables*/ #include <dht.h> #include <LiquidCrystal.h> Définition des constantes #define COLONNES 16 // Afficheur LCD 16x02 #define LIGNES 2 // Afficheur LCD 16x02 #define RS 2 // S’inscrire Sélectionner #define E 3 // Activer #define D4 4 // Ligne de données 4 #define D5 5 // Ligne de données 5 #define D6 6 // Ligne de données 6 #define D7 7 // Ligne de données 7 #define Trig_Broche 8 // Broche Trig du module HC-SR04 #define Echo_Broche 9 // Broche Echo du module HC-SR04 #define Buzzer 10 // Broche du buzzer actif #define DHT11_Broche 11 // Broche du capteur DHT11 #define Led_Verte 12 // Broche de la LED verte #define Led_Rouge 13 // Broche de la LED rouge flotter Duree; distance de flottaison; flotteur Vitesse; int Tempo; int dhtRes; Variable pour stocker la valeur de lecture de la broche du capteur DHT11 /*2- Instanciation des objets lcd et dht*/ LiquidCrystal lcd (RS, E, D4, D5, D6, D7); Instanciation de l’objet lcd dht DHT; Instanciation de l’objet dht /*3- Programmation de broches numériques*/ void setup() { lcd.begin(COLONNES, LIGNES); Nombres de colonnes et de lignes pinMode(Trig_Broche, SORTIE); Programmation de la broche 8 comme sortie pinMode(Echo_Broche, INPUT); Programmation de la broche 9 comme entrée numérique pinMode (Buzzer, OUTPUT); Programmation de la broche 10 comme sortie pinMode(Led_Verte, SORTIE); Programmation de la broche 12 comme sortie pinMode(Led_Rouge, SORTIE); Programmation de la broche 13 comme sortie } void loop() { /*4- Programme traitant le cas d’une distance supérieure à 20cm*/ getdistance(); Calculer la distance entre l’objet et le HC-SR04 en appelant 'getdistance' if (Distance > 35 && Distance < 400){ // Permet de régler la Distance supérieur à 35cm digitalWrite(Led_Verte, ÉLEVÉ); Allumer la LED verte lcd.print( » Distance : « ); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 1ère ligne lcd.print(Distance); lcd.print( » cm « ); retard(500); Attendre 500 ms } /*5- Programme traitant le cas d’une distance inférieure ou égale à 20cm*/ else { while(Distance <= 35 ){ // Tant que la distance est inférieure ou égale à 35cm et permet de régler la distance digitalWrite(Led_Verte, LOW); Éteindre la LED verte lcd.print( » Objet proche : »); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 2ère ligne lcd.print(Distance); lcd.print( » cm « ); Tempo = carte (Distance, 3, 35, 0, 700); Affectation de la valeur renvoyée par la fonction map à la variable tempo digitalWrite(Buzzer, HIGH); Déclencher l’alarme du buzzer digitalWrite(Led_Rouge, ÉLEVÉ); Allumer la LED rouge retard (tempo); Attendre (tempo ms) digitalWrite(Buzzer, LOW); Désactiver l’alarme du buzzer digitalWrite(Led_Rouge, LOW); Éteindre la LED rouge retard (tempo); getdistance(); lcd.clear(); Effacer l'afficheur LCD } } retard(500); lcd.clear(); } /*6- Définition de la fonction de clacul de la distance 'getdistance'*/ void getdistance(){ digitalWrite(Trig_Broche, LOW); Mettre la broche 'Trig' sur le niveau BAS retardMicrosecondes(1); Attendeur 1 μs digitalWrite(Trig_Broche, ÉLEVÉ); Mettre la broche 'Trig' sur le niveau HIGH retardMicrosecondes(8); Attendre 8 μs digitalWrite(Trig_Broche, LOW); Mettre la broche 'Trig' sur le niveau BAS Duree = pulseIn(Echo_Broche, HIGH); Affectation de la valeur renvoyée par la fonction 'pulsIn' à la variable 'Duree' dhtRes = DHT.read11(DHT11_Broche); Affectation de la valeur renvoyée par la méthode read11 à la variable 'dhtRes' Vitesse = 331.4 + (0.606 * DHT.température) + (0.0124 * DHT.humidité); Calcul de la ''vitesse du son'' Distance = (Duree / 2) * (Vitesse / 10000); Calcul de la vitesse en cm/μs (Centimètres par microsecondes). }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    Jeu de lumière avec Thermistance - 5 avril 2023 - int lightPin = 0; int latchPin = 11; int clockPin = 9; int dataPin = 12; led int = 0; void setup() { pinMode(latchPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode (clockPin, OUTPUT); } void updateShiftRegister() { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, leds); digitalWrite(latchPin, HIGH); } void loop() { int reading = analogRead(lightPin); int numLEDSLit = cours / 50; 1023 / 9 / 2 if (numLEDSLit > 8) numLEDSLit = 8; LED = 0; pas de LED allumées pour démarrer for (int i = 0; i < numLEDSLit; i++) { LED = LED + (1 << i); définit le ième bit } updateShiftRegister(); }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    /*1-Déclaration, initialisation des variables et instanciation des objets */ #include <IRremote.h> // N’oublions pas la nouvelle version « IRremote.h » const int RECV_PIN = 7; Broche numérique liée au récepteur IR IRrecv irrecv(RECV_PIN); Instanciation de l’objet 'irrecv' decode_results résultats; Instanciation de l’objet 'results' int pinray[]={10, 11, 12}; Tableau des broches LED int intervalle = 1000; Intervalle de temps (1 seconde) non signé long prev; Variable de temps int k = ÉLEVÉ; variable pour le marche-arrêt du séquenceur int i=0; int j=0; int vitesse=0; /*2-Configuration de la fonction*/ void setup(){ for(int i = 0; i < 4; i++) pinMode(pinray[i], SORTIE); Programmation des broches numériques des LED en sorties prev = millis(); Mémoriser le compteur de temps actuel irrecv.enableIRIn(); Démarrage du processus de réception irrecv.blink13(true); Activer le clignotement de la LED 13 en cours de réception } void loop(){ if(k==LOW){ // si k == LOW le séquenceur démarre if((millis() - prev) > intervalle ){ // Ecoulement du retard 'intervalle' prev = millis(); /*3-Programme permettant d’allumer et d’éteindre les LED du séquenceur*/ switch(j){ Cas 0 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[0], HIGH); Casser; Cas 1 : digitalWrite(pinray[0], LOW); digitalWrite(pinray[1], HIGH); Casser; Cas 2 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[2], HIGH); Casser; Cas 3 : digitalWrite(pinray[2], LOW); digitalWrite(pinray[1], HIGH); } j++; if(j > 3){j = 0;} } } /*4-Programme permettant de démarrer ou d’arrêter le séquenceur si la touche « <<| » est appuyée */ if (irrecv.decode(&results)){ // Si une touche de la télécommande est appuyée switch(results.value){ case 0xFFC23D: // Si la touche « <<| » est appuyée (Marche / arrêt) k=!k; if(k==HIGH) // Eteindre toutes les LED avant d’arrêter le séquenceur en position HIGH for(int i=0; i<4; i++) digitalWrite(pinray[i], LOW); Casser; case 0xFF02FD: // Si la touche « <|| » est appuyée, accélère la vitesse des LED en appuyant plusieurs fois (3 fois) /*5-Programme permettant de gérer l’accélération de la vitesse*/ vitesse++; if(vitesse == 1) intervalle = 500; else if(vitesse == 2) intervalle = 250; autre intervalle = 100; if(vitesse>3) vitesse=3; Casser; case 0xFF22DD: // Si la touche « |>> » est appuyée, on décélère la vitesse des LED en appuyant plusieurs fois (3 fois) /*6-Programme permettant de gérer le ralentissement de la vitesse*/ vitesse--; if(vitesse == 3) intervalle = 100; 100 Millisecondes (0,1 seconde) else if(vitesse == 2) intervalle = 250; 250 Millisecondes (0,25 seconde) else if(vitesse == 1) intervalle = 500; 500 Millisecondes (0,50 seconde) autre intervalle = 1000; (1 seconde) if(vitesse<0) vitesse=0; Casser; } irrecv.resume(); Réinitialiser le processus de réception } }

  • @hligfl
    @hligfl ปีที่แล้ว

    Mon reuf, faut lire, c'est négeu la voix, après si tu peux pas lire, sorry

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    /* Incorporation de la bibliothèque, définition des constantes et déclaration et initialisation des variables*/ #include <LiquidCrystal.h> #define COL 16 #define LIGNES 2 #define RS 4 // S’inscrire Sélectionner #define E 5 // Activer #define D4 6 // Ligne de données 4 #define D5 7 // Ligne de données 5 #define D6 8 // Ligne de données 6 #define D7 9 // Ligne de données 7 int BrocheLed = 3; LED connectée à la sortie numérique 3 (PWM) int EntreeAnalog = 5; Entrée analogique 5 liée à la sortie de la LDR int val = 0; Variable pour stocker la valeur de l’entrée analogique 5 int mapval=0; Variable pour stocker le résultat retourné par la fonction map LiquidCrystal lcd (RS, E, D4, D5, D6, D7); Instanciation de l’objet lcd /* Programmation de la broche numérique 3 en sorties et définition du nombre de lignes et de colonnes de l’afficheur LCD*/ void setup() { lcd.begin(COL, LIGNES); Nombres de colonnes et de lignes pinMode(BrocheLed, OUTPUT); Programmation de la broche 3 comme sortie } /* Code traitant la commande de l’intensité lumineuse de la LED et l’affichage du pourcentage de l’éclairage extérieur sur le module LCD */ void loop() { val = analogRead(EntreeAnalog); Lire la valeur à l’entrée analogique 0 mapval=map(val,0,1023,0,255); Affectation de la valeur renvoyée par la fonction map à la Variable Mapval analogWrite(BrocheLed, 255-mapval); lcd.setCursor(1,0); lcd.print( » Luminosite a « ); lcd.setCursor(1,1); lcd.print( » « ); lcd.print((mapval*100/255)); Afficher la valeur du pourcentage de l’éclairement lcd.print( » % »); retard (2000); }

  • @jeanlucpontzeele3056
    @jeanlucpontzeele3056 ปีที่แล้ว

    bonjour j'aime vos videos ca me fait penser quand j'etais en electronique .voila j'aurais une faveur a vous demandez pouvez vous faire un montage pour un spectrometre pour la nature des sols exemple un appareils qui me donnerai la couleur pour chaque partie de la terre ,par exemple craie couleur bleu ,oxyde de fer couleur jaune etc.... merci

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 ปีที่แล้ว

      😉

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 ปีที่แล้ว

      Bonsoir Jean-Luc, cela demande une étude approfondie concernant le projet d’un Spectrophotomètre UV Visible Solutions avec spectrophotomètres UV Visible rapides et compactes Les spectrophotomètres METTLER TOLEDO sont compacts et permettent d’effectuer des mesures fiables et rapides en quelques secondes. La gamme Easy utilise une technologie à balayage et les instruments Excellence sont à barrettes de diodes. Tous ont été conçus pour minimiser les opérations de maintenance et garantir une excellente longévité. Plusieurs accessoires et logiciels permettent de centraliser la gestion des données et d’améliorer la productivité.

  • @JoelCosmono
    @JoelCosmono ปีที่แล้ว

    Merci :)

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    int BrocheLed[] = {8, 9, 10, 11, 12, 13}; Tableau de LED avec numéros des broches non signé int Tempo = 500; Pause entre les changements en ms unsigned int Tempo1 = 500; Première vitesse non signé int Tempo2 = 100; Deuxième vitesse int Bp1 = 2; Entrée du bouton poussoir 1 int Bp2 = 3; Entrée du bouton poussoir 2 volatile int k = FAIBLE; Indice pour mémoriser les pressions sur le BP1 volatile int b = FAIBLE; Indice pour mémoriser les pressions sur le BP2 int i; Indice courant pour les boucles de fonctionnement void setup(){ for (int i = 0; i < 6; i++) pinMode(BrocheLed[i], SORTIE); Programmation des broches du tableau comme sorties attachInterrupt (digitalPinToInterrupt (Bp1), MarcheArret, FALLING); Attachement de l’entrée numérique BP1 au porogramme d’interruption 'MarcheArret' (démarrage sur front descendant) attachInterrupt (digitalPinToInterrupt (Bp2), Vitesse, FALLING); Attachement de l’entrée numérique BP2 au porogramme d’interruption 'Vitesse' (démarrage sur front descendant) } void loop(){ for(int i = 0; i < 6 && k == HIGH; i++){ //Boucle du sens direct digitalWrite(BrocheLed[i], HIGH); Élément du tableau au niveau HIGH retard (tempo); digitalWrite(BrocheLed[i], LOW); Élément du tableau au niveau LOW } for(int i = 4; i > 0 && k == HIGH; i--){ //Boucle du sens inverse digitalWrite(BrocheLed[i], HIGH); Élément du tableau au niveau HIGH retard (tempo); digitalWrite(BrocheLed[i], LOW); Élément du tableau au niveau LOW } } void MarcheArret() { //Programme d’interruption traitant le démarrage et l’arrêt du séquenceur k = !k; Basculement de l’indice k de l’état actuel à l’état opposé si (k == FAIBLE) digitalWrite(BrocheLed[i], LOW); Eteindre le séquenceur } void Vitesse(){ //Programme d’interruption traitant les deux vitesses du séquenceur b = !b; Basculement de l’indice b de l’état actuel à l’état opposé si (b == FAIBLE) Tempo = Tempo1; Première vitesse autre Tempo = Tempo2; Deuxième vitesse }

  • @azeddineabdoune814
    @azeddineabdoune814 ปีที่แล้ว

    Bravo, continuez!

    • @azeddineabdoune814
      @azeddineabdoune814 ปีที่แล้ว

      @@DanielROBERT92000 à vous Aussi,mille voeux!

  • @stephaneamsellem4806
    @stephaneamsellem4806 ปีที่แล้ว

    Génial Merci ! Je vais passer mon week-end à bosser dessus.

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 ปีที่แล้ว

    #include <LiquidCrystal.h> Initialision de mes pins int pin_RS = 12 ; Registre - Broche de synchronisation int pin_E = 11 ; Broche d’activation de la réception int pin_db4 = 4 ; Broche de transmission de données int pin_db5 = 5 ; Broche de transmission de données int pin_db6 = 3 ; Broche de transmission de données int pin_db7 = 2 ; Broche de transmission de données int bouton_pin = 6 ; Bouton-poussoir int screen_display = 1 ; int ledPin = 10; int buttonApin = 7 ; int buttonBpin = 8; LiquidCrystal lcd(12, 11, 5, 4, 3, 2) ; Initialisation de l’afficheur 16,2 void setup() { pinMode(ledPin, OUTPUT); pinMode(bouton_pin, INPUT_PULLUP); pinMode(bouton_pin, INPUT_PULLUP) ; pinMode(ledPin, OUTPUT); pinMode(buttonApin, INPUT_PULLUP); pinMode(buttonBpin, INPUT_PULLUP); lcd.begin(16, 2) ; lcd.setCursor(0, 0) ; lcd.print(« Bienvenue !! « ) ; lcd.setCursor(0, 1) ; lcd.print(« Chez Jennifer !! « ) ; } void loop() { if (digitalRead(bouton_pin) == LOW) { digitalWrite(ledPin, HIGH); } if (digitalRead(bouton_pin) == ÉLEVÉ) { digitalWrite(ledPin, LOW); } if (digitalRead (bouton_pin) == LOW && screen_display == 1) { lcd.clear() ; lcd.setCursor(0, 0) ; lcd.print(« Résistances !! ») ; Imprime vers l’afficheur 0,2 lcd.setCursor(0, 1) ; 0 = Position du caractère et 1 = la ligne positionnée lcd.print(« Condensateurs !! ») ; Imprime vers l’afficheur 0,2 retard(500) ; screen_display = 2 ; } if (digitalRead (bouton_pin) == LOW && screen_display == 2) { lcd.clear() ; lcd.setCursor(0, 0) ; Début de caractères et de lignes lcd.print(« Transistors !! ») ; Imprime vers l’afficheur 0,2 lcd.setCursor(0, 1) ; Changement de ligne et caractères lcd.print(« Varicaps !! ») ; Imprime vers l’afficheur 0,2 retard(500) ; screen_display = 3 ; Changement de page } if (digitalRead (bouton_pin) == LOW && screen_display == 3) { lcd.clear() ; lcd.setCursor(0, 0) ; lcd.print(« Tubes TVC !! ») ; lcd.setCursor(0, 1) ; lcd.print(« Tubes Plats !! ») ; retard(500) ; screen_display = 4 ; changement de page } if (digitalRead (bouton_pin) == LOW && screen_display == 4) { lcd.clear() ; lcd.setCursor(0, 0) ; lcd.print(« Bienvenue !! ») ; lcd.setCursor(0, 1) ; lcd.print(« Chez Jennifer !! ») ; retard(500) ; screen_display = 1 ; changement de page vers le haut } if (digitalRead (buttonBpin) == LOW && screen_display == 1) { lcd.clear() ; int ledPin = 5; int buttonApin = 7; retard(500) ; lcd.print(« Moi Promener !! ») ; lcd.setCursor(0, 0) ; retard(500) ; lcd.setCursor(0, 1) ; lcd.print(« Dany ») ; if (digitalRead (buttonApin) == LOW && screen_display == 1) { lcd.print( » « ) ; retard(500) ; lcd.print(« 1 2 3 4 5 6 ») ; } } }

  • @christianlofaro6285
    @christianlofaro6285 ปีที่แล้ว

    il y a moyen de fabriquer une impulsion negative ou une impulsion positive avec des montages a transistors

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 ปีที่แล้ว

      Merci de votre commentaire 😀

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 ปีที่แล้ว

      Bonjour Christian, il y a eu une erreur lors de la transmission de mes données : Voici l’URL de la page - www.electronique-et-informatique.fr/Electronique-et-Informatique/Digit/Pratique/Digit_4PS.php (Voir figure 8)

    • @leconstheoriquesetpratique6255
      @leconstheoriquesetpratique6255 ปีที่แล้ว

      Vous pouvez le faire avec des transistors bipolaires NPN ou PNP pour obtenir les impulsions positives ou négatives, merci de votre commentaire.

  • @Fraved
    @Fraved 2 ปีที่แล้ว

    Bravo et merci pour le partage de connaissances 👍

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 2 ปีที่แล้ว

    /*1-Déclaration, initialisation des variables et instanciation des objets */ #include <IRremote.h> const int RECV_PIN = 7; Broche numérique liée au récepteur IR IRrecv irrecv(RECV_PIN); Instanciation de l’objet 'irrecv' decode_results résultats; Instanciation de l’objet 'results' int pinray[]={10, 11, 12}; Tableau des broches LED int intervalle = 1000; Intervalle de temps (1 seconde) non signé long prev; Variable de temps int k = ÉLEVÉ; variable pour le marche-arrêt du séquenceur int i=0; int j=0; int vitesse=0; /*2-Configuration de la fonction*/ void setup(){ for(int i=0; i<4; i++) pinMode(pinray[i], SORTIE); Programmation des broches numériques des LED en sorties prev = millis(); Mémoriser le compteur de temps actuel irrecv.enableIRIn(); Démarrage du processus de réception irrecv.blink13(true); Activer le clignotement de la LED 13 en cours de réception } void loop(){ if(k==LOW){ //si k==LOW le séquenceur démarre if((millis() - prev) > intervalle ){ //Ecoulement du retard 'intervalle' prev = millis(); /*3-Programme permettant d’allumer et d’éteindre les LED du séquenceur*/ switch(j){ Cas 0 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[0], HIGH); casser; Cas 1 : digitalWrite(pinray[0], LOW); digitalWrite(pinray[1], HIGH); casser; Cas 2 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[2], HIGH); casser; Cas 3 : digitalWrite(pinray[2], LOW); digitalWrite(pinray[1], HIGH); } j++; if(j>3){j=0;} } } /*4-Programme permettant de démarrer ou d’arrêter le séquenceur si la touche « >|| » est appuyée */ if (irrecv.decode(&results)){ // Si une touche de la télécommande est appuyée switch(results.value){ case 0xFFC23D: // Si la touche « >|| » est appuyée k=!k; if(k==HIGH) //Eteindre toutes les LED avant d’arrêter le séquenceur for(int i=0; i<4; i++) digitalWrite(pinray[i], LOW); casser; case 0xFF02FD: // Si la touche « >>| » est appuyée /*5-Programme permettant de gérer l’accélération de la vitesse*/ vitesse++; if(vitesse == 1) intervalle = 500; else if(vitesse == 2) intervalle = 250; autre intervalle = 100; if(vitesse>3) vitesse=3; casser; case 0xFF22DD: // Si la touche « << » est appuyée /*6-Programme permettant de gérer le ralentissement de la vitesse*/ vitesse--; if(vitesse == 3) intervalle = 100; else if(vitesse == 2) intervalle = 250; else if(vitesse == 1) intervalle = 500; autre intervalle = 1000; if(vitesse<0) vitesse=0; casser; } irrecv.resume(); Réinitialiser le processus de réception } }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 2 ปีที่แล้ว

    Séquenceur : /*1-Déclaration, initialisation des variables et instanciation des objets */ #include <IRremote.h> const int RECV_PIN = 7; Broche numérique liée au récepteur IR IRrecv irrecv(RECV_PIN); Instanciation de l’objet 'irrecv' decode_results résultats; Instanciation de l’objet 'results' int pinray[]={10, 11, 12}; Tableau des broches LED int intervalle = 1000; Intervalle de temps (1 seconde) non signé long prev; Variable de temps int k = ÉLEVÉ; variable pour le marche-arrêt du séquenceur int i=0; int j=0; int vitesse=0; /*2-Configuration de la fonction*/ void setup(){ for(int i=0; i<4; i++) pinMode(pinray[i], SORTIE); Programmation des broches numériques des LED en sorties prev = millis(); Mémoriser le compteur de temps actuel irrecv.enableIRIn(); Démarrage du processus de réception irrecv.blink13(true); Activer le clignotement de la LED 13 en cours de réception } void loop(){ if(k==LOW){ //si k==LOW le séquenceur démarre if((millis() - prev) > intervalle ){ //Ecoulement du retard 'intervalle' prev = millis(); /*3-Programme permettant d’allumer et d’éteindre les LED du séquenceur*/ switch(j){ Cas 0 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[0], HIGH); casser; Cas 1 : digitalWrite(pinray[0], LOW); digitalWrite(pinray[1], HIGH); casser; Cas 2 : digitalWrite(pinray[1], LOW); digitalWrite(pinray[2], HIGH); casser; Cas 3 : digitalWrite(pinray[2], LOW); digitalWrite(pinray[1], HIGH); } j++; if(j>3){j=0;} } } /*4-Programme permettant de démarrer ou d’arrêter le séquenceur si la touche « >|| » est appuyée */ if (irrecv.decode(&results)){ // Si une touche de la télécommande est appuyée switch(results.value){ case 0xFFC23D: // Si la touche « >|| » est appuyée k=!k; if(k==HIGH) //Eteindre toutes les LED avant d’arrêter le séquenceur for(int i=0; i<4; i++) digitalWrite(pinray[i], LOW); casser; case 0xFF02FD: // Si la touche « >>| » est appuyée /*5-Programme permettant de gérer l’accélération de la vitesse*/ vitesse++; if(vitesse == 1) intervalle = 500; else if(vitesse == 2) intervalle = 250; autre intervalle = 100; if(vitesse>3) vitesse=3; casser; case 0xFF22DD: // Si la touche « << » est appuyée /*6-Programme permettant de gérer le ralentissement de la vitesse*/ vitesse--; if(vitesse == 3) intervalle = 100; else if(vitesse == 2) intervalle = 250; else if(vitesse == 1) intervalle = 500; autre intervalle = 1000; if(vitesse<0) vitesse=0; casser; } irrecv.resume(); Réinitialiser le processus de réception } }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 2 ปีที่แล้ว

    #include <Servo.h> int potBroche = 0; Broche analogique utilisée pour connecter le potentiomètre int val; variable pour stocker la valeur de lecture de la broche analogique 0 Servo monservo; Instanciation d’un objet monservo void setup() { monservo.attach(3); Attacher l’objet monservo à la broche numérique 3 } void loop() { val = analogRead(potBroche); Affecter la valeur de lecture de l’entrée analogique 0 valeur entre 0 et 1023)à la variable 'val' val = carte(val, 0, 1023, 0, 190); Affectation de la valeur renvoyée par la fonction map à’val' monservo.write(val); Régler l’angle de position du servo à 'val'° retard(15); Attendre 15 ms }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 2 ปีที่แล้ว

    www.electronique-et-informatique.fr/Electronique-et-Informatique/index.php /* 1- Définition des constantes, déclaration et initialisation des variables*/ #include <dht.h> #include <LiquidCrystal.h> #define COL 16 #define LIGNES 2 #define RS 2 // Register Select - (Sélection d’un registre) #define E 3 // Enable (Validation du Projet) #define D4 4 // Ligne de données 4 #define D5 5 // Ligne de données 5 #define D6 6 // Ligne de données 6 #define D7 7 // Ligne de données 7 #define trigBroche 8 // Broche Trig du module HC-SR04 (Trigger = gâchette) #define echoBroche 9 // Broche Echo du module HC-SR04 (équivaut transmission) #define buzzer 10 // Broche du buzzer actif #define DHT11_Broche 11 // Broche du capteur DHT11 #define LedVerte 12 // Broche de la LED verte #define LedRouge 13 // Broche de la LED rouge float duree; distance de flottaison; vitesse de flottaison; int tempo; int dhtRes; Variable pour stocker la valeur de lecture de la broche du capteur DHT11 /*2- Instanciation des objets lcd et dht*/ LiquidCrystal lcd(RS, E, D4, D5, D6, D7); Instanciation de l'objet lcd dht DHT; Instanciation de l’objet dht /*3- Programmation de broches numériques*/ void setup() { lcd.begin(COL, LIGNES); // Nombres de colonnes et de lignes pinMode(trigBroche, OUTPUT); // Programmation de la broche 8 comme sortie pinMode(echoBroche, INPUT); // Programmation de la broche 9 comme entrée numérique pinMode(buzzer, OUTPUT); // Programmation de la broche 10 comme sortie pinMode(LedVerte, OUTPUT); // Programmation de la broche 12 comme sortie pinMode(LedRouge, EXTRANT); Programmation de la broche 13 comme sortie } void loop() { /*4- Programme traitant le cas d’une distance supérieure à 20cm*/ getdistance(); // Calculer la distance entre l’objet et le HC-SR04 en appelant 'getdistance' if (distance > 20 && distance < 400){ digitalWrite(LedVerte, HIGH); // Allumer la LED verte lcd.print( » Distance : « ); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 1ère ligne lcd.print(distance); lcd.print( » cm « ); retard(500); Attendre 500 millisecondes } /*5- Programme traitant le cas d’une distance inférieure ou égale à 20cm*/ else { while(distance <= 20 ){ // Tant que la distance est inférieure ou égale à 20 cm digitalWrite(LedVerte, LOW); // Eteindre la LED verte lcd.print( » Objet proche « ); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 2ère ligne lcd.print(distance); lcd.print( » cm « ); tempo=carte(distance,3,20,0,700); Affectation de la valeur renvoyée par la fonction map à la variable tempo digitalWrite(buzzer, HIGH); Déclencher l'alarme du buzzer digitalWrite(LedRouge, HIGH); Allumer la LED rouge delay(tempo); Attendre (tempo ms) digitalWrite(buzzer, LOW); Désactiver l'alarme du buzzer digitalWrite(LedRouge, LOW); Eteindre la LED rouge delay(tempo); getdistance(); On rappelle la distance lcd.clear(); Effacer l’afficheur LCD } } delay(500); lcd.clear(); } /*6- Définition de la fonction de clacul de la distance 'getdistance'*/ void getdistance(){ digitalWrite(trigBroche, LOW); // Mettre la broche 'Trig' sur le niveau HIGH (Trig = Trigger) delayMicroseconds(2); // Attendre 2 μs digitalWrite(trigBroche, HIGH); // Mettre la broche 'Trig' sur le niveau HIGH delayMicroseconds(10); // Attendre 10 μs digitalWrite(trigBroche, LOW); // Mettre la broche 'Trig' sur le niveau LOW duree = pulseIn(echoBroche, ÉLEVÉ); Affectation de la valeur renvoyée par la fonction 'pulsIn' à la variable 'duree' dhtRes = DHT.read11(DHT11_Broche); Affectation de la valeur renvoyée par la méthode read11 à la variable 'dhtRes' vitesse = 331.4 + (0.606 * DHT.temperature) + (0.0124 * DHT.humidity); Calcul de la vitesse du son distance = (duree / 2) * (vitesse / 10000); Calcul de la vitesse en cm/μs }

  • @leconstheoriquesetpratique6255
    @leconstheoriquesetpratique6255 2 ปีที่แล้ว

    www.electronique-et-informatique.fr/Electronique-et-Informatique/index.php /* 1- Définition des constantes, déclaration et initialisation des variables*/ #include <dht.h> #include <LiquidCrystal.h> #define COL 16 #define LIGNES 2 #define RS 2 // Register Select - (Sélection d’un registre) #define E 3 // Enable (Validation du Projet) #define D4 4 // Ligne de données 4 #define D5 5 // Ligne de données 5 #define D6 6 // Ligne de données 6 #define D7 7 // Ligne de données 7 #define trigBroche 8 // Broche Trig du module HC-SR04 (Trigger = gâchette) #define echoBroche 9 // Broche Echo du module HC-SR04 (équivaut transmission) #define buzzer 10 // Broche du buzzer actif #define DHT11_Broche 11 // Broche du capteur DHT11 #define LedVerte 12 // Broche de la LED verte #define LedRouge 13 // Broche de la LED rouge float duree; distance de flottaison; vitesse de flottaison; int tempo; int dhtRes; Variable pour stocker la valeur de lecture de la broche du capteur DHT11 /*2- Instanciation des objets lcd et dht*/ LiquidCrystal lcd(RS, E, D4, D5, D6, D7); Instanciation de l'objet lcd dht DHT; Instanciation de l’objet dht /*3- Programmation de broches numériques*/ void setup() { lcd.begin(COL, LIGNES); // Nombres de colonnes et de lignes pinMode(trigBroche, OUTPUT); // Programmation de la broche 8 comme sortie pinMode(echoBroche, INPUT); // Programmation de la broche 9 comme entrée numérique pinMode(buzzer, OUTPUT); // Programmation de la broche 10 comme sortie pinMode(LedVerte, OUTPUT); // Programmation de la broche 12 comme sortie pinMode(LedRouge, EXTRANT); Programmation de la broche 13 comme sortie } void loop() { /*4- Programme traitant le cas d’une distance supérieure à 20cm*/ getdistance(); // Calculer la distance entre l’objet et le HC-SR04 en appelant 'getdistance' if (distance > 20 && distance < 400){ digitalWrite(LedVerte, HIGH); // Allumer la LED verte lcd.print( » Distance : « ); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 1ère ligne lcd.print(distance); lcd.print( » cm « ); retard(500); Attendre 500 millisecondes } /*5- Programme traitant le cas d’une distance inférieure ou égale à 20cm*/ else { while(distance <= 20 ){ // Tant que la distance est inférieure ou égale à 20 cm digitalWrite(LedVerte, LOW); // Eteindre la LED verte lcd.print( » Objet proche « ); lcd.setCursor(4,1); Positionner le curseur sur la 4ème colonne de la 2ère ligne lcd.print(distance); lcd.print( » cm « ); tempo=carte(distance,3,20,0,700); Affectation de la valeur renvoyée par la fonction map à la variable tempo digitalWrite(buzzer, HIGH); Déclencher l'alarme du buzzer digitalWrite(LedRouge, HIGH); Allumer la LED rouge delay(tempo); Attendre (tempo ms) digitalWrite(buzzer, LOW); Désactiver l'alarme du buzzer digitalWrite(LedRouge, LOW); Eteindre la LED rouge delay(tempo); getdistance(); On rappelle la distance lcd.clear(); Effacer l’afficheur LCD } } delay(500); lcd.clear(); } /*6- Définition de la fonction de clacul de la distance 'getdistance'*/ void getdistance(){ digitalWrite(trigBroche, LOW); // Mettre la broche 'Trig' sur le niveau HIGH (Trig = Trigger) delayMicroseconds(2); // Attendre 2 μs digitalWrite(trigBroche, HIGH); // Mettre la broche 'Trig' sur le niveau HIGH delayMicroseconds(10); // Attendre 10 μs digitalWrite(trigBroche, LOW); // Mettre la broche 'Trig' sur le niveau LOW duree = pulseIn(echoBroche, ÉLEVÉ); Affectation de la valeur renvoyée par la fonction 'pulsIn' à la variable 'duree' dhtRes = DHT.read11(DHT11_Broche); Affectation de la valeur renvoyée par la méthode read11 à la variable 'dhtRes' vitesse = 331.4 + (0.606 * DHT.temperature) + (0.0124 * DHT.humidity); Calcul de la vitesse du son distance = (duree / 2) * (vitesse / 10000); Calcul de la vitesse en cm/μs }

  • @guts8651
    @guts8651 2 ปีที่แล้ว

    super !