La plaque d'essai contient plusieurs trous, permettant de relier des composants facilement, pour tester un montage.
Les trous encerclés en vert sont liés.
Le cas de la plaque à essai 840 points:
Une diode électroluminescente, ou LED pour "Light-Emitting Diode", est polarisée, elle ne s’allume que lorsque les pattes sont connectées dans un sens bien déterminé.
Remarque : Il faut utiliser une résistance (par exemple de 220 Ω), pour ne pas risquer de griller la LED.
Exemple de montage:
Exemple de montage utilisant une carte ESP32 NodeMCU, une diode LED et une résistance (220 Ω):
from time import sleep
from machine import Pin
led=Pin(23,Pin.OUT)
while True:
led.value(not led.value())
sleep(1)
On peut aussi utiliser PWM pour allumer une LED.
Pulse width modulation (PWM) est un moyen d’obtenir une sortie analogique artificielle sur une broche numérique.
Deux paramètres y sont associés : la fréquence du basculement et le rapport cyclique(duty cycle).
Rapport cyclique (duty): est le rapport entre la durée de l'état actif et la période (inverse de la fréquence).
Exemple de code utilisant le PWM:
from machine import Pin, PWM
from time import sleep
led = PWM(Pin(23), 5000) #fréquence =5000Hz
while True:
for duty_cycle in range(0, 1024):#duty entre 0 et 1023
led.duty(duty_cycle)
sleep(0.005)
Pour un bouton poussoir, on appuie pour allumer ou éteindre et le bouton revient tout seul à sa position initiale. En effet, le poussoir ne sert qu’à envoyer une impulsion.
Exemple de bouton poussoir touche :
Exemple de montage utilisant un bouton poussoir, une carte ESP32 NodeMCU, une diode LED et une résistance (220 Ω):
from machine import Pin
p=Pin(23,Pin.OUT)
p13=Pin(13,Pin.IN)
while True:
if p13.value()==1:
p.on()
else :
p.off()
Remarque: On peut aussi utiliser un module bouton poussoir:
Deux exemples d'utilisation de ce module:
Le circuit interne du module bouton poussoir pour les deux cas d'utilisation:
Il y a deux types :
– Buzzer actif: Il peut générer du son quand il reçoit une tension continue.
– Buzzer passif: On doit utiliser le PWM de la carte esp32 pour générer un son.
Dans notre cas on va utiliser un buzzer actif.
Exemple de montage utilisant un bouton poussoir, une carte ESP32 NodeMCU et un buzzer:
On va reprendre le même code de bouton poussoir.
from machine import Pin
p=Pin(23,Pin.OUT)
p13=Pin(13,Pin.IN)
while True:
if p13.value()==1:
p.on()
else :
p.off()
Capteur de température et d’humidité DHT11.Permettant de mesurer des températures entre 0° et 50°.
Exemple de montage utilisant une carte ESP32 NodeMCU, et un capteur DHT11:
from machine import Pin
import time
import dht
sensor = dht.DHT11(Pin(23))
while True:
sensor.measure()
t = sensor.temperature()
h = sensor.humidity()
print("Température=",t," °C")
print("Humidité=",h," %")
time.sleep(5)
Un servomoteur est un système motorisé capable d'atteindre des positions prédéterminées, puis de les maintenir. La position est définie avec une limite de débattement d’angle de 180 degrés, mais également disponible en rotation continue.
Exemple de montage utilisant une carte ESP32 NodeMCU, et un servomoteur:
Le branchement de servomoteur:
Remarque :
Si l'alimentation de la carte ESP32 ne suffit pas pour faire fonctionner le servomoteur correctement,
il faut ajouter une alimentation externe dédiée au servomoteur.
Pour une frequence de 50Hz, et une largeur d'impulsion, comprise entre 1 et 2 millisecondes, la valeur de duty est théoriquement entre 50 et 100, mais pratiquement il faut tester le servo moteur pour deduire l'intervalle .On peut trouver par exemple entre 40 et 115, entre 25 et 125, ...
from machine import Pin,PWM
from time import sleep
servo=PWM(Pin(23),freq=50)
while True:
# duty entre 25 et 125(change suivant le servomoteur)
x=int(input('donner une valeur(entre 25 et 125)='))
servo.duty(x)
sleep(1)
Le détecteur HC-SR04 utilise les ultrasons pour déterminer la distance à laquelle se trouve un objet. Son champ de vision est de 90° environ selon l'environnement.
Si une impulsion de plus de 10µS est détectée (sur l'entrée TRIGGER), alors le capteur envoie une série de 8 impulsions à ultrason de 40kHZ et attends le réfléchissement du signal. Lorsque celui-ci est détecté, une impulsion de durée proportionnelle à la distance mesurée (Plage de mesure : 2 cm à 400 cm) est envoyée sur la sortie "Echo".
Exemple de montage utilisant une carte ESP32 NodeMCU, et un capteur ultrason HC-SR04:
Remarque: Si l'alimentation de la carte ESP32 ne suffit pas pour faire fonctionner le capteur ultrason HC-SR04 correctement, il faut ajouter une alimentation externe dédiée au capteur ultrason HC-SR04.
from hcsr04 import HCSR04
from time import sleep
sensor = HCSR04(trigger_pin=5, echo_pin=4, echo_timeout_us=10000)
while True:
distance = sensor.distance_cm()
print('Distance=', distance, 'cm')
sleep(2)
Remarque:On doit aussi téléverser la bibliothèque hcsr04.py téléchargée à partir de : https://github.com/rsc1975/micropython-hcsr04
Lien direct:hcsr04.py (clic droit sur le lien puis enregistrer le lien sous)
Dans le cas de Thonny:
Pour téléverser des fichiers sur la carte, il faut commencer par arrêter l'exécution du programme dans Thonny IDE.
Ouvrir le fichier téléchargé hcsr04.py dans Thonny puis Fichier > Enregistrer sous.. > appareil MicroPython
Exemple de montage utilisant une carte ESP32 NodeMCU, et une LDR:
Une photorésistance est connectée à la broche p34 avec une resistance pull-down (1kΩ) et à 3v3. Nous allons mesurer la tension sur le pin34 qui va changer lorsque l’intensité lumineuse change. Pour ce faire, la broche doit prendre en charge la lecture analogique. En d’autres termes, il doit s’agir d’une broche ADC (Analog to Digital Converter). Le pin34 est exactement ce genre de broche, selon les fiches techniques.(on peut utiliser les pins ADC1 32-39).
from machine import Pin, ADC
from time import sleep
p34 = ADC(Pin(34)) # initialiser ADC (analog to digital conversion)
p34.atten(ADC.ATTN_11DB) #permet d'avoir des valeurs entre 0-4095 pour (0-3.3v)
while True:
p34_value = p34.read()
print(p34_value)
sleep(0.1)
Le module possède une sortie numérique et une sortie analogique, par conséquent, se raccorde sur la carte ESP32 sur une entrée numérique ou sur une entrée permettant la lecture analogique ( avec (ADC)convertisseur analogique-numérique ).
Fonctionnement:
– Sortie numérique: la sortie passe à l’état bas (0) lorsque le module reçoit suffisamment de lumière (seuil réglable via le potentiomètre).
– Sortie analogique: la sortie est inversement proportionnelle à la quantité de lumière reçue.
Le comparateur LM393 permet de comparer la tension aux bornes de la LDR avec une tension de référence réglable.
Le potentiomètre permet d’ajuster le seuil de déclenchement en fonction du niveau de lumière:
-Tourné dans le sens horaire, il augmente la sensibilité.
-Tourné dans le sens anti-horaire la sensibilité diminue.
La LED PWR-LED, s’allume quand le module est alimenté. La LED D0-LED indique le niveau de sortie sur la broche D0. Elle s’allume quand l’intensité lumineuse dépasse le seuil fixé grâce au potentiomètre.
Les broches sont :
Exemple de montage utilisant une carte ESP32 NodeMCU, et un module LDR:
On peut reprendre le même code que l'LDR:
from machine import Pin, ADC
from time import sleep
p34 = ADC(Pin(34)) # initialiser ADC (analog to digital conversion)
p34.atten(ADC.ATTN_11DB) #permet d'avoir des valeurs entre 0-4095 pour (0-3.3v)
while True:
p34_value = p34.read()
print(p34_value)
sleep(0.1)
Remarque:
Les valeurs sur la sortie (entre 0 et 4095), selon l'intensité de la lumière.
Exemple d'exécution (Sortie analogique):
Exemple de montage utilisant une carte ESP32 NodeMCU, et un module LDR:
Remarque:
-Dans le cas de l'obscurité : D0-LED éteinte et D0 à 1
-Dans le cas où il y a de la lumière : D0-LED allumée et D0 à 0
from machine import Pin
from time import sleep
p4=Pin(4,Pin.IN)
while True:
print(p4.value())
sleep(0.1)
Exemple d'exécution(Sortie numérique):
Dernière mise à jour de la page :Le 30 avril 2022
sources: https://www.robot-maker.com/forum/tutorials/article/39-utiliser-une-plaque-dessai-ou-breadboard/?msclkid=fc5a2eaca60b11ecab59fe1c7a7ba146
http://www.robotsforfun.com/webpages/breadboard.html
https://trouverunereponse.com/quelle-est-la-difference-entre-un-bouton-poussoir-et-un-interrupteur/
https://fr.wikipedia.org/wiki/Servomoteur
https://esp32io.com/tutorials/esp32-servo-motor
https://icircuit.net/micropython-controlling-servo-esp32-nodemcu/2385
https://components101.com/motors/servo-motor-basics-pinout-datasheet
https://docs.micropython.org/en/latest/esp8266/tutorial/pwm.html
https://components101.com/sites/default/files/component_datasheet/SG90%20Servo%20Motor%20Datasheet.pdf
https://www.youtube.com/watch?v=XovIHYo7s1A&t=1s&ab_channel=AlbrechtSchmidt
https://www.micropython.fr/port_pi_pico/04.micropython/03.les_bases/04.sorties_pwm/
https://gcworks.fr/tutoriel/esp/Servomoteur.html
https://www.youtube.com/watch?v=wWnDKsClpwQ&ab_channel=TechToTinker
https://github.com/rsc1975/micropython-hcsr04
https://randomnerdtutorials.com/micropython-hc-sr04-ultrasonic-esp32-esp8266/
http://www.microsann.com/images/Atelier_Robotique/Documentation/Fiche_capteur_HC.pdf
https://blog.gypsyengineer.com/en/diy-electronics/reading-photoresistor-on-esp32-with-micropython.html
https://dictionnaire.reverso.net/francais-definition/LDR
https://fr.wikipedia.org/wiki/Photor%C3%A9sistance
http://www.esp32learning.com/code/esp32-and-ldr-example.php
https://www.upesy.fr/blogs/tutorials/esp32-pinout-reference-gpio-pins-ultimate-guide
https://randomnerdtutorials.com/esp32-esp8266-analog-readings-micropython/
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html
https://idixshop.ma/boutique/developpement/modules-capteurs/module-capteur-de-lumiere-a-photoresistance-ldr/
https://docplayer.fr/212253695-Memoire-de-fin-d-etudes.html
https://www.framboise314.fr/scratch-raspberry-pi-composants/module-detecteur-de-lumiere-a-ldr/
https://www.youtube.com/watch?v=27lxJY0xJ7o&t=77s
https://randomnerdtutorials.com/esp32-esp8266-pwm-micropython/
https://docs.micropython.org/en/latest/esp32/tutorial/pwm.html
https://fr.wikipedia.org/wiki/Rapport_cyclique
https://commons.wikimedia.org/w/index.php?curid=3674466 , Par Eighthave, modified by Teslaton — Modification of Image:Pwm duty cycle.gif, Domaine public,
https://www.gotronic.fr/pj2-35210-2263.pdf