Teensy LC GPIO touch et LED
Bonjour,
J'ai essayé de faire un programme pour allumer une led dès que je touche un GPIO touch du Teensy LC hors quand je téléverse le programme dans la Teensy LC, la led s'allume direct et ne s'éteint jamais même quand je touche le GPIO touch. Je pense que mon programme est faux, puis-je avoir de l'aide pour le réussir? merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| int ledPin = 11;
int touchPin = touchRead(1);
const int threshold = 30;
void setup() {
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(ledPin, OUTPUT);
pinMode(touchPin, OUTPUT);
}
void loop() {
{ touchPin = touchRead(1);
Serial.print(touchPin);
if (touchPin < threshold)
digitalWrite(ledPin, LOW); // set the LED on
else (touchPin > threshold);
digitalWrite(ledPin, HIGH);
}
} |
Mille façons de tondre un œuf
Bonjour,
Dans la déclaration, il faut juste écrire :
Code:
1 2 3
| int touchVal; // Pourrait être également déclarée dans loop() puisqu'il ne sert que là.
const int touchPin = 1;
... |
Et dans loop():
Code:
1 2 3 4 5
| void loop() {
touchVal = touchRead(touchPin); // touchPin devrait plutôt s'appeler touchVal
Serial.print(touchVal);
digitalWrite(ledPin, touchVal > threshold); // touchPin > threshold == 1 si vrai (led éteinte) et == 0 si faux (led allumée)
} |
En ce qui concerne l'écriture proposée par Jay, cela se discute. Il n'y a pas de problème de type car HIGH et LOW ne sont pas des types mais des alias. Pour la bonne compréhension, l'écriture de Jay est nettement préférable. Pour l'efficacité, l'écriture élidée sera certainement traduite par un code plus efficient (à vérifier selon l'optimisation du compilateur). Pour moi, c'est un choix de style que chacun fait selon ses goûts et objectifs :zen:.
Salutations