Surveillance de l'état d'un commutateur (série à lecture numérique) - Bases d'Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Ces bases Arduino discutent de la méthode d'implémentation d'un code par lequel l'état ON ou OFF d'un bouton-poussoir externe pourrait être lu ou surveillé dans l'Arduino.

Série de lecture numérique

Ici, nous apprenons à travers un exemple comment surveiller l'état d'un commutateur en effectuant une communication série entre votre Arduino et votre PC via USB.



En plus de votre carte Arduino, vous auriez besoin des éléments fondamentaux suivants:

Matériel

Un interrupteur momentané, un bouton ou un interrupteur à pression



Résistance 10k, 1/4 watt ohm

planche à pain
des liaisons par fil de raccordement ou de cavalier.

Fonctionnement du circuit

L'opération peut être effectuée avec les étapes suivantes:

Prenez 3 morceaux de fils de liaison et connectez-les à votre carte Arduino.Deux des fils, rouge et noir, vont aux deux longues rangées verticales sur le côté de la planche à pain qui deviennent les cordons d'alimentation de la carte afin de transporter le requis 5V DC à la carte.

Le troisième fil est utilisé pour connecter la broche numérique 2 à l'un des fils de l'interrupteur push-to-ON.

Ce fil particulier du bouton se connecte également avec une résistance de tirage 10k au rail d'alimentation négatif ou à la terre. L'autre fil libre de l'interrupteur est lié à l'alimentation positive de 5 volts.

Une fois les connexions ci-dessus effectuées, le commutateur bascule ou effectue une double action dans le circuit lorsqu'il est poussé.

Normalement, lorsque l'interrupteur est en position déconnectée, ses deux fils restent isolés, de sorte que la broche qui est reliée à la terre via la résistance de tirage vers le bas donne un niveau BAS ou un niveau logique 0.

Dans la situation enfoncée, le commutateur exécute un pontage momentané de ses deux fils, de sorte que ses fils sont soumis à + 5 volts, ce qui rend un niveau HAUT ou logique 1 entre eux.

Isoler les broches d'E / S numériques du reste des choses pourrait forcer la LED à se détraquer et provoquer un clignotement erratique. Cela est dû au fait que l'entrée n'est rendue à rien, ou maintenue dans une position `` suspendue '' - ce qui signifie qu'elle n'est pas désignée pour une logique définie, ni haute ni basse (+ 5V ou 0V), c'est la raison pour laquelle nous employons le résistance pull-down avec l'interrupteur.

Schématique

Comprendre le code

Dans le programme suivant ci-dessous, nous commençons par la communication série dans la fonction de configuration au taux de 9600 bits de données par seconde, ceci est initié entre la carte Arduino et l'ordinateur connecté: Serial.begin (9600)

Dans l'étape suivante, nous déclenchons la broche numérique 2, la broche qui serait responsable de la sortie avec le bouton poussoir comme entrée: pinMode (2, INPUT) Ceci complète notre `` configuration '', maintenant nous naviguons dans la boucle principale de notre code .

Ici, en appuyant sur le bouton poussoir, 5 volts sont autorisés à traverser notre circuit, tandis que la broche d'entrée est reliée à la terre via la résistance de 10 kilohm lorsqu'elle est dans un état non enfoncé.

Ce qui précède est ce que nous appelons une entrée numérique, qui se réfère à une condition où le commutateur ne peut être que dans un état particulier soit un état activé (accepté par l'Arduino comme un `` 1 '' ou LOGIC HIGH) ou un état désactivé (visualisé par l'Arduino comme un '0', ou LOGIC LOW), sans autre état non défini entre les deux.

L'action fondamentale que nous devons exécuter dans la boucle principale du programme est d'appliquer une variable pour maintenir en place les informations envoyées via le bouton poussoir.

Comme discuté ci-dessus, les signaux étant sous la forme d'un '1' ou d'un '0', nous utilisons ici un type de données int. Nous pouvons nommer cette variable sensorValue, et la corriger pour qu'elle corresponde à tout ce qui est lu sur la broche numérique 2. Tout cela devient réalisable via une seule ligne de code:

int sensorValue = digitalRead (2) Une fois que l'Arduino a lu l'entrée, réimprimez-la sur l'ordinateur sous la forme d'une valeur décimale.

Cela peut être implémenté à l'aide de la commande Serial.println () dans la dernière ligne du code: Serial.println (sensorValue)

Après cela, chaque fois que le moniteur série est lancé dans le domaine Arduino, nous assisterons à une chaîne de `` 0 '' lorsque le bouton-poussoir est en position ouverte, et à une chaîne de `` 1 '' dans le cas où le bouton est maintenu en position fermée.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Une paire de: Contrôleur de débit d'eau personnalisé avec circuit de minuterie Un article: Conversion analogique en numérique (série de lecture analogique) - Bases d'Arduino