Vous êtes sur la page 1sur 8

Interdiction :

L’Arduino UNO est un module/carte de développement (dev board) avec un microcontrôleur


Athmel ATMEGA328P, grand public, peu onéreux, qui connaît un grand succès (= grande
communauté)
Arduino : entreprise Italienne qui conçoit des cartes de développement grand public, avec un
environnement de développement facilement utilisable. l'Arduino UNO n'est pas son seul
produit. Elle propose d'autres cartes, basés sur des microcontrôleur Atmel ou autres.
Athmel : Fabriquant de composant électroniques, spécialisé dans le microcontrôleur.
D'autres fabriquant existent Les microcontrôleurs ont des caractéristiques qui peuvent beaucoup
différer

L'ATMEGA328 est un microcontrôleur d'Atmel.


Ses caractéristiques :
8 bits
20 Mhz = 20 millions d'instructions à la seconde
32Ko de mémoire _Flash_, pour le programme
2Ko de RAM, pour les données
1Ko de EEPROM, pour les données qui doivent être conservées
Ses entrées-sorties :
23 entrées/sorties (binaires) programmables
6 entrés analogiques (ADC)
6 sorties _PWM_ (Pulse Width Modulation)
Bus : SPI, I2C, série...
RAM = Random Access Memory
= mémoire _vive_
Mémoire _volatile_ : quand le circuit n'est plus alimenté, les données sont perdues
Mémoire en lecture et écriture
Accès rapide
ROM = Read Only Memory
= mémoire _morte_
Mémoire non volatile : les données subsistent même si le circuit n'est plus alimenté
mémoire en lecture seule l'écriture est (des fois) possible, mais plus longue et complexe
EEPROM = Electrically Erasable Programmable ROM
Mémoire ROM qui peut être effacée et reprogrammée électriquement
_Flash_ = un certain type de mémoire EEPROM.
L’Arduino UNO est un ATMEGA328, avec des composants autour pour nous simpliffer
la vie :
Un oscillateur à 16Mhz (un _quartz_)
Un régulateur de tension : l'ATMEGA doit être alimenté en 5V, l’Arduino peut être alimenté
entre 6V et 20V
Une interface USB pour :
- pouvoir programmer l'ATMEGA via l'USB
- pouvoir communiquer avec l'ATMEGA pendant qu'il
Fonctionne (via le bus série)
Des connecteurs pour facilement brancher des fils

Home Work 01 :

Objectif : Comment configurer les feux de circulation lors de la saisie de l'heure. Réalisant
ainsi le respect des délais (la temporisation)

Materials utilisé :
Le programme :
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7,HIGH);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
delay(15000);

digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
delay(4000);

digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
delay(15000);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
delay(4000);
}
La simulation :
Home Work 02 :

Objectif : Comment lire les données du capteur ‘INPIT’ et le convertir de 8 bits en 10 bit puis
leur donner ‘OUTPUT’

Materials utilisé :

Le programme :
int led1=13;
int led2=12;
int led3=11;
int cap=A0;
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(A0, INPUT);
}
void loop(){
int val=analogRead(A0);
int x=val*(0.25);
if(x<87){
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(11,LOW);}
if((x>87)&&(x<170)){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);}
if(x>170){
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);}
}
La simulation :

Home Work 03 :

Objectif : Maintenir l'opération après une panne d'alimentation en stockant dans ‘EEPROM’
à l'aide de l’instruction ‘EEPROM.read’ et ‘EEPROM.write’

Materials utilisé :
Le programme :
int led1=2;
int led2=12;
int but1=3;
int but2=13;
int lastpress=0;
int addr=3;
void setup() {
pinMode(2, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, INPUT);
pinMode(3, INPUT);
}
void loop(){
lastpress=EEPROM.read(addr);
if(digitalRead(but1)==HIGH){
lastpress=3;
EEPROM.write(addr,lastpress);
}
else if(digitalRead(but2)==HIGH){
lastpress=4;
EEPROM.write(addr,lastpress);
}
if (lastpress==3){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
}
else if(lastpress==4){
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
}
delay(200);}
La simulation :

Conclusion :

Arduino est un langage assez simple à prendre en main et permettant de s’initier à la


robotique et la domotique. Il permet de réaliser de nombreuses choses cela peut aller d’un
simple affichage sur un écran LCD à une application qui va commander un robot par
Bluetooth.