Les cookies assurent le bon fonctionnement de nos services. En utilisant ces derniers, vous acceptez l'utilisation des cookies. En savoir plus

C'est parti !

Le Challenge des Makers 2020

J'y cours

Atelier promotion 1

C'est parti !

Le Challenge des Makers 2020

J'y cours

Atelier promotion 1

Aide-mémoire Arduino

Partager:

Difficulté:

Que ce soit , pour une led rgb, un projet simple ou pas , se rappeler des Entree-sorties , un point de c++....
on a tous besoin d' une cheat-sheet.


Matériel :

Budget : Non défini

Etape 1 : Structure

void setup(){ } void loop(){ }
type fonction(type parametre1, type parametre2...)
{ }
return x; // Ou "return;" pour les voids
struct Structure { }; // majuscule!
enum chiffres {un=1, deux, trois}; //comme
#define un 1
class Classe { }; // majuscule!
class Enfant : public Parent {
// constructeur
Enfant() : Parent(){ };
};

Etape 2 : Fonctions

Etape 3 : Precompilateur

// (commentaire)
/* (commentaire multi ligne) */
#define DOUZAINE 12 // pas de point virgule!
#define SOMME(x,y) ((x) + (y))
#include <avr/pgmspace.h>
#define _DEBUG(x) Serial.println("DEBUG :
"+String((x)));
#ifdef _DEBUG
_DEBUG(message);
#endif

Etape 4 : Operateurs

= (assignement)
+ (addition)
- (soustraction)
* (multiplication)
/ (division)
% (modulo, reste de la division)
== (égal à)
!= (non égal à, différent de)
< (plus petit que)
> (plus grand que)
<= (plus petit que ou égal à)
>= (plus grand que ou égal à)
&& (et)
|| (ou)
! (non)

Etape 5 : Pointeurs

& référence;
* déréférence
int a; // déclaration d'une variable
int *pa; // déclaration d'un pointeur sur entier
pa = &a; // on récupère l'adresse de a

Etape 6 : Opérations sur les bits

& (et binaire)
| (ou binaire)
^ (ou exclusif binaire)
~ (non binaire)
<< (décalage à gauche)
>> (décalage à droite)

Etape 7 : Opérateurs unaires

++ (incrémentation)
-- (décrémentation)
+= (addition et affectation)
-= (soustraction et affectation)
*= (multiplication et affectation)
/= (division et affectation)
&= (et binaire et affectation)
|= (ou binaire et affectation)

Etape 8 : Conditions

if (x<5){ } else { }
switch (variable) {
case 1: instruction; break;
case 2: instruction; break;
default: instruction;
}

Etape 9 : Contrôle de boucles

break; // termine la boucle
continue; // force l'itération suivante
goto label; label: // existe toujours

Etape 10 : Constantes

HIGH | LOW
OUTPUT | INPUT
true | false
143 // Décimal
0173 // Octal
0b11011111 //Binaire
0x7B // Hexadécimal
7U // Force unsigned
10L // Force long
15UL // Force long unsigned
10.0 // Force float
2.4e5 // 240000

Etape 11 : Types de données

void
boolean(0, 1, false, true)
char(e.g. 'a' -128 à 127)
unsigned char (0 à 255)
byte (0 à 255) (octet)
int(-32768 à 32767)
unsigned int (0 à 65535)
word (0 à 65535)
long(-2147483648 à 2147483647)
unsigned long (0 à 4294967295)
float(-3.4028235E+38 à 3.4028235E+38)
double (comme float)
sizeof(myint) // retourne 2 octets

Etape 12 : int, word, long peuvent être remplacés par

[u]int{8|16|32|64}_t
[u] pour unsigned, et {8|16|32|64} pour la taille en
bits.

Etape 13 : Tableaux

int myInts[6]; //6 entiers
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
int myMatrice[3][3]; //9 entiers

Etape 14 : Chaînes de caractères

char S1[15];
char S2[8]={'a','r','d','u','i','n','o'};
char S3[8]={'a','r','d','u','i','n','o','\0'};
//inclus \0 null de fin de chaîne
char S4[ ] = "arduino";
char S5[8] = "arduino";
String S6 = "arduino"; //classe

Etape 15 : Conversion

char()
byte()
int()
word()
long()
float()

Etape 16 : Portee

variables globales / locales
public: private: // dans les classes
static // persistante
volatile // en RAM
const // constante
PROGMEM // en flash

Etape 17 : Entree / Sortie

pinMode(pin,
[INPUT_PULLUP,INPUT,OUTPUT])
digitalWrite(pin, value)
boolean digitalRead(pin)

