2015-10-07 1 views
0

J'ai utilisé le code suivant pour lire numériquement l'entrée broche et voir si elle est haute ou basse.Broche de lecture numérique dans Arduino

Le problème est que l'Arduino donne de mauvaises valeurs. Il donne quelques fois 0 ou un temps élevé même si la broche est toujours basse.

Il donne également bas ou 0 comme réponse si la broche est haute est-il quelqu'un en mesure de m'aider avec cela?

// 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() { 
    delay(1000); 
    // read the input pin: 
    int buttonState = digitalRead(pushButton); 
    // print out the state of the button: 
    Serial.println(buttonState); 
    delay(1000); // delay in between reads for stability 
} 

Répondre

1

Vous devez utiliser un menu déroulant (3) ou pull-up (4) Résistance: enter image description here

Utilisez la résistance de pull-up interne comme ceci:

pinMode(pin, INPUT);   // set pin to input 
digitalWrite(pin, HIGH);  // activate internal pull-up resistor 

ça devrait le faire aussi.

+0

Bonjour !! Je veux utiliser tirer vers le bas de la résistance mais le fait est-ce que je devrai externe 10 k résistance ou digitalWrite (pin, LOW) va travailler pour moi? s'il vous plaît, répondez dès que possible. digitalWrite (pin, LOW) ne fonctionne pas aussi bien que je pense. –

+0

Désolé digitalWrite (pin, LOW) ne fonctionnera pas comme vous le souhaitez. Votre contrôleur ne supporte qu'une résistance de pull-up. Donc, pour un pull-down, vous devez ajouter une résistance externe. – Fruchtzwerg