• Aucun résultat trouvé

«Shield» multifonction

N/A
N/A
Protected

Academic year: 2022

Partager "«Shield» multifonction"

Copied!
15
0
0

Texte intégral

(1)

« Shield » multifonction

Fonctionnalité

D0 Rx D1 Tx

D2 Poussoir 1 D3 * Poussoir 2 D4 capteur DHT11 D5 * Buzzer

D6 * récepteur IR D7 libre

D8 libre

D9 * Led RGB rouge D10 * Led RGB bleu D11 * Led RGB vert D12 Led rouge D13 Led bleu A0 Potentiomètre A1 capteur LDR A2 capteur LM35 A3 libre

A4 SDA A5 SCL

* PWM

(2)

« Shield » multifonction

Schéma

(3)

Types de données

Le type correspond à la taille que peut prendre une constante ou une variable Le choix du type permet d’optimiser l’occupation en mémoire.

.* le type double est identique au type float sur l’ensemble des cartes ATEMEGA sauf pour le DUE ou double vaut 8 octet (64 bits)

Type Taille en mémoire Valeur min/max

boolean 1 octet (8 bits) 0/1 (true/false)

int 2 octets (16 bits) -32768 / 32767

long 4 octets (32 bits) -2 147 483 648 / +2 147 483 647

byte 1 octet (8 bits) 0/255

unsigned int 2 octets (16 bits) 0/65535

word 2 octets (16 bits) 0/65535

unsigned long 4 octest (32 bits) 0/4294967295

float 4 octets (32 bits) -3.4028235E+38 / +3.4028235E+38

double * 4 octets (32 bits) -3.4028235E+38 / +3.4028235E+38

char 1 octet (8 bits) -128/+127

Valeurs binaires

Valeurs numériques entières signées

Valeurs numériques entières non signées

Valeurs numériques à virgule

Caractères

(4)

Constante / Variable

Constante

Une constante est une valeur qui ne changera pas pendant toute l’exécution du

programme. Elle est définie par le mot-clé const et elle n'occupe pas de place dans la mémoire SRAM de l'arduino.

exemple : const byte pinled = 10;

Variable

Une variable suit les mêmes règles que la constante sans le mot clé const.

Une variable occupe de la place dans la mémoire SRAM exemple : int tension = 0;

Portée d’une variable

Variable globale : variable qui est valide et utilisable sur l’ensemble du programme.

Toute variable déclarée à l’extérieur d’une fonction (dont setup et loop) est une variable globale.

Variable locale : variable qui est valide et utilisable seulement à l’intérieur de la fonction dans laquelle elle a été déclarée.

(5)

Entrée / sortie digitale

pinMode()

Description : Configure la pin spécifiée en entrée ou en sortie.

Syntaxe : pinMode(pin, mode) ou pin est le numéro de la pin sur laquelle on souhaite faire la configuration. Mode indique la configuration de la pin INPUT, OUTPUT,

INPUT_PULLUP.

exemple : pinMode(13, OUTPUT);

digitalWrite()

Description : positionne la valeur HIGH ou LOW sur la pin spécifiée.

Syntaxe : digitalWrite(pin, value) ou pin est le numéro de la pin sur laquelle on souhaite écrire et value est la valeur souhaitée HIGH ou LOW.

exemple : digitalWrite(13, HIGH);

digitalRead()

Description : lit la valeur HIGH ou LOW sur la pin spécifiée.

Syntaxe : digitalRead(pin) ou pin est le numéro de la pin sur laquelle on souhaite lire.

En retour de la fonction on obtient HIGH ou LOW.

exemple : digitalRead(3);

(6)

Allumage d’une LED

const byte led1 = 13; //led1 connectée à pin 13 const byte sw1 = 2; // sw1 connecté à pin 2 void setup() {

pinMode(led1, OUTPUT); //Led1 en sortie pinMode(sw1, INPUT); //sw1 en entrée }

