Outils pour utilisateurs

Outils du site


start:arduino:ports

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
start:arduino:ports [2020/12/01 12:08] – [La Doc de réference Arduino] gerardadminstart:arduino:ports [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ======== Programmation des Ports sur Arduino ======== ======== Programmation des Ports sur Arduino ========
 +
 +
 +{{ :start:arduino:capture_du_2020-12-01_16-07-59.jpg?direct&300 |}}
  
 [[https://eskimon.fr/tuto-arduino-904-les-ports| La doc sur les Ports du Blog Eskimon ]] [[https://eskimon.fr/tuto-arduino-904-les-ports| La doc sur les Ports du Blog Eskimon ]]
Ligne 78: Ligne 81:
  
 Si vous manquez de mémoire programme, vous pouvez utiliser ces astuces pour réduire la taille de votre code. Il faut beaucoup moins d'octets de code compilé pour écrire simultanément un tas de broches matérielles simultanément via les registres de port que d'utiliser une boucle for pour définir chaque broche séparément. Dans certains cas, cela peut faire la différence entre l'adaptation de votre programme dans la mémoire flash ou non!  Si vous manquez de mémoire programme, vous pouvez utiliser ces astuces pour réduire la taille de votre code. Il faut beaucoup moins d'octets de code compilé pour écrire simultanément un tas de broches matérielles simultanément via les registres de port que d'utiliser une boucle for pour définir chaque broche séparément. Dans certains cas, cela peut faire la différence entre l'adaptation de votre programme dans la mémoire flash ou non! 
 +
 +
 +===== Exemple de programme Arduino UNO pour faire clignoter 2 LEDS =====
 +
 +2 LEDS branchées sur les broches:  LED1 = - sur 2 et cmd+ sur 3 , LED2 = - sur 6 cmd+ sur 7
 +
 +<code c ports_Leds.ino>
 +
 +void setup() {
 +    
 +    // On positionne en sortie OUTPUT   ( 1 ) les broches 2 à 7  sur les bits 2 à 7 , 
 +    // On part de la droite vers la gauche pour lire les n° des bits donc des broches.
 +    DDRD = B11111110; // ATTENTION le bit 0 = 0 et le bit 1 = 1 sinon pas de liaison série ....!!!
 +    // Le B majuscule en début de séquence indique un nombre Binaire
 +}
 +
 +void loop(){
 +
 +   // on met du 5 volts ou à 1 ( HIGH) les broches 3 et 7 on allume les 2 LEDS
 +   PORTD = B10001000; // toujours  0 sur les bits 0 et 1 ==> liaison série...  
 +   delay(1000); // on attend 1s 
 +   PORTD = B00000000; // On eteind les 2 LEDS
 +   delay(1000); // attente 1s
 +   
 +}
 +
 +</code>
 +
 +=== Autres Methodes ===
 +
 +    *bitRead(x, n);  bitRead() permet de lire l'état d'un bit dans un nombre entier.
 +    *bitWrite(x, n, b); bitWrite() permet d'écrire l'état d'un bit dans un nombre entier. 
 +    *bitSet(x, n);  bitSet() permet de mettre un bit à "1" dans un nombre entier. 
 +    *bitClear(x, n); bitClear() permet de mettre un bit à "0" dans un nombre entier. 
 +    *bit(n);bit() permet de retourner la valeur numérique correspondant au poids d'un bit :
 +
 +    *https://www.carnetdumaker.net/articles/quelques-fonctions-bien-pratiques-du-framework-arduino/
/home/chanteri/www/fablab37110/data/attic/start/arduino/ports.1606820928.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)