Contrairement au signal numérique qui ne peut prendre que deux états différents,
Un signal analogique peut prendre une infinité de valeurs. Comme une tension
que l’on fait varier progressivement de 0V à 5V.
La carte Arduino fonctionne en numérique, le microcontrôleur ne comprend que
les « 0 » et les « 1 ». Les entrées de A0 à A5 sont dotées de convertisseurs
analogique/numérique qui convertit une tension en une suite de « 0 » et de «1 »
que la carte fait correspondre à un nombre variant de 0 à 1023.
Câbler un interrupteur
Lorsque l’interrupteur est ouvert, l’entrée de la carte lit un niveau bas ou LOW. Lorsque l’interrupteur est fermé, l’entrée lit un niveau haut ou HIGH. Donc, si on appuie sur un bouton poussoir ainsi câblé, la carte lira un « 1 » soit HIGH. Si on relâche le bouton poussoir, la carte lira un « 0 » soit LOW.
Exemple de programmation
void set up()
{
pinMode(inter, INPUT);
} loop ()
{
int
valinter = 0;
// on crée une variable valinter pour lire l’état de l’interrupteur
valinter = digitalRead(inter);
// on lit la valeur de l’interrupteur (LOW ou HIGH)
if (valinter == LOW) // Si valinter égale LOW, faireW.
{instructions}
else // sinon, faireW.
{instructions}
}
Câbler un potentiomètre
Lorsque l’on tourne le potentiomètre, on fait varier
la tension mesurée entre 0V et 5V.
Si on connecte le point de mesure sur un entrée analogique,
la valeur enregistrée variera entre 0 et 1023.
On peut enregistrer cette valeur et l’utiliser pour piloter une led ou un moteur.
Câbler une photorésistance
La mesure se fait sur entrée analogique. La résistance de la photorésistance
diminue lorsque la lumière augmente.
On peut utiliser le même programme que celui du potentiomètre.
Câbler un buzzer
Le buzzer se câble sur une sortie numérique. On lui envoie alors un signal
périodique dont on fait varier la fréquence en fonction de la note que l’on désire
jouer. Exemple : le LA est un signal d’une fréquence f de 440 Hertz soit un
signal qui varie 440 fois par seconde.
Câbler un buzzer piezzo
en capteur de frappe
L’entrée analogique 0 mesure la tension produite par le buzzer lorsqu’il vibre.
Le buzzer fonctionne alors comme un microphone. Plus il vibre, plus la tension
mesurée est grande.
A utiliser avec le programme « piezzo_capteur_de_frappe ».
La diode zener est optionnelle.
Câbler un servomoteur
On câble le servomoteur sur une des sortie numérique PWM.
Les sorties numériques PWM sont : D11, D10, D9, D6, D5.
On envoie un signal que l’on fait varier en fonction du sens
et de la position désirée.
Un sous programme appelé servo.h doit être inclus dans
le programme. Il est alors facile de le commander.
Câbler un moteur à courant continu
On utilise un transistor pour piloter le
moteur.
Comme pour le buzzer, on envoie un
signal dont la fréquence varie en fonction
de la vitesse désirée.
La diode dite « de roue libre » permet
d’évacuer le courant créer lorsque le
moteur ralentie alors qu’il
n’est plus alimenter.
La tension d’alimentation du moteur peut
être différente, 9V par exemple.
Câbler un moteur à courant continu
avec le circuit intégré L293D
Le circuit intégré L293D nous permet de piloter 2 moteurs à courant continu.
La broche
1 à l’état haut permet de démarrer le moteur, à l’état bas l’éteint.
Les entrées input1 et input
2 permettent de choisir le sens de rotation
du moteur selon les niveaux logique envoyés :
L293 Input1 L293 input2 Sens du moteur
« 1 » « 0 » horaire
« 0 » « 1 » antihoraire
Câbler une barrière infrarouge
La L.E.D. infrarouge émettrice (L934) émet une lumière visible
au travers d’un appareil photo numérique.
La tension aux bornes de la L.E.D. réceptrice varie en fonction
de la distance par rapport à la L.E.D. émettrice. Cette tension est
maximale lorsque un objet coupe le faisceau lumineux.
Exemple de programme associé au montage
int led = 2; //la led réceptrice est sur la broche analogique 2
Int lecture = 0; // variable qui stocke la valeur lue sur A2
void setup()
{}
void loop () // se répète en boucle
{
lecture=analogRead(led); //lecture de la valeur lue
If (lecture>=1000) // comparaison de la valeur lue au seuil de détection
{
ACTION // si > ou = faire
}
else // sinon faire
{ ACTION }
}
Aucun commentaire:
Publier un commentaire