2017-10-07 1 views
-1
const int buttonPin = 2;  
int buttonState = 0;   

void setup() { 
    Serial.begin(9600); 
    pinMode(buttonPin, INPUT); 
} 

void loop() { 
    buttonState = digitalRead(buttonPin); 
    if (buttonState == HIGH) { 
    Serial.println("1"); 
    buttonState=LOW; 
    delay(20000); 
     while(0); 
    } 
} 

Fondamentalement, le code fonctionne comme ceci:Code Arduino - Quelle est l'utilisation de while (0)?

  • le numéro de la broche de poussoir
  • variables
  • pour lire l'état du bouton-poussoir
  • initialiser la tige de poussoir en entrée:
  • lire l'état de la valeur du bouton-poussoir:
  • vérifier si le bouton-poussoir est enfoncé. Dans ce cas, le ButtonState est HIGH: envoyer ombles 1 via Bluetooth:

j'ai un Arduino, HC 06 module Bluetooth, un bouton et une application qui fait un appel téléphonique lorsque le bouton est pressé (HC 06 Envoyer un octet, 1, à l'application)

Ma question est, quelle est la while (0); pour?

---- CODE ORIGINAL ---- const int PirSensor = 2; int motionState = 0;

void setup() { 
    Serial.begin(9600); 
    pinMode(PirSensor, INPUT); 
} 

void loop() { 
    motionState = digitalRead(PirSensor); 
    if (motionState == HIGH) { 
    Serial.println("1"); 
    motionState = LOW; 
    delay(20000); 
// while(0); 
    } 

} 
+0

Il ne fait rien, comme ça. Pourquoi l'avez-vous mis là? – hobbs

+0

Parce que j'ai rajouté mon code d'un autre que, au lieu d'un bouton, il avait un détecteur de mouvement PIR. Et je ne pouvais pas comprendre quel était le sens du moment. –

+1

@PedroFerreita Pouvez-vous s'il vous plaît montrer l'exemple original alors? – orhtej2

Répondre

0

Eh bien, si je ne me trompe pas dans ce cas rien.

Dans la plupart des langages de programmation, une boucle while est une instruction de flux de contrôle qui permet d'exécuter le code de manière répétée en fonction d'une condition booléenne donnée. La boucle while peut être considérée comme une instruction if répétitive.

Notez que si vous avez une condition, une boucle while doit avoir une option de sortie, comme ceci:

const int buttonPin = 2;  
int buttonState = 0;   

void setup() { 
    Serial.begin(9600); 
    pinMode(buttonPin, INPUT); 
} 

void loop() { 
    buttonState = digitalRead(buttonPin); 
    if (buttonState == HIGH) { 
    Serial.println("1"); 
    buttonState=LOW; 
    delay(20000); 
    int a =0; 
     while(a==0){ 
     if (something) 
      a=1; 
     } 
    } 
} 

ensuite sur votre condition choisie, vous quitterez la boucle.