Etape 18 : _________________________________LES_FONCTIONS

Etape 19 : Analogique

analogReference([DEFAULT,INTERNAL,EXTERNAL])
int analogRead(pin) // de 0 à 1023
analogWrite(pin, value) // PWM

Etape 20 : E/S spéciales

tone(pin, freqhz)
tone(pin, freqhz, durée_ms)
noTone(pin)
shiftOut(dataPin, clockPin,
[MSBFIRST,LSBFIRST], valeur)
unsigned long pulseIn(pin, [HIGH,LOW])

Etape 21 : Temps

unsigned long millis() // 50 jours
unsigned long micros() // 70 minutesdelay(ms)
delayMicroseconds(μs)

Etape 22 : Math

min(x, y) max(x, y) abs(x)
constrain(x, minval, maxval )
map(val, deL, deH, àL, àH)
pow(x, exposant) sqrt(x)
sin(rad) cos(rad) tan(rad)

Etape 23 : Aleatoires

randomSeed(analogRead(0)) // dans le setup
long random(max)
long random(min, max)

Etape 24 : Bits et Octets

// n° 0 sur pin 2 et n° 1 sur pin 3
// variables volatiles dans fonctions
attachInterrupt(n°, fonction,
[LOW,CHANGE,RISING,FALLING]) // dans le
setup
detachInterrupt(n°)
interrupts()
noInterrupts()

Etape 25 : Acces direct au ports

PortD : pins 0 à 7 de l'Arduino
PortB : pins 8 à 13 (B6 et B7 non dispos)
bitSet(DDRD,2); ou DDRD = 1 << 2 // D2 (pin2)
en sortie
bitSet(PORTB,3); ou PORTB |= 1 << 3 // B3 (pin
11) à 1
ou PORTB = 0b111111 // B0 à B5 (pins 8 à 13) à
1

Etape 26 : _________________________________LES _BIBIOTEQUES

Etape 27 : Chaînes de caractères

String chaine="arduino"; // guillemets doubles
String nombre=String(n,[BIN,DEC,HEX])
char charAt(n)
booleann equals(chaine2) // idem ==
booleann equalsIgnoreCase(chaine2);
int length()
String replace("ancien","nouveau")
String substring(n1,[n2])
toInt()
toLowerCase()
toUpperCase()
trim()

Etape 28 : Port Serie

begin(vitesse) // dans le setup
end()
int available() // nbre d'octets reçus
byte read()
flush()
print() //envoi en ASCII
println() // ajout de \r\n
write() //envoi en binaire

Etape 29 : EEPROM (#include <EEPROM.h>)

byte read(intAddr)
write(intAddr, myByte)

Etape 30 : Servo (#include <Servo.h>)

attach(pin , [min_uS, max_uS])
write(angle) // 0-180
writeMicroseconds(uS) //1000-2000, milieu (90°)
à 1500
read() // 0-180
attached() //renvoie un booleen
detach()

Etape 31 : Moteur pas à pas (#include <Stepper.h>)

Stepper moteur(nbDePas, pinA,pinB,pinC,pinD);
setSpeed(60); // 60 tours/mn
step(100); // avance de 100 pas
step(-100); // recule de 100 pas

Etape 32 : I2C (#include <Wire.h>)

begin() // master
begin(adresse) // exclave @ adresse
beginTransmission(adresse) // étape 1
write(byte)
// étape 2
ou write(tableau, nbre d'octets)
endTransmission()
// étape 3
requestFrom(adresse, nbre d'octets)
int available() // nbre d'octets reçus
byte read()
onReceive(fonction) // fonction() si le master
envoie
onRequest(fonction) // si le master demande

Etape 33 : SPI (#include <SPI.h>)

// pins 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
begin()
setBitOrder(MSBFIRST,LSBFIRST)
setDataMode(SPI_MODEm) // m=0,1,2,ou 3
setClockDivider(SPI_CLOCK_DIVn) //
n=2,4,8,16,32,64,ou 128
transfer(byte)
byte transfer(0x00)
end()

Sources :

Auteur : Frédéric Perrenoud
<frederic@perrenoud.com>
D'après la « Arduino cheat sheet » de Gavin Smith
et la référence du langage à :
http://arduino.cc/en/Reference/Extended


Partager:

Recevez une fois par mois les meilleurs tutoriels Déco dans votre boîte mail


Ces tutoriels devraient vous plaire

Connecter un écran LCD en I2C
Arduino Matrice led avec MAX7219
Comment fabriquer son filament pour imprimante 3D

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers