TP / Montages
Arduino Uno
BreadBoard
●
Littéralement : planche à pain, techniquement : plaque
d’essai sans soudure
LED
●
Light Emitting Diode
●
1,2V (20mA)
●
// the setup function runs once when you press reset or power the board
●
void setup( ) {
●
// initialize digital pin LED_BUILTIN as an output.
●
pinMode(12, OUTPUT);
●
}
●
●
// the loop function runs over and over again forever
●
void loop( ) {
●
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
●
delay(1000); // wait for a second
●
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
●
delay(1000); // wait for a second
●
}
Blink – Arduino Uno
Blink – Arduino Nano
Blink
PinMode
●
Configure la broche spécifiée pour qu'elle se comporte soit en entrée,
soit en sortie
●
Syntaxe :
– pinMode(broche,mode)
●
Paramètres
– broche: le numéro de la broche de la carte Arduino dont le mode de
fonctionnement (entrée ou sortie) doit être défini.
– mode: soit INPUT (entrée en anglais) (=0) ou OUTPUT (sortie en anglais) (=1)
●
Pas de valeur de retour
DigitalWrite
●
Met un niveau logique HIGH (HAUT en anglais) ou LOW (BAS en anglais)
sur une broche numérique. Si la broche a été configurée en SORTIE avec
l'instruction pinMode(), sa tension est mise à la valeur correspondante : 5V
(ou 3.3V sur les cartes Arduino 3.3V) pour le niveau HAUT, 0V (masse) pour
le niveau BAS.
●
Syntaxe :
– digitalWrite(broche, valeur)
●
Paramètres
– broche: le numéro de la broche de la carte Arduino
– valeur : HIGH ou LOW (ou bien 1 ou 0)
Delay
●
Réalise une pause dans l'exécution du programme pour la
durée (en millisecondes) indiquée en paramètre.
(1s=1000ms)
●
Syntaxe :
delay(ms)
A réaliser
●
Feu de signalisation routière (feu tricolore)
Ultrason – capteur HC-SR04
Ultrason
/* Constantes pour les broches */
const int TRIGGER_PIN = 2;
const int ECHO_PIN = 3;
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son */
const float VITESSE_SON = 340.0 / 1000;
Ultrason
/** Fonction setup() */
void setup() {
/* Initialise le port série */
Serial.begin(9600);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); //TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
Ultrason
void loop() {
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
float distance_mm = measure / 2.0 * VITESSE_SON;
Serial.print(F("Distance: "));
Serial.print(distance_mm);
Serial.print(F("mm ("));
Serial.print(distance_mm / 10.0, 2);
Serial.print(F("cm, "));
Serial.print(distance_mm / 1000.0, 2);
Serial.println(F("m)"));
delay(500);
}
PulseIn
●
Lit la durée d'une impulsion (soit niveau HAUT, soit niveau BAS) appliquée sur une
broche (configurée en ENTREE)
●
Valeur de retour : durée de l'impulsion (en microseconds) ou 0 si aucune impulsion n'a
démarrer avant le délai de sortie. (type unsigned long)
●
Syntaxe
– pulseIn(broche, valeur, delai_sortie)
●
Paramètres
– broche: le numéro de la broche sur laquelle vous voulez lire la durée de l'impulsion. (type int)
– valeur: le type d'impulsion à "lire" : soit HIGH (niveau HAUT) ou LOW (niveau BAS). (type int)
– delai_sortie (optionnel): le nombre de microsecondes à attendre pour début de l'impulsion. La
valeur par défaut est 1 seconde. (type unsigned long)
Infrarouge
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //Activer réception
pinMode(ledPin, OUTPUT);
}
Serial
●
La librairie Serial : communications par le port série entre la
carte Arduino et un ordinateur ou d'autres composants.
●
Toutes les cartes Arduino ont au moins un port Série
( également désigné sous le nom de UART ou USART) : Serial.
●
Ce port série communique sur les broches 0 (RX) et 1 (TX)
avec l'ordinateur via le port USB.
●
On ne peut pas utiliser 0 et 1 en tant qu'entrées ou sorties
numériques si elles sont déjà utilisées par Serial.
Serial
●
Serial.begin(int vitesse)
●
Fixe le débit de communication en nombre de caractères par
seconde (l'unité est le baud) pour la communication série.
●
Serial.println(«message » ) affiche un message via le 1er
port série
●
Serial1.println(«message » ) affiche un message via le 2ème
port série
Serial
●
Write( ) :ecrire des données binaires sur le port série.
Pour envoyer des nombres, utiliser plutôt la fonction
print().
●
avalaible( ) : test si le port est disponible et contient des
données
●
Read( ) : lit des données dans le port série
Photorésistance
void loop() {
int valeur = analogRead(A0);
Serial.println(valeur);
delay(250);
}
Infrarouge
# include <IRremote.h>
int RECV_PIN = 8;
int ledPin = 3;
IRrecv irrecv(RECV_PIN);
decode_results results;
Infrarouge
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
if(results.value == -2094865891)
digitalWrite(ledPin, LOW);
else
digitalWrite(ledPin, HIGH);
irrecv.resume(); // Réception de la prochaine valeur
}}
WIFI-ESP8266
WIFI-ESP8266
#include <SoftwareSerial.h>
SoftwareSerial espSerial(3,2); // RX = 3, TX = 2
Serial.available()/read()/write()
while (espSerial.available()) {
Serial.write(espSerial.read()); // réponse ESP8266 -> moniteur série
}
while (Serial.available()) {
espSerial.write(Serial.read()); // instructions dans Serial -> ESP8266
}