Arduino 2019-4: aide quizz

Mooc Semaine 1: outils

1. Quels sont les deux blocs qui doivent être présents obligatoirement dans un programme Arduino (deux choix possibles) ?

Avec le logiciel IDE Arduino, en sélectionnant Fichier/Nouveau on obtient la trame d’un programme contenant les 2 blocs obligatoires:

void setup() {
 // put your setup code here, to run once:

}

void loop() {
 // put your main code here, to run repeatedly:

}

 

 

2. Une LED est branchée sur la broche 2 (avec l’autre patte sur GND). Parmi les fonctions ci-dessous, laquelle permet d’allumer cette LED ?

3. Je souhaite contrôler une LED branchée sur la broche 6, que devra obligatoirement contenir le bloc setup ?

5. Si je souhaite définir une variable appelée brocheLed qui a pour valeur 13 et qui est de type entier. Quelle est la bonne syntaxe ?

un langage de programmation est comme une langue étrangère, avec ses mots mais aussi ses régles de syntaxe. Donc il faut être précis:

digitalWrite(2, HIGH);

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.DigitalWrite

https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/

pinMode(6, OUTPUT);

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.PinMode

https://www.arduino.cc/en/Reference.PinMode

int brocheLed = 13;

sur Arduino UNO, la valeur int est compris de -32,768 à 32,767

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Int

https://www.arduino.cc/reference/en/language/variables/data-types/int/

 

 

4. Si je tape delay(10000) et que je téléverse mon programme, celui-ci se mettra en pause pendant une durée de ? seconde(s)

le paramètre de delay est en milliseconde; donc 10000 / 1000 –> 10 secondes

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Delay

https://www.arduino.cc/reference/en/language/functions/time/delay/


Mooc Semaine 2: Capteurs numériques

 

1. La fonction digitalRead permet de lire l’état d’une broche numérique. Que peut renvoyer cette fonction (plusieurs choix possibles) ?

HIGH et LOW

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.DigitalRead

https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/

 

 

2. Avec une tension de 9V, quelle devra être la valeur théorique de la résistance (en Ω) si l’on souhaite protéger la LED branchée en série ?

on va se servir de la formule de loi d’électricité dite loi d’Ohm : R = UI

avec :

  • U : Tension
  • I : Intensité
  • R : Résistance

il faut que la LED ait 2.2V (valeur raisonnable) à ses bornes.

on limite l’intensité à travers une LED à 20mA (= 0,02 A)

Nous avons du 9V. La chute de tension au travers de la résistance est de 9V – 2,2V = 6,8V. Ça nous donne donc R = 6,8V/0,02A = 340Ω.

 

 

 

3. Je souhaite lire un bouton branché sur la broche 6, que devra obligatoirement contenir le bloc setup ?

pinMode(6, INPUT);

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.PinMode

https://www.arduino.cc/en/Reference.PinMode

 

 

4. Je souhaite utiliser une LED branchée sur la broche 12. Quelle sera la meilleure syntaxe pour déclarer ma constante ?

const int ledPin = 12;

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Const

https://www.arduino.cc/reference/tr/language/variables/variable-scope–qualifiers/const/

 

 

 

5 Nous viendrons lire l’état du bouton tous les X secondes. Quelle est la valeur de X ?

const int buttonPin = 2;
const int ledPin =  13;      

int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);     
}

void loop(){
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  }
  delay(5000);
}

le paramètre de delay est en milliseconde; donc 5000 / 1000 –> 5 secondes

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Delay

https://www.arduino.cc/reference/en/language/functions/time/delay/


Mooc Semaine 3: capteurs analogiques

 

1. Je stocke le résultat de la fonction analogRead dans une variable appelée maVariable. Je souhaite utiliser la fonction map pour la passer dans l’intervalle suivant : 0→100. Le résultat sera stocké dans la variable appelée maNouvelleVariable. Quelle sera la bonne syntaxe ?

