Arduino
Aide-mémoire : Language Reference
Alimentations. Lorsque la carte est connectée à un ordinateur, elle est alimentée via le port USB. Sinon pour que la carte soit autonome, il faut l'alimenter via les broches Vin (+) et GND (-). La tension d'alimentation doit être comprise entre 6/7V et 12/20V... avec une pile 9V c'est très bien. Il y a aussi le connecteur Jack 5.5x2.1mm.
Générateurs. La carte dispose de deux régulateurs : 3,3V et 5V (en théorie jusqu'à 900mA...). Pour les autres broches 20mA maximum par broche.
La tension 5V sert de référence pour les entrées analogiques (A0, A1, ... A5). Remarque : la broche AREF permet de modifier cette référence... pour gagner en résolution sur la CAN.
Toutes les broches D0, D1, ... D13 sont soit à 0V soit à 5V. Remarque : la broche IO REF permet de modifier cette référence.
Les broche PMW (Pulse Wave Modulation = Modulation de Largeur d'Impulsion) sont parfois repérées par un tilde ~ :
- D3, D9, D10 et D11 à 490 Hz
- D5 et D6 à 976,5 Hz
Un programme Arduino s'appelle un croquis (sketch).
Le programme est structuré en deux parties :
void setup(){} routine (fonction) qui n'est exécutée qu'une fois au début du programme
void loop(){} routine (fonction) qui est exécutée en boucle
a1) Entrées/sorties digitales (ou numériques)
pinMode(numéroDeBroche, [OUTPUT/INPUT]); [utilisation à déclarer dans le setup]
digitalWrite(numéroDeBroche, [HIGH/LOW]);
digitalRead(numéroDeBroche);
a2) Entrées/sorties analogiques
analogRead(numéroDeBroche); les broches d'entrées analogiques sont A0, A1, A2, A3, A4, A5. Chaque entrée analogique est un CAN 10 bits (c'est-à-dire 1024 valeurs allant de 0 à 1023).
analogWrite(numéroDeBroche, valeur); permet d'envoyer une valeur numérique entre 0 et 255 à une broche PWM de l'Arduino. 0 correspond à un rapport cyclique de 0 %, et 255 à 100 %. [voir cette page : https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/]. Cette fonction, analogWrite, n'est par CNA ! Il faut ajouter un montage pour réaliser une conversion PWM -> DC [voir cette page : https://www.zpag.net/Electroniques/Alimentation/convertisseur_pwm__tension_1.htm]
a3) Entrées/sorties sur le moniteur série
Serial.begin(9600); initialise la communication série à 9600 bauds [utilisation à déclarer dans le setup]
Serial.println(); [uneVariable / "du texte" / "t\ (une tabulation)"]
Serial.print();
Serial.flush(); vide le buffer du moniteur série
Serial.available();
Serial.read();
=> programme sur l'utilisation du moniteur série : sketch
=> Cheat-Sheet (antisèche)
/* commentaire sur plusieurs lignes */
// commentaire sur une seule ligne
int nomDeVariable = valeur; déclaration d'une variable de type nombre entier (integer). Le = est l'opérateur d'affectation.
const int nomDeVariable = valeur; (variante dans laquelle on précise que la variable est une constante...)
delay(nombreDeMillisecondes);
if(test){}
if(test){}else{}
for(int compteur=0; compteur<=255; compteur+=5){}
|| opérateur bouléen (le OU)
= opérateur d'affectation
== opérateur de comparaison
+= opérateur d'incrémentation
-= opérateur de décrémentation
<= inférieur ou égale à
map(variable, 0, 1023, 0, 255);
Tone
projets :
- pressiomètre
- télémètre
- thermomètre
