========== Parcours Arduino débutant ==========
===== Que peut on faire avec un Arduino =====
[[https://www.geeek.org/domotique-5-idees-de-montages-avec-l-arduino-772/|Domotique ]]
[[https://www.maison-et-domotique.com/72194-devriez-utiliser-cartes-arduino-vos-projets-domotique/|Autres Idées 001]]
[[https://www.arduino-france.com/projets/3-projets-simples-que-vous-pouvez-realiser-avec-arduino/| Idées 002]]
[[https://www.locoduino.org/|Modélisme Ferroviaire ]]
[[https://www.firediy.fr/article/realisation-d-un-drone-a-base-d-arduino-chapitre-1|Fabriquer un Drone avec un Arduino]]
[[http://f4cvm.free.fr/arduino/projet/modelisme/recepteur_rc/recepteur_rc.htm|Modelisme 001]]
[[http://bateaux.trucs.free.fr/ageneral.html| Programmes pour modelisme ]]
[[https://gladysassistant.com/fr/blog/connecter-un-arduino-au-raspberry-pi/|Arduino et Raspberry 001 ]]
[[https://www.aranacorp.com/fr/communication-i2c-entre-raspberry-pi-et-arduino/|Arduino et Raspberry 002 ]]
[[https://www.raspberry-lab.fr/Tutoriels-Arduino/Communication-serie-entre-Raspberry-Pi-et-Arduino-Uno/|Arduino et Raspberry 003 ]]
[[https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjV-7LGprHsAhUNzIUKHc1_DmA4ChAWMAR6BAgGEAI&url=http%3A%2F%2Fwww.multimedialab.be%2Fdoc%2Ferg%2F2018-2019%2FArduino%2FMouvement_lumiere_et_son_avec_Arduino_et_Raspberry_Pi_Simon_Monk_Eyrolles_2016.pdf&usg=AOvVaw13_jH6FogQ5d_7r1I5c8Ux| Un Livre qui étudie des projets avec le Raspberry et/ou L'Arduino]]
[[https://www.tubefr.com/feu-d-artifice-electronique-programmable-arduino_7.html#title| On fini en beauté : avec un Feu d'artifice ]]
===== Toutes les cartes arduino =====
[[https://www.arduino.cc/en/Main/Products| les cartes arduino actuelles ]]
===== Les cartes Arduino que l'on va utiliser =====
{{ :start:arduino:uno_a000066_featured_1_2.jpg?520x330 |Arduino UNO}}
{{ :start:arduino:mega_4784333051_7e90eaa383_b-e1561212488602.jpg?512x288 |Arduino Mega}}
{{ :start:arduino:nano_a000005_featured_2.jpg |Arduino Nano}}
Arduino Nano Connect RP2040
[[https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers ]]
==== Les logiciels utiliser ====
== A télécharger sur votre ordinateur :==
La version **IDE Arduino** au 01/09/2024 est la 2.3.2 , mais on peut bien sur utiliser une version plus ancienne 1.8.19 ou [[https://login.arduino.cc/login?state=hKFo2SA1RTJfeXBkZ053bXJYQjZjZGpTU1o4VVNERzlGQ0dQWKFupWxvZ2luo3RpZNkgcWxZanZvdlpXMFJKcVBVenhieWNNWkM3RF8wdDBSMGujY2lk2SBycjZMU09TejU3aDdmdnNIZFJYWFBrWkczRVJvWFRmWg&client=rr6LSOSz57h7fvsHdRXXPkZG3ERoXTfZ&protocol=oauth2&authorizeTimeoutInSeconds=5&redirect_uri=https%3A%2F%2Fcreate.arduino.cc%2Feditor&logout_uri=https%3A%2F%2Fcreate.arduino.cc&audience=https%3A%2F%2Fapi.arduino.cc&scope=openid+profile+email&response_type=code&response_mode=query&nonce=bi5jN2NGLW1pOS5TbER4dklJd3hlY0JsNFlXRUI3Y1E0cGhHb2ZKT0hGcQ%3D%3D&code_challenge=tFaT2ogiqAOB0De9K8tZ6z7ro0Ceg1wUHWtltFcfpwU&code_challenge_method=S256&auth0Client=eyJuYW1lIjoiYXV0aDAtc3BhLWpzIiwidmVyc2lvbiI6IjEuMTIuMSJ9#/sso/login|une version en ligne
]]
*[[https://www.arduino.cc/en/Main/Software| IDE Arduino ]]
Interface graphique d'utilisation de l'utilitaire **"avrdude"** de Atmel (celui qui est utilisé, notamment, par Arduino IDE pour téléverser le firmware ou fichier .hex sur la carte mère de votre imprimante préférée, dès lors qu'elle est à base de microcontroleur Atmel (comme l'ATmega 2560, UNO, ou ATiny ). Cet outil est développé et entretenu par Zak Kemble (cf. http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/). *[[https://github.com/zkemble/AVRDUDESS|AVRDUDESS]]
**PlateformIO** est un éco système open source conçu pour le développement IOS supportant le framework Arduino. Celui-ci est accessible depuis tout type de systèmes d’exploitation puis qu’il est programmé en python. *[[https://platformio.org/|platformio pour programmer un arduino]]
== Pour tester en ligne ==
[[https://www.tinkercad.com/| Tinkercad]]
Après avoir creer un compte gratuit ou utiliser votre compte Google , vous pourrez tester vos montage Arduino et aussi faire de modélisation ( Simplifiée ) pour des pieces 3D .
[[https://www.tinkercad.com/things/giPzFKw4x5v-copy-of-6ledschenillard/editel?sharecode=gYGOnM5FtS1G1TyKFkYsWSuQaWjJpeSeTYVL-3A2RjQ|Un exemple de montage arduino]]
==== Le materiel dont on va avoir besoin ====
=== Comparaison des caractéristiques des principales cartes Arduino et autres cartes ===
^ Cartes^ MControleurs ^ (bits) ^ Mhz^ V^ Flash(KB)^Boot(KB)^SRam(KB)^EEprom^DigitalI/O^PWM^AnalogI/O^int^
|** Uno** |ATmega328P |8 |16 |5 |32 |0.5 |2 |1 |14 |6 |6|2|
| **Nano **| ATmega328P |8 |16 |5 |32 |2 |2 |1 |14 |6 |8|2|
|** Mega** |ATmega2560 |8 |16 |5 |256 |8 |8 |4 |54 |15 |16|6|
|[[https://store.arduino.cc/en-fr/products/giga-r1-wifi|Giga]] |STM32H747XI 2Coeurs| 32|M7=480 M4=240 |3.3|2MB| |1MB| | 76 | 12 | 12 |76|
|Micro |ATmega32U4 |8 |16 |5 |32 |4 |2.5 |1 |20 |7 |12|5|
| Leonardo | ATmega32U4 |8 |16 |5 |32 |4 |2.5 |1 |20 |7 |12|5|
| Nano RP2040 |ARM Cortex M0+ |32|133|3.3|16M|--|264|--|20|20|8|20|
| MKR ZERO| SAMD21 Cortex-M0 |32 |48 |3.3 |256 | --| 32| no| 22|12 |8|10|
| [[https://www.gotronic.fr/art-carte-arduino-due-18742.htm#complte_desc|DUE]] | AT91SAM3X8E | 32 | 84| 3.3|512 |-- |96 |-- |54 |12 |14|54|
| MKR WIFI 1010|SAMD21 Cortex-M0 |32| 48 |3.3 | 256|-- | 32|no |8 |12 |8 |10|
| [[https://store.arduino.cc/arduino-mkr-vidor-4000|MKR Vidor 4000]]] | Intel® Cyclone® 10CL016 FPGA-SAMD21 Cortex®-M0 |32 |48/200 | 3.3| 2000| --|8000 |no | 22|tout |8|8|
| [[http://wiki.jelectronique.com/doku.php?id=esp32|ESP32]] | Xtensa® single-/dual-core | 32 |240 |2.7 ~ 3.6 | 64000| --|520 | 448 ROM|28 |tout |18|--|
| [[https://wiki.mchobby.be/index.php?title=PYBStick-Arduino|PYBStick26]] | STM32F411 | 32 |100 |1.7 V to 3.6 | 512|-- |128 | --|17 |17 |6|--|
| [[https://www.sla99.fr/2019/12/01/prise-en-main-attiny85/|Doc]][[https://www.cachem.fr/fabriquer-programmateur-attiny-85/|Atiny85]] | ATINY85 | 8 |1-20 |5 | 8| -| 512o|512o | 6| 2|2|-|
| | | | | | | | | | | |||
{{ :start:arduino:liste_des_composants_et_du_materiel_pour_le_mooc_t.pdf | Materiels }}
=== Des liens pour des kits arduino ===
[[https://www.arduino-france.com/review/quel-est-le-meilleur-kit-arduino-pour-debuter/| Arduino France : Kits 001 Arduino]]
[[https://www.cdiscount.com/search/10/kits+arduino.html#_his_| Cdiscount : Kits 002 Arduino]]
[[https://www.kubii.fr/29-kits-arduino| Kubii : Kits 003 Arduino]]
[[https://www.lextronic.fr/starter-kit-arduino-en-francais-k020007-27117.html| Lextronic : Kits 004 Arduino]]
[[https://boutique.semageek.com/fr/16-pack-et-starter-kits-arduino| Semageek :Kits 005 Arduino]]
[[https://store.arduino.cc/genuino-starter-kit| Arduino cc :Kits 006 Arduino]]
[[https://www.gotronic.fr/art-kit-de-base-pour-uno-12429.htm| Gotronic :Kits 007 Arduino]]
[[https://www.ebay.fr/sch/i.html?_nkw=kit+arduino+uno| eBay : Kits 008 Arduino]]
[[https://www.adafruit.com/product/3588|Adafruit : Kits 009 Arduino]]
[[https://www.sainsmart.com/products/sainsmart-mega2560-r3-1602lcd-starter-kit-with-17-basic-arduino-projects| SainSmart : Kits 010 Arduino]]
.......
==== Pour apprendre à utiliser un Arduino ====
[[https://www.fun-mooc.fr/courses/course-v1:MinesTelecom+04017+session09/about|Un MOOC pour s initier à l'Arduino (fin inscription 12/2020) ]]
[[http://wiki.funlab.fr/index.php/Fil_rouge|Des cours donner au Funlab de Tours il y a quelques temps ...]]
[[http://wiki.funlab.fr/index.php/Arduino#Quizz_pour_d.C3.A9buter_avec_l.27Arduino|Des Quiz pour mieux connaître l'Arduino]]
[[http://fablab37110.ovh/doku.php?id=start:arduino:langage_c| Le langage C ]]
[[https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c| Le Langage C++]][[http://casteyde.christian.free.fr/cpp/cours/online/book1.html| Le C++ en Ligne ]]
[[https://www.mon-club-elec.fr/?s=arduino| Reference Langage Arduino FR]]
[[https://www.hwlibre.com/fr/attiny85/|ATtiny 85]]
{{ :start:arduino:arduinosram.tar.bz2 |Doc : SRAM Arduino}}
[[http://www.juggling.ch/gisin/microcontroleur/code_exemples.html|Des programmes Arduino ...]]
[[https://eskimon.fr/|Arduino : le blog d'Eskimon]]
=== Des Livres ===
*{{ :start:arduino_le-guide-complet.pdf |Arduino : le guide complet pdf FR}}
*{{ :start:arduino:arduino_pour_les_nuls.pdf |Arduino pour les nuls}}
{{ :start:arduino:le_grand_livre_d_arduino.pdf | Arduino le grand Livre}}
{{ :start:arduino:arduino_-_reference-1.pdf | Arduino Reference EN}}
==== On apprend de nos erreurs ====
[[https://arduino-france.site/locales-globales-variables/#3|les variables globales]] et la fonction void setup [[https://bentek.fr/5-arduino-types-donnees/| Les variables ]]
[[https://www.robot-maker.com/shop/img/cms/tuto-led/ledwiring.jpg|le sens des LEDS]] : cathode = -, anode = +, le meplat = -
[[https://curtiszone.files.wordpress.com/2016/05/58490-resistance5bands.png?w=353&h=392|la valeur d une résistance]] : 220 ohms n'est pas 10k ohms [[https://www.ma-calculatrice.fr/calculer-valeur-resistance-couleur.php|mesure des resistances et anneaux]] [[https://www.dcode.fr/code-couleur-resistance| Calcul resistances ]][[http://www.electronique-3d.fr/Photo_des_schemas/Les_diodes_LED/Caracteristique_des_Leds.jpg|Tension de seuil]]
la connexion à la carte Arduino : [[https://www.robot-maker.com/ouvrages/tuto-arduino/installer-configurer-ide-arduino/|les ports USB sur windows 10]]
La syntaxe du langage Arduino : [[https://eskimon.fr/tuto-arduino-105-le-langage-arduino-12#les-points-virgules|les ; et les { et }
]]
**Non détection des cartes Arduino :**
Nano : soit mettre ancien bootloader, soit mettre Uno comme carte dans --> outils --> type de cartes --> UNO
Mega ou nano : le port COM non reconnu sous W10 , mettre à jour pilote dans gestion des périphériques, clic droit sur port COM et MAJ pilotes
==== Les programmes pour commencer ====
=== Pour tester la carte : Blink ===
Voir dans les programmes exemples de l IDE arduino
{{ :start:arduino:le_grand_livre_d_arduino.pdf | Arduino le grand Livre p221}}{{ :start:arduino:grand-livre-arduino_montages_.zip |Programmes des montages N°1}}
int led = 13;
void setup() {
pinMode(led, OUTPUT); // Définit la pin 13 comme pin de sortie
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // Allume la LED
delay(1000); // Attend une seconde
digitalWrite(led, LOW); // Eteint la LED
delay(1000); // Attend une seconde
}
=== Le chenillard avec des LEDS Programme 1 ===
{{ :start:arduino:chenillards001.resized2.jpg?direct&400 |}}
int led1 = 3; // Déclaration de la variable
int led2 = 5; // Déclaration de la variable
int led3 = 6; // Déclaration de la variable
int led4 = 9; // Déclaration de la variable
int led5 = 10; // Déclaration de la variable
int led6 = 11; // Déclaration de la variable
void setup() {
pinMode(led1,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led2,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led3,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led4,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led5,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
pinMode(led6,OUTPUT); // Défini la variable en tant que sortie (OUTPUT)
}
void loop() {
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
delay(200);
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led3, LOW);
delay(200);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led4, LOW);
delay(200);
digitalWrite(led5, HIGH);
delay(200);
digitalWrite(led5, LOW);
delay(200);
digitalWrite(led6, HIGH);
delay(200);
digitalWrite(led6, LOW);
delay(200);
}
=== Chenillard programme2 ===
// ce programme allume les leds une par une
int pin[6]={3,5,6,9,10,11};
int temp0=50; //tempo pour allumer les leds
int temp1=50; // tempo pour eteindre
void setup(){
for (int i = 0 ; i<=5 ; i++){
pinMode(pin[i], OUTPUT);
}
}
void loop(){
for (int i = 0 ; i<=5 ; i++){ // boucle for pour allumer les leds une par une
digitalWrite(pin[i], HIGH);
delay(temp0);
digitalWrite(pin[i], LOW);
delay(temp0);
}
for (int i = 5 ; i>=0 ; i--){
digitalWrite(pin[i], LOW);
delay(temp1);
digitalWrite(pin[i], HIGH);
delay(temp0);
}
}
=== Chenillard Programme 3 en utilisant une fonction sinus ===
// les sorties avec PWM
#define LED1 11
#define LED2 10
#define LED3 9
#define LED4 6
#define LED5 5
#define LED6 3
// Valeur pour decaler le sinus
#define DECAL PI*2/6
// configuration des sorties
void setup(){
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
}
void loop() {
for (float i=0; i
=== Chenillard Programme 4 avec moins de ligne de code toujours en utilisant une fonction sinus ===
// ce programme allume les leds une par une
int pin[6]={3,5,6,9,10,11};
// Valeur pour decaler le sinus
#define DECAL PI*2/6
void setup(){
for (int i = 0 ; i<=5 ; i++){
pinMode(pin[i], OUTPUT);
}
}
void loop() {
for (float i=0; i
{{ :start:arduino:pwm_sinus001.pdf |Correction}}{{ :start:arduino:tp001_correction_pwm_sinus.ino.zip |programme correction}}
=== Des Électronique 1 avec Bouton poussoir ===
[[http://78.204.53.180:16557/share/xtF3D58vrLiOiKWC/008_Le%20grand%20livre%20d_Arduino_Des_electroniques.pdf |Des électronique 2 ]]
[[https://eskimon.fr/tuto-arduino-105-le-langage-arduino-12#la-condition-ternaire-ou-condens%C3%A9e|La condition ternaire en langage C]]
{{ :start:arduino:capture_du_2020-10-06_16-04-31.resized.png?600 |}}
{{ :start:arduino:progdes..jpg?600 |}}
=== Le des électronique 2 avec capteur Lumière ===
{{ :start:arduino:capture_du_2020-10-07_11-20-57.resized.jpg?direct&600 |}}
[[http://sciences-du-numerique.fr/projet-arduino-pour-la-specialite-isn/de-electronique/41|Des électronique]]
const int ECART=100;
const int TEMPO=2000;
void setup(){
randomSeed(analogRead(1));
for(int i=2;i<=8;i++){
pinMode(i,OUTPUT);
}
}
void loop(){
int luminosite1=analogRead(0);
delay(100);
int luminosite2=analogRead(0);
if(luminosite2-luminosite1>ECART){
afficheDe(random(1,7));
delay(TEMPO);
eteintDe();
}
}
void afficheDe(int nombre){
if(nombre==1){
digitalWrite(5,HIGH);
}
if(nombre==2){
digitalWrite(2,HIGH);
digitalWrite(8,HIGH);
}
if(nombre==3){
digitalWrite(2,HIGH);
digitalWrite(5,HIGH);
digitalWrite(8,HIGH);
}
if(nombre==4){
digitalWrite(2,HIGH);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
digitalWrite(8,HIGH);
}
if(nombre==5){
digitalWrite(2,HIGH);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
digitalWrite(8,HIGH);
digitalWrite(5,HIGH);
}
if(nombre==6){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
}
}
void eteintDe(){
for(int i=2;i<=8;i++){
digitalWrite(i,LOW);
}
}
=== TP ===
{{ :start:arduino:tp_corrections_arduino.tar.gz |TP et corrections cours Arduino}}
[[https://www.tinkercad.com/things/hoX5BPVijd9-com-serie-entre-2-arduino/editel?sharecode=mN9YN9AKYj05K_Vn993QQigvkYpEUxvlzyIOPvBrWBE|Correction3]]
[[https://www.tinkercad.com/things/0wMSg8CVXDO-potentiometreledserie/editel?sharecode=F8MCRlWMe-vUD8eFmoCWfn2CZ3WCHStapKdmwWOoiQk|Correction_2]]
[[https://www.aranacorp.com/fr/gerer-un-ecran-lcd-par-la-connexion-i2c-dune-arduino-nano/|Corrections LCD I2C]][[https://youtu.be/R_LxirJ5R4A|Créer des caractères sur un LCD]][[start:arduino:LCD |---page doc LCD]]
[[https://www.robot-maker.com/forum/blog/62/entry-54-les-potentiometres-et-les-servomoteurs/|Correction]]
[[https://eskimon.fr/tuto-arduino-901-ajouter-des-sorties-num%C3%A9riques-%C3%A0-larduino-le-74hc595|Corrections et Doc]]----[[start:arduino:74hc595|Doc 74HC595]]----[[start:arduino:mcp23017|Autre Alternative MCP23017]]
=== Autres Cours ===
{{ :start:arduino:autrfes_cours_arduino.tar.gz | Autres Cours sur arduino}}
[[http://www.juggling.ch/gisin/microcontroleur/code_exemples.html|Des programmes Arduino ...]]