maNouvelleVariable = map(maVariable, 0, 1023, 0, 100);

Ré-étalonne un nombre d’une fourchette de valeur vers une autre fourchette.

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Map

https://www.arduino.cc/reference/en/language/functions/math/map/

 

 

2. La fonction analogRead permet de lire l’état d’une broche analogique. Que peut théoriquement renvoyer cette fonction (plusieurs choix possibles) ?

0      255      10

valeur renvoyée: int (0 to 1023) correspondant au résultat de la mesure effectuée

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.AnalogRead

https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

 

 

 

3. Je souhaite que mon programme Arduino puisse échanger du texte avec l’ordinateur (à une vitesse de 9600 bauds). Que devra contenir le bloc setup ?

Serial.begin(9600);

notons que la syntaxe est typique d’un langage de programmation objet: objet.méthode(valeur)

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Serialbegin

https://www.arduino.cc/reference/en/language/functions/communication/serial/

 

 

4. La LED a une polarité, elle a un sens. D’après vos connaissances, le cours et le wiki. Que se passera-t-il si la LED appelée LED1 est branchée à l’envers (comme indiqué dans le circuit ci-dessous) ?

Aucune des LED ne vont s’allumer

car quand une Led est branchée à l’envers, le courant ne passe plus

 

 

5.quelle valeur sera envoyée à la LED branchée sur la broche 13 si j’appuie sur le bouton branché sur la broche 2 (attention, il y a un piège) ?

int buttonState = LOW;

void setup() {
  pinMode(13, OUTPUT);
  pinMode(2, INPUT);     
}

void loop(){  
  digitalRead(2);
  
  if (buttonState == HIGH) {
    digitalWrite(13, HIGH);  
  } 
  else {
    digitalWrite(13, LOW); 
  }
}

LOW

la variable buttonState n’est pas modifiée dans le bloc loop et garde donc LOW.

 


Mooc Semaine 4: Librairies et sorties

 

1. Si on regarde le code suivant :

for(int uneBroche = 2; uneBroche < 8; uneBroche++) {
  digitalWrite(uneBroche, HIGH);
}

Les LED branchées sur les broches de 2 à 7 vont s’allumer

for (initialization; condition; incrementation)

A chaque exécution de la boucle, la condition est testée; si elle est VRAIE, le bloc d’instructions et l’incrementation sont exécutés. puis la condition est testée de nouveau. Lorsque la condition devient FAUSSE, la boucle stoppe.

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.For

https://www.arduino.cc/reference/en/language/structure/control-structure/for/

 

 

2. Je souhaite utiliser un servomoteur branché sur la broche 9 et que j’appelle monServo. Que devra forcément contenir mon programme ?

monServo.attach(9);

notons que la syntaxe est typique d’un langage de programmation objet: objet.méthode(valeur).

A l’objet monServo on peut appliquer 2 méthodes .attach(x) et .detach(y)

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Servoattach

https://www.arduino.cc/en/Reference/ServoAttach

 

 

 

3. Dans un montage avec un condensateur placé en parallèle d’un bouton poussoir. Si au lieu d’un condensateur de 100nF je mets un 100uF à la place, que se passe-t-il ?

il n’y a aucune influence sur les Leds !

 

 

 

 

4. Soit le code suivant :

for(int i = 1; i <= 8; i++) {
  Serial.println("meuh");
}

i=1    meuh

i=2    meuh

i=3    meuh

i=4    meuh

i=5    meuh

i=6    meuh

i=7    meuh

i=8    meuh

i=9 or i<=8 est faux –> fin de la boucle for

 

8 meuh !

 

 

 

 

5. Si on regarde le code suivant :

for(int i = 2; i < 4; i+=1) {
  Serial.println("bip bip");
  for(int j = 2; j < 3; j+=1) {
    Serial.println("meuh");
  }
}

 

bip bip
meuh
bip bip
meuh