SE et codesign
SE et codesign
SE et codesign
SE et codesign
Conception et codesign
SE et codesign
SE et codesign
SE et codesign - Avantages
Amélioration des performances : parallélisme, algorithmes distribués,
architecture spécialisée, etc.
Mise à profit des améliorations des outils de conception fournis par les
fabricants de circuits logiques.
32 KB (ATmega328P)
Flash Memory
of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
Weight 25 g
Microcontrôleur Arduino UNO
Le modèle UNO de la société ARDUINO est une carte électronique dont le cœur est
un microcontrôleur ATMEL de référence ATMega328 de 8bits de
la famille AVR dont la programmation peut être réalisée en langage C/C++
Avec les fonctions Arduino (pinMode, digitalRead, digitalWrite ...), les signaux
sont repérés selon la numérotation des connecteurs (partie gauche).
En revanche, lorsque l'on programme en bas niveau, on utilise le nom des registres/des
broches du microcontrôleur (partie droite).
Le programme principal (fonction main) est imposé, non modifiable, et décrit ci-
dessous.
// PROGRAMME ARDUINO IMPOSE
#include <WProgram.h>
int main(void) {
init(); // initialisations ARDUINO pour fonctions utiles : delays, PWM ...
setup();
for (;;) loop(); // répète indéfiniment loop()
return 0;
}
Les seules parties que l'on développe spécifiquement sont :
– la fonction setup() : doit contenir les initialisations (times, interrupts...)
– la fonction loop() : fonction répétée indéfiniment
Introduction à l’IDE
• Les microcontrolleurs d’Arduino sont programmés en
utilisant l’IDE (Integrated Development Environment)
d’Arduino
• Peut être téléchargé gratuitement à partir de:
http://arduino.cc/fr/Main/Software
• Les programmes Arduino, appelés "sketches", sont écrits
dans un langage de programmation basé sur C ++
• Chaque croquis doit avoir une fonction setup() exécutée une
seule fois, suivie d'une fonction loop() exécutée plusieurs
fois
• De nombreux capteurs et autres périphériques matériels
sont livrés avec des bibliothèques et des tutorielles
Microcontrôleur Arduino UNO
Langage C pour ARDUINO UNO
+ - + - + A.Pin -
D.Pin. GND D.Pin GND 5V A.Pin GND
analogWrite(pin, valeur) tone(pin, fréquence) analogRead(pin)
digitalWrite(pin, valeur) tone(pin, fréquence, durée)
noTone(pin)
Cas1 : Clignoter une led
Cas1 : Clignoter une led
CALCUL DE RÉSISTANCE POUR UNE LED
Attention, la valeur d’une résistance se calcul par rapport à ce que l’on veut alimenter.
Si la valeur est trop grande, votre led ne s’allumera pas correctement, mais au
contraire, si la valeur de la résistance n’est pas suffisante, votre led grillera.
Cas1 : Clignoter une led
CALCUL DE RÉSISTANCE POUR UNE LED
Cas1 : Clignoter une led
CALCUL DE RÉSISTANCE POUR UNE LED
R=(U-Ul)/I
(R) : Résistance (Ohm)
(U) : Tension de l’alimentation (transformateur en V)
(Ul) : Tension de la led (V)
(I) : Intensité de la led (A)
Exemple :
Alimenter une led CMS rouge (Ul=2,2 ; I=0,020A) avec un
transformateur (U=12V en courant continu)
R=(12-2,2)/0,02=490 Ohm.
void setup()
{ led = 9;
pinMode(led, OUTPUT);
Serial.begin(9600); // communications à 9600 baud
(char /second)
}
void loop()
{
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
Serial.print("Count is ");
Serial.println(count);
count++;
}
Exercice 1 : Feux de signalisation
Exercice 1 : Feux de signalisation
Exercice 1 : Feux de signalisation
Cas 2 : Afficher la luminosité sur la sortie serial
Cas 2 : Afficher la luminosité sur la
sortie serial
void setup() {
// Initialise la communication avec le PC
Serial.begin(9600);
}
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée void loop() {
// Mesure la tension sur la broche A0
int valeur = analogRead(A0);
// Envoi la mesure au PC pour affichage et attends 250ms
Serial.println(valeur);
delay(250);
}