void loop() {

bool etat_poussoir; //déclaration variable de type bool

etat_poussoir = digitalRead(sw1); //lecture de sw1 => etat_poussoir = valeur sw1 digitalWrite(led1, etat_poussoir); //écriture de led1 => valeur etat_poussoir

}

//en plaçant le signe "!" devant la fonction on inverse l'état // LOW => HIGH et HIGH => LOW

//état_poussoir = !digitalRead(sw1);

Switch_led1

(7)

Gestion du temps

delay()

Description : Met le programme en pause pendant le temps (milliseconde) spécifié en paramètre

.

Syntaxe : delay (ms)

Paramètre : ms : le nombre de millisecondes de la pause (type unsigned long) exemple : delay(1000) met le programme en pause pour 1 seconde

millis()

Description : Retourne le nombre de millisecondes depuis le démarrage du programme.

Ce nombre provoque un dépassement (repasse à zéro) au bout d’environ 50 jours.

Syntaxe : aucun paramètre.

Sortie : Nombre de millisecondes depuis le démarrage du programme (type unsigned long)

exemple : time = millis()

(8)

Clignottement d’une LED

const byte led1 = 13; //led1 connectée à pin 13

const unsigned long temps1 = 100; //temps2 = 0.1 seconde const unsigned long temps2 = 1000; //temps1 = 1seconde void setup() {

pinMode(led1, OUTPUT); //Led1 en sortie }

void loop() {

digitalWrite(led1, HIGH); // allume la led1 (sortie au niveau haut) delay(temps1); // pause de temps1

digitalWrite(led1, LOW); // éteind la led1 (sortie au niveau bas) delay(temps2); // pause de temps2

}

Blink_led1

(9)

Structure de contrôle « IF »

Description

L'instruction if ("si" en français), utilisée avec un opérateur logique de comparaison, permet de tester si une condition est vraie, par exemple si la mesure d'une entrée analogique est bien supérieure à une certaine valeur.

Opérateurs logiques de comparaison :

x == y (x est égal à y) x != y (x est différent de y) x < y (x est inférieur à y) x > y (x est supérieur à y)

x <= y (x est inférieur ou égal à y) x >= y (x est supérieur ou égal à y)

Syntaxe

if (uneVariable > 50) { // faire quelque chose } if (x > 120) digitalWrite(LEDpin, HIGH);

Les accolades peuvent être omises après une instruction if. Dans ce cas, la suite de la ligne(qui se termine par un point-virgule) devient la seule instruction de la

condition.

(10)

Gestion du terminal série

Serial.begin()

Description : défini la vitesse de transmission de la sortie série Syntaxe : Serial.begin(speed) ou speed est la vitesse en bauds

Paramètre optionnel : Serial.begin(speed, config) ou config défini le nombre de bit de data, la parité et le nombre de bit d’arrêt.

exemple : Serial.begin(9600); //défini une transmission série à 9600 bauds

Serial.print()

Description : Envoi vers le port série de data sous forme de texte ASCII.

Syntaxe : Serial.print(val) ou val peut être des nombres ou des chaines de caractères Paramètre optionnel : Serial.print(val, format) ou format peut prendre le paramètre BIN, OCT, DEC, HEX pour les bases et 0, 1, 2, 3, 4 pour les nombres.

exemples : Serial.print (" hello word"); // enverra « hello word » Serial.print(125.346, 2) enverra « 125,35 »

Serial.println()

Description : identique à Serial.print() mais avec en plus un retour chariot et une nouvelle ligne.

(11)

Affichage du temps machine

unsigned long time; //définition du type de la variable time

void setup(){

Serial.begin(9600); //initialisation de la vitesse à 9600 bauds }

void loop(){

Serial.print("Temps: "); //envoi de la chaine de caractère « Temps: » vers la sortie série time = millis(); //lecture du temps machine

Serial.println(time); //envoi du temps vers la sortie série delay(1000); //pause d’une seconde

}

Affiche_temps

(12)

Entrée / sortie analogique

analoglWrite()

Description : Ecrit une valeur analogique sur une pin PWM.

Cette fonction génère un signal tout ou rien de rapport cyclique variable de 0 à 255

Syntaxe : analoggWrite (pin, valeur) // valeur de 0 à 255

exemple : digitalWrite(13, HIGH);

analogRead()

Description : Lit une tension sur entrée analogique et la convertit en numérique avec une résolution de 10 bits. Une signal de 0-5V est converti en un entier de 0-1023. La résolution est de 5V/1024 soit 4.9 mV.

Syntaxe : analogRead(pin)

exemple : digitalRead(3); // lit la tension sur la pin A3

(13)

Séquenceur pour clef « iambiques »

Cahier des charges

Clef « iambiques » : manipulateur à 2 contacts latéraux => point et traits Réglage de la vitesse de manipulation de 10 mots/mn à 60 mots/mn Action sur les 2 contact en simultané => point + trait

Cadencement

Temps de référence (tempo) = la durée du point Trait = 3 x durée du point

Espace entre 2 symboles = 1x durée du point Espace entre 2 lettres = 3 x durée du point Espace entre 2 mots = 5 x durée du point

Mots de référence : PARIS => temps équivalent 48 x durée du point 10 mots/mn => 480 tempo/mn => tempo = 125 ms

60 mots/mn => 2880 tempo/mn => tempo = 21 ms

(14)

Séquenceur pour clef « iambique »

Organigramme de

programmation

(15)

Séquenceur pour clef « iambique »

const byte pin_point=2; // contact point const byte pin_trait=3; // contact trait const byte pin_pot=0; // réglage vitesse const byte pin_buzzer=5; // buzzer en pin 5 const int tonalite=600; // fréquence buzzer void setup() {

pinMode(pin_point, INPUT); // pin_point en entrée pinMode(pin_trait, INPUT); //npin_trait en entrée }

void loop() {

int tempo=((analogRead(pin_pot))/10)+21;/ / lecture valeur potentiomètre mise à l’échelle boolean point=!digitalRead(pin_point); //lecture entrée pin_point

boolean trait=!digitalRead(pin_trait); //lecture entrée pin_trait if(point){

tone(pin_buzzer, tonalite);

delay(tempo);

noTone(pin_buzzer);

delay(tempo);

} if(trait){

tone(pin_buzzer, tonalite);

delay(tempo*3);

noTone(pin_buzzer);

delay(tempo);

}

iambic.ino

Références

Documents relatifs

Existence and multiplicity of the solutions for p(x)- Kirchoff-type equation with Neumann boundary conditions via genus theory. 16h45-17h00 Najim Mansour, El Yamani Diaf,

Au bout de ce commun martyre, comme un ange dans la lucarne de maint tableau religieux, le poème tend une palme — cette palme, justement, qu’on dit la palme du martyre et qui est

Pour Maggy et Mila, la posture qui se dessine relève d’un geste de survie : il faut se mettre en action, débusquer la poésie des lieux, aller à la rencontre des gens,

-Sépare les éléments d’une énumération (liste de noms) Ex.: The fruit basket contained apples, bananas, and oranges.. -Précède une proposition relative non limitative -Sépare

Ces mêmes phénomènes sont observables dans le contexte arabe, et sans vouloir dénier leur importance dans le domaine prosodique, nous signalons que les investigations expérimentales

The second study (page e407) examined the trajec- tory of weight gain in a sample of 280 women in Halifax, NS, 9 to answer 2 key questions: Does prepregnancy BMI influence

Modeled after an existing practice framework for poly- pharmacy in LTC, 14 PAUSE (philosophy of care, assess- ing the evidence, understanding expectations, simplify, evolution

Des stratégies nouvelles se mettent donc en place, comme l’acquisition de symbiose, qui se manifeste par une relation de dépendance mutuelle entre un acquéreur et une société cible