Vous êtes sur la page 1sur 24

Cours systèmes embarqués

Carte Arduino
But de ce cours
Carte Arduino
Ø Présentation générale de l’Arduino
Ø Historique
Ø Constitution générale des cartes
Ø Carte Arduino UNo
Ø Exemple d’application
Présentation générale de l’Arduino
Le système Arduino est une carte électronique
basée autour d’un microcontrôleur
Système
Arduino

Partie Partie
électronique programmation

Carte & ( capteur et actionneur ) Logiciel de programmation ou IDE


Présentation générale de l’Arduino
Système
Arduino
Capteurs Actionneurs
(Entrées) (Sorties)
Moteurs
Température
Servomoteurs
Pression
Pompes
Humidité
Electrovannes
distance
Historique
• L’Arduino est un projet
inventé en 2005 par une
équipe italienne de l’Institut du
Design d’Interaction d’Ivrea
• Open source
• Facile a programmée
• Moins chère Premier modèle de la carte Arduino
• Accessible
le nom "Arduino" vient d’un pub où l’équipe composée de Massimo Banzi,
David Cuartielles, Nicholas Zambetti et David Mellis, rejoint après par Tom
Igoe et Gianluca Martino, avaient l’habitude de se retrouver.
Constitution générale des cartes Arduino
Microcontrôleur

Carte
Arduino

Port de programmation et
Entrées sorties connecteur d’alimentation
Carte Arduino UNO
Carte Arduino UNO
Carte Arduino UNO
Variétés des Carte Arduino
v Type du Microcontrôleur
microcontrôleur d'architecture Atmel AVR :
Exemple: Atmega328p
Microcontrôleur d'architecture
ARM
Exemple: Cortex-M3 pour l'Arduino Due).
v Taille de la carte

v Nouvelle fonctionnalité ( Exemple Bluetooth )


Variétés des Carte Arduino
Variétés des Carte Arduino
Programmation de la carte Arduino
Integrated Development Environment (IDE ):
Espace de développement intégré
§ application Java,libre et multiplateformes, servant
d’éditeur de code et de compilateur,
§ transférer le firmware et le programme au travers de
la liaison série (RS232, Bluetooth ou USB selon le
module
Programmation de la carte Arduino

Description de interface
Programmation de la carte Arduino
Description de l’interface

Structure globale du programme


Configuration
et une entête déclarative
initialisation une partie « configuration » qui ne sera
exécutée qu'une fois (fonction setup( ) )

Boucle une partie constituée d'une boucle


sans fin que le programme
répètera à l'infini
( fonction loop( ) ) : c'est le coeur du programme
Exemple d’application
Faire clignoter une LED sur la broche12

// --- constantes des broches ---


const int LED=2; //declaration constante de broche
void setup() { // debut de la fonction setup()
pinMode(LED, OUTPUT); //met la broche en sortie
} // fin de la fonction setup()
//****** FONCTION LOOP = Boucle sans fin ***********
// la fonction loop() s'exécute sans fin en boucle
void loop(){ // debut de la fonction loop()
// instructions à exécuter par le programme principal
digitalWrite(LED,HIGH); // met la broche au niveau haut (5V) –
//allume la LED
delay(500); // pause de 500 millisecondes (ms)
digitalWrite(LED,LOW); // met la broche au niveau bas (0V) –
// éteint la LED
delay(500); // pause de 500ms
} // fin de la fonction setup()
// --- Fin programme ---
Types
de
variables
Instructions
Digital I/O Analog I/O Math Bits and Bytes
digitalRead() analogRead() abs() bit()
digitalWrite() analogReference() constrain() bitClear()
pinMode() analogWrite() map() bitRead()
max() bitSet()
min() bitWrite()
pow() highByte()
sq() lowByte()
sqrt()
Trigonometry Time Communication External Interrupts
cos() delay() Serial attachInterrupt()
sin() delayMicroseconds() Stream detachInterrupt()
tan() micros() USB Interrupts
millis() Keyboard interrupts()
Mouse noInterrupts()
Mesure de Température
Programme
//Compiler: mikroC PRO for PIC v4.60
//Target PIC: PIC16F877A while (1){
void main() {
sbit LCD_RS at RB4_bit; ADRead = (ADC_Get_Sample(0) * 500) >> 10;
sbit LCD_EN at RB5_bit; vDisp[0] = ADRead / 100;
PORTA = 0;
sbit LCD_D4 at RB0_bit; vDisp[1] = (ADRead / 10) % 10;
TRISA = 0X01;
sbunsigned long ADRead; vDisp[2] = ADRead % 10;
PORTB = 0;
Display[1] = vDisp[0] + 48;
unsigned int vDispit LCD_D5 at RB1_bit; TRISB = 0;
sbit LCD_D6 at RB2_bit; Display[2] = vDisp[1] + 48;
LCD_Init();
sbit LCD_D7 at RB3_bit; Display[3] = vDisp[2] + 48;
LCD_Cmd(_LCD_CURSOR_OFF);
LCD_Chr(1, 8, Display[0]);
LCD_Cmd(_LCD_CLEAR);
LCD_Chr(1, 9, Display[1]);
sbit LCD_RS_Direction at TRISB4_bit; LCD_Out(1, 1, "Temp:");
LCD_Chr(1, 10, Display[2]);
sbit LCD_EN_Direction at TRISB5_bit; //Display = "+125 'C";
sbit LCD_D4_Direction at TRISB0_bit; LCD_Chr(1, 11, Display[3]);
Display[4] = 39; //'
sbit LCD_D5_Direction at TRISB1_bit; LCD_Chr(1, 12, Display[4]);
Display[5]= 'C';
LCD_Chr(1, 13, Display[5]);
sbit LCD_D6_Direction at TRISB2_bit; ADCON1 = 0x0E;
sbit LCD_D7_Direction at TRISB3_bit; //LCD_Out(1, 8, ); // 'Show temperature
ADC_Init();
delay_ms(200); //200ms delay for waiting
}
[3];
unsigned char Display[7]; }
Programme Arduino

void setup() {
Serial.begin(9600);
}
void loop() {
int v=analogRead(A0);
float tension=map(v,0,1023,0,5000);
float temperature =tension/10;
Serial.print(" tension numerique ");
Serial.println(v);
Serial.print(" tension analogique en volts ");
Serial.println(tension);
Serial.print(" temperature en celcius ");
Serial.println(temperature);

delay(1000);
}
// include LCD library code
Programme Arduino
#include <LiquidCrystal.h>
#define LM35_pin 0 // LM35 output pin is connected to Arduino A0 pin
// LCD module connections (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
// set up the LCD's number of columns and rows
lcd.begin(16, 2);
lcd.setCursor(2, 0);
lcd.print("Temperature:");
analogReference(INTERNAL);
}
float temp;
char text[8];
void loop() {
delay(1000); // Wait 1s between readings
temp = analogRead(LM35_pin) / 9.3; // Read analog voltage and convert it to °C ( 9.3 = 1023/(1.1*100) )
sprintf(text, "%3u.%1u%cC", (int)temp, (int)(temp*10)%10, 223);
lcd.setCursor(3, 1);
lcd.print(text);
}
Travail: Réaliser un thermomètre a l’aide d’un
capteur LM35:
§ Une Led verte s’allume si la température est
entre 35°C et 37 °C
§ Si la température est une supérieur a 37 °C et inferieur
a 38 °C une Led orange s’allume
Si la température est supérieur a 38 °C une Led
rouge s’allume
Merci
pour votre attention

Vous aimerez peut-être aussi