Différences entre les pages « Item:Servomoteur » et « Comprendre les résistances de pull-up et pull-down »

 
 
Ligne 1 : Ligne 1 :
{{Item
+
{{Tuto Details
|Main_Picture=Item-Servomoteur_servoSG92R.jpg
+
|Main_Picture=Comprendre_les_r_sistances_de_pull-up_et_pull-down_pullupg.jpg
|Main_Picture_02=Item-Servomoteur_800px-Formeservo.jpg
+
|Licences=Attribution (CC-BY)
|Description=Un servomoteur (couramment appelé "servo" du latin "servus" signifiant "esclave") est un moteur capable de maintenir une opposition à un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure.
+
|Description=Les résistances de pull-up et pull-down (on dit résitance de tirance en français) sont utilisées pour fixer clairement un état électrique.
|Cost=1,5
+
|Disciplines scientifiques=Arduino, Computing, Electricity
|Currency=EUR ()
+
|Difficulty=Easy
|ItemLongDescription====Du matériel de bidouille électronique courant===
+
|Duration=30
On utilise souvent le grand classique SG90 ou maintenant, le [http://www.towerpro.com.tw/product/sg92r-7/ SG92R de TowerPro]
+
|Duration-type=minute(s)
 +
|Tags=pullup, pulldown, pull-up, pull-down, résistance, smog, brouillard électromagnétique
 +
}}
 +
{{Introduction
 +
|Introduction=Une résistance de pull-up "tire" le niveau électrique vers le haut, elle est donc reliée à la tension de votre montage (au +5V ou +3V3 suivant la carte électronique que vous utilisez).
  
===Comparaison de servomoteurs===
+
Une résistance de pull-down "tire" le niveau électrique vers le bas, elle est donc reliée à la masse (GND) de votre carte.
 +
}}
 +
{{Materials
 +
|ItemList={{ItemList
 +
|Item=Bouton poussoir
 +
}}{{ItemList
 +
|Item=Arduino Uno
 +
}}{{ItemList
 +
|Item=Cable Dupont
 +
}}{{ItemList
 +
|Item=Résistance
 +
}}
 +
|Tuto_Attachments={{Tuto Attachments
 +
|Attachment=Comprendre_les_r_sistances_de_pull-up_et_pull-down_resistancePULLUPwikideb.ino
 +
}}{{Tuto Attachments
 +
|Attachment=Comprendre_les_r_sistances_de_pull-up_et_pull-down_resistancePULLUP-2wikideb.ino
 +
}}
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Faisons des essais sans résistance de pull-up
 +
|Step_Content=On réalise le montage comme sur le schéma ou la photo.
  
*Les MG90S sont très difficiles à trouver. Il coûtes 2 à 3 fois plus chers (engrenages métalliques) et
+
On charge le premier programme sur l'Arduino.
*C'est la version MG90D qui est la version "Upgrade" du MG90S.
 
*Les SG92R,  présentent l'avantage de combiner un prix modique, des engrenages en fibre de carbone et des propriétés mécaniques similaires. Cependant, les dimensions sont légèrement différentes.
 
  
Ils ont pour points commun d'avoir un cable de 25 cm et de recevoir les même accessoires (bras qui se fixent sur la tête du servo).
 
  
Des liens vers la doc officielle des servo :
+
On ouvre le moniteur série.
  
*Le MG90S : http://www.towerpro.com.tw/product/mg90s-3/
 
*Le MG90D (version upgrade du MG90S) : http://www.towerpro.com.tw/product/mg90d-2/
 
*Le SG92R (nouvelle version du classique SG90) : http://www.towerpro.com.tw/product/sg92r-7/
 
  
Comparatif des propriétés :
+
Il ressort que moniteur série monteur un résultat qui n'est pas satisfaisant :  
{| class="wikitable"
 
!Spécification
 
!MG90S
 
!MG90D
 
!SG92R
 
!SG90
 
|-
 
|Poid (g)
 
|13
 
|13,4
 
|12
 
|9
 
|-
 
|Couple (Kg) (4,8v)
 
|2,1
 
|1,8
 
|2,5
 
|1,8
 
|-
 
|Vitesse (sec/60deg)
 
|0,1
 
|0,1
 
|0,1
 
|0,1
 
|-
 
|A(mm)
 
|32,5
 
|32,5
 
|34,5
 
|34,5
 
|-
 
|B(mm)
 
|22,6
 
|22,8
 
|22,8
 
|22,8
 
|-
 
|C(mm)
 
|28,5
 
|28,4
 
|26,7
 
|26,7
 
|-
 
|D(mm)
 
|12
 
|12,4
 
|12,6
 
|12,6
 
|-
 
|E(mm)
 
|31,5
 
|32,1
 
|32,5
 
|32,5
 
|-
 
|F(mm)
 
|19,8
 
|18.5
 
|16
 
|16
 
|}
 
  
===Un système asservi.===
+
* L'état est fluctuant.
Un servomoteur est un système motorisé capable d'atteindre des positions prédéterminées, puis de les maintenir.  
+
* Parfois après un appuis, l'état reste haut longtemps après qu'on ait relaché le bouton.
 +
* Le comportement est imprévisible.
 +
|Step_Picture_00=Comprendre_les_r_sistances_de_pull-up_et_pull-down_poussoir.jpg
 +
|Step_Picture_01=Comprendre_les_r_sistances_de_pull-up_et_pull-down_resistancePULLUP_bb.jpg
 +
|Step_Picture_02=Comprendre_les_r_sistances_de_pull-up_et_pull-down_Capture_d_e_cran_2020-12-12_a_16.45.17.png
 +
|Step_Picture_02_annotation={"version":"3.5.0","objects":[{"type":"image","version":"3.5.0","originX":"left","originY":"top","left":0,"top":0.08,"width":2086,"height":1776,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":0.29,"scaleY":0.29,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"crossOrigin":"","cropX":0,"cropY":0,"src":"https://www.wikidebrouillard.org/images/b/bc/Comprendre_les_r_sistances_de_pull-up_et_pull-down_Capture_d_e_cran_2020-12-12_a_16.45.17.png","filters":[]},{"type":"wfarrow2line","version":"3.5.0","originX":"center","originY":"center","left":515,"top":99,"width":56,"height":84,"fill":"rgba(255,0,0,0)","stroke":"#FF0000","strokeWidth":4,"strokeDashArray":null,"strokeLineCap":"round","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"x1":-28,"x2":28,"y1":42,"y2":-42,"x2a":23.562398430198165,"y2a":-20.921392543441293,"x2b":10.249593720792667,"y2b":-29.796595683044963},{"type":"wfarrow2circle","version":"3.5.0","originX":"center","originY":"center","left":487,"top":141,"width":16,"height":16,"fill":"#aaa","stroke":"#666","strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":0.5,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"radius":8,"startAngle":0,"endAngle":6.283185307179586},{"type":"wfarrow2circle","version":"3.5.0","originX":"center","originY":"center","left":543,"top":57,"width":16,"height":16,"fill":"#aaa","stroke":"#666","strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":0.5,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"radius":8,"startAngle":0,"endAngle":6.283185307179586}],"height":511,"width":600}
 +
|Step_Picture_03=Comprendre_les_r_sistances_de_pull-up_et_pull-down_Capture_d_e_cran_2020-12-12_a_16.19.31.png
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Faisons des essais avec résistance de pull-up
 +
|Step_Content=On réalise le montage comme sur le schéma ou la photo.
  
La position est : dans le cas d’un moteur rotatif, une valeur d'angle et, dans le cas d’un moteur linéaire une distance.
+
On charge le premier programme sur l'Arduino
  
On utilise des moteurs électriques (continu, asynchrone, brushless) aussi bien que des moteurs hydrauliques. Le démarrage et la conservation de la position prédéterminée sont commandés par un système de réglage. Pour un ajustement précis de la position, le moteur et son réglage sont équipés d'un système de mesure qui détermine la position courante (p. ex. l'angle de rotation parcouru relatif à une position de départ) du moteur. Cette mesure est effectuée sur un réglage rotatif, p. ex. un résolveur, un réglage incrémental ou un réglage absolu (réalisable p. ex. par un potentiomètre). Le système de réglage souvent électronique compare le signal à une valeur prescrite de la position de consigne. S’il y a une déviation, le moteur est commandé dans la direction qui garantit le plus petit chemin à effectuer pour arriver à la valeur de consigne. Cela a pour conséquence de faire diminuer l'écart. La procédure se répète aussi longtemps et, jusqu'à ce que la valeur courante se trouve incrémentiellement ou par l'intermédiaire d’une approximation dans les seuils de tolérance de la valeur consigne. Alternativement, la position du moteur peut être saisie aussi numériquement et comparée via un ordinateur approprié à une valeur prescrite.
 
==Bibliothèque : ==
 
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque Servo (présente dans le gestionnaire de bibliothèques arduino) plus d'infos pour [https://www.wikidebrouillard.org/w/Importer_des_biblioth%C3%A8ques_dans_l'interface_Arduino Importer des bibliothèques dans l'interface Arduino]
 
<br />{{#annotatedImageLight:Fichier:Item-Servomoteur Arduino-lib-servo.png|0=778px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/7/7e/Item-Servomoteur_Arduino-lib-servo.png|href=./Fichier:Item-Servomoteur Arduino-lib-servo.png|resource=./Fichier:Item-Servomoteur Arduino-lib-servo.png|caption=|size=778px}}La bibliothèque est ici : https://github.com/arduino-libraries/Servo
 
  
==Câblage : ==
+
On ouvre le moniteur série.
{{#annotatedImageLight:Fichier:Item-Servomoteur Arduino-servo-cablage.png|0=718px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/a/ab/Item-Servomoteur_Arduino-servo-cablage.png|href=./Fichier:Item-Servomoteur Arduino-servo-cablage.png|resource=./Fichier:Item-Servomoteur Arduino-servo-cablage.png|caption=|size=718px}}
 
==Code Minimal==
 
<br />
 
{| class="wikitable" cellspacing="0" border="0"
 
| height="17" bgcolor="#999999" align="left" |
 
| valign="middle" bgcolor="#999999" align="center" |
 
| bgcolor="#999999" align="center" |Servo moteur
 
|-
 
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
 
| valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
 
| valign="middle" align="left" |#include <Servo.h>
 
|-
 
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet
 
| valign="middle" align="left" |Servo myservo;
 
|-
 
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
 
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
 
| valign="middle" align="left" |myservo.attach(broche du servo);
 
|-
 
| valign="middle" height="28" bgcolor="#999999" align="center" |Dans le Loop
 
| valign="middle" bgcolor="#999999" align="center" |Utilisation
 
| valign="middle" align="left" |myservo.write(45);<br />
 
|}
 
<br /><syntaxhighlight lang="arduino" line="1" start="1">
 
#include <Servo.h> //importation de la bibliothèque servo
 
  
Servo myservo;  // Création de l'objet servo
 
  
 +
Le résultat est mieux ! Les état sont clairs !
 +
|Step_Picture_00=Comprendre_les_r_sistances_de_pull-up_et_pull-down_pullup.jpg
 +
|Step_Picture_01=Comprendre_les_r_sistances_de_pull-up_et_pull-down_resistancePULLUP1_bb.jpg
 +
|Step_Picture_02=Comprendre_les_r_sistances_de_pull-up_et_pull-down_Capture_d_e_cran_2020-12-12_a_16.18.56.png
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Il parait qu'il y a des résistance de pull-up interne ?
 +
|Step_Content=Oui l'Arduino possède une résistance de pull-up interne à chaque broche numérique (c'est le cas d'autres carte comme le [[Item:D1 mini|D1 mini]]).
 +
 +
 +
Elle s'active dans le "setup" avec la fonction INPUT_PULLUP
 +
<br /><syntaxhighlight lang="arduino">
 
void setup() {
 
void setup() {
  myservo.attach(D6); //Démarrage de l'objet et configuration de celui-ci sur la broche D6
+
pinMode(brocheBouton, INPUT_PULLUP);
 
}
 
}
 +
</syntaxhighlight><br />
 +
|Step_Picture_00=Comprendre_les_r_sistances_de_pull-up_et_pull-down_resistancePULLUP-Interne_bb.jpg
 +
}}
 +
{{Notes
 +
|Explanations=Nous sommes entourés d'ondes électromagnétiques.  Les ondes de la transmission de la radio, de la télé, etc. le courant électrique aussi émet des ondes électromagnétiques.
 +
 +
Ces ondes créent de l'électricité dans les broches des composants électroniques.
  
void loop() {
+
C'est pour cela qu'une broche connectée à rien, n'est pas forcément à l'état 0.
  myservo.write(45); // Rotation du servo à la position 45°
+
 
}
+
 
</syntaxhighlight>
+
Une résistance de pull-up fixe l'état à HIGH (état haut).
 +
 
 +
Une résistance de pull-down fixe l'état à LOW (état BAS).
 +
|Applications=Pour des raisons matérielles que je n'ai pas vraiment comprises, on utilise les résistance de pull-up plutôt que des résistances de pull-down
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Published
 
|Complete=Published
 
}}
 
}}

Version du 12 décembre 2020 à 18:13

Auteur avatarAntony Le Goïc-Auffret | Dernière modification 7/04/2021 par Antonydbzh

Comprendre les r sistances de pull-up et pull-down pullupg.jpg
Les résistances de pull-up et pull-down (on dit résitance de tirance en français) sont utilisées pour fixer clairement un état électrique.
Licence : Attribution (CC-BY)

Introduction

Une résistance de pull-up "tire" le niveau électrique vers le haut, elle est donc reliée à la tension de votre montage (au +5V ou +3V3 suivant la carte électronique que vous utilisez).

Une résistance de pull-down "tire" le niveau électrique vers le bas, elle est donc reliée à la masse (GND) de votre carte.
  • Fichiers

Étape 1 - Faisons des essais sans résistance de pull-up

On réalise le montage comme sur le schéma ou la photo.

On charge le premier programme sur l'Arduino.


On ouvre le moniteur série.


Il ressort que moniteur série monteur un résultat qui n'est pas satisfaisant :

  • L'état est fluctuant.
  • Parfois après un appuis, l'état reste haut longtemps après qu'on ait relaché le bouton.
  • Le comportement est imprévisible.


Étape 2 - Faisons des essais avec résistance de pull-up

On réalise le montage comme sur le schéma ou la photo.

On charge le premier programme sur l'Arduino


On ouvre le moniteur série.


Le résultat est mieux ! Les état sont clairs !


Étape 3 - Il parait qu'il y a des résistance de pull-up interne ?

Oui l'Arduino possède une résistance de pull-up interne à chaque broche numérique (c'est le cas d'autres carte comme le D1 mini).


Elle s'active dans le "setup" avec la fonction INPUT_PULLUP


void setup() {
pinMode(brocheBouton, INPUT_PULLUP);
}




Comment ça marche ?


Explications

Nous sommes entourés d'ondes électromagnétiques. Les ondes de la transmission de la radio, de la télé, etc. le courant électrique aussi émet des ondes électromagnétiques.

Ces ondes créent de l'électricité dans les broches des composants électroniques.

C'est pour cela qu'une broche connectée à rien, n'est pas forcément à l'état 0.


Une résistance de pull-up fixe l'état à HIGH (état haut).

Une résistance de pull-down fixe l'état à LOW (état BAS).

Applications : dans la vie de tous les jours

Pour des raisons matérielles que je n'ai pas vraiment comprises, on utilise les résistance de pull-up plutôt que des résistances de pull-down


Dernière modification 7/04/2021 par user:Antonydbzh.

Commentaires

Published