Library

Base <-> Wire <-> VirtualWire <-> Servo <-> DHT11 <-> LCD4884 <-> Esplora <-> TFT" <-> LCD I2C <-> IR Remote <-> UTFT <-> UTouch <-> Mirf

# Library de base :

- Programme :

#define nom valeur

void setup()
{
}

void loop()
{
}

- Variables :

boolean 0 FALSE à 1 TRUE 1 bits 1 octets
unsigned char 0 à 255 8 bits 1 octets
unsigned int 0 à 65535 16 bits 2 octets
unsigned long 0 à 4 294 967 295 32 bits 4 octets

char -128 à +128 8 bits 1 octets
int -32 768 à +32 767 16 bits 2 octets
long -2 147 483 648 à +2 147 483 647 32 bits 4 octets
float -3,4 10^38 à +3,4 10^38 32 bits 4 octets

char tableau[5];
char tableau[] = {0,1,2,3,4};
int valeur = tableau [4];
itoa(valeur, string, 10);

- Opération :

var++; incrémentation
var--; décrémentation

x +=y; x = x + y
x -=y; x = x - y
x *=y; x = x * y
x /=y; x = x / y

x = !x; x = 1 - x

x = 7 % 5 x = 2 (7-5)

variable = min(var1, var2);
variable = max(var1, var2);
variable = abs(var);
variable = map(var, 0, 1023, 0, 10);
variable = random(100);
variable = random(10,20);

- Condition

== égalité
< inférieur
> supérieur
<= inférieur à
>= supérieur à
!= différent de

- Opérateurs logiques


&& Et
|| Ou
! Non

- Fonction

goto lien;
lien:

if ( //condition// )
{
}
else if ( // condition // )
{
}
else
{
}

switch ( //condition// )
{
case 0:
break;
case 1:
break;
default:
break;
}

while ( //condition// )
{
}

do
{
}
while ( //condition// )
{
}

for ( int i = 0; i < 5; i++)
{
}

void maFonction ()
{
}

int maFonction (int param1)
{
return param1;
}

variable = sizeof(tableau);

- Input/Output

pinMode(nom, INPUT); OUTPUT
digitalWrite(nom, HIGH); LOW
variable = digitalRead(nom);

variable = analogRead(nom);
analogWrite(nom,valeur);

- Temps


delay(); en milliseconde
delayMicroseconds(); en microseconde
millis(); temps en milliseconde depuis démarrage

- Serial

setup Serial.begin(baud);

Serial.print(texte);
Serial.print(78, BIN); OCT, DEC, HEX
Serial.print(1.23456); 1.23
Serial.print(1.23456, 0); 1
Serial.print(1.23456, 4); 1.2346
Serial.println(); mise à ligne après

# Library Wire

#include "Wire.h"
Fonctions d'initialisation
Wire.begin() : initialise communication avec Arduino "maître"
Wire.begin(adresse) : initialise communication avec Arduino "esclave"

Fonctions "mode maître"
Wire.requestFrom(adresse, quantite) : demande de données à un esclave
Wire.beginTransmission(adresse) : débute communication avec un esclave (ouvre stockage données à envoyer avec write)
Wire.endTransmission() : envoi des données vers esclave
Wire.write() : écrit les données à envoyer vers esclave
Wire.available() : test si données disponibles en provenance esclave (cf requestFrom)
Wire.read() : lit les données en provenance de l'esclave

Fonctions "mode esclave"
Wire.write() : envoie les données vers le maître après requête
Wire.available() : test si données disponibles en provenance du maître (cf onReceive)
Wire.read() : lit données en provenance maître
Wire.onReceive(fonction) : définit la fonction à appeler sur réception de données en provenance du maître
Wire.onRequest(fonction) : définit la fonction à appeler sur requête du maître

# VirtualWire pour la télécharger : lien



# Library servo

#include "Servo.h"
Servo nomservo;

setup nomservo.attach(pin);

nomservo.write(valeur);

nomservo.read(valeur);

# Library DHT11

#include "dht11.h"
dht11 DHT;
#define DHT11_PIN 2 déclaration broche

int chk = DHT.read(DHT11_PIN); lecture info

DHT.humidity; humidité

DHT.temperature; température

# Library lcd4884 pour la télécharger : lien

#include "LCD4884.h"

lcd.LCD_init(); // dans le setup

lcd.LCD_clear(); // efface écran

lcd.LCD_write_string(cooX, cooY, texte, MENU_NORMAL); // X 0-83, Y 0-47, ou MENU_HIGHLIGHT
lcd.LCD_write_string_big(cooX, cooY, texte, MENU_NORMAL);
lcd.LCD_write_char(valcaractere, MENU_NORMAL);
lcd.LCD_set_XY(cooX,cooY); X 0-83, Y 0-5
lcd.LCD_draw_bmp_pixel(Xdeb, Ydeb, nom_image, Xfin, Yfin);

lcd.backlight(ON); // OFF

Pour créer une image :
unsigned char image[]= // 2x2 pixels, black/white
{0x00,0x0F,
0xFF,0xF0};

# Library Esplora

Pour la Carte ESPLORA : #include "Esplora.h"
Pour utiliser l'écran : #include "SPI.h" #include "TFT.h" EsploraTFT.begin();
Et pour la carte SD : #include "SD.h" SD.begin(8);

Led RGB :
Esplora.writeRGB(red, green, blue); // red, green, blue, valeurs comprises entre 0 et 255.
Esplora.writeBlue(255); // Led en bleu plus ou moins fort. Valeurs comprises entre 0 et 255.
Esplora.writeGreen(255); // Led en vert plus ou moins fort. Valeurs comprises entre 0 et 255.
Esplora.writeRed(255); // Led en rouge plus ou moins fort. Valeurs comprises entre 0 et 255.

Buzzer :
Esplora.noTone(); // Arrêt du buzzer
Esplora.tone(frequence, duree); // buzzer à la fréquence f pendant un certain temps.

Joystick :
Esplora.readJoystickX(); // renvoie un entier de -512(à droite), à 512(à gauche), le neutre n'est pas à 0
Esplora.readJoystickY(); // renvoie un entier de -512(en haut), à 512(en bas), le neutre n'est pas à 0

Bouton de joystick :
Esplora.readJoystickSwitch(); // renvoi un entier 1023 (pas appuyé) ou 0 (appuyé).
Esplora.readJoystickButton(); // LOW when pressed, HIGH when not pressed

Microphone :
Esplora.readMicrophone(); // mesure de l'intensité sonore de 0 à 1023.

Capteur de température :
Esplora.readTemperature(DEGREES_C) ; ou "DEGREES_F" renvoi en entier de -40°C to 150°C

Accéléromètre 3 axes :
Esplora.readAccelerometer(X_AXIS); // read the X axis -149(-g), +170(+g)
Esplora.readAccelerometer(Y_AXIS); // read the Y axis -149(-g), +177(+g)
Esplora.readAccelerometer(Z_AXIS); // read the Z axis -185(-g), +138(+g)

Quatre boutons poussoirs disposés en losange :
Esplora.readButton(1); // renvoie la valeur 0 (appuyé) ou 1 (non appuyé) pour le bouton du bas
Esplora.readButton(2); // renvoie la valeur 0 (appuyé) ou 1 (non appuyé) pour le bouton de gauche
Esplora.readButton(3); // renvoie la valeur 0 (appuyé) ou 1 (non appuyé) pour le bouton du haut
Esplora.readButton(4); // renvoie la valeur 0 (appuyé) ou 1 (non appuyé) pour le bouton de droite
Autres arguments aussi valables : SWITCH_1 or SWITCH_DOWN SWITCH_2 or SWITCH_LEFT SWITCH_3 or SWITCH_UP SWITCH_4 or SWITCH_RIGHT

Potentiomètre linéaire :
Esplora.readSlider(); // renvoie un entier entre 1023 (à gauche) et 0 (à gauche)

Capteur de lumière :
Esplora.readLightSensor(); // lecture du capteur de lumière (de 0 noir à 255 pleine lumière)

# Library TFT pour la télécharger : lien



# Library LCD I2C pour la télécharger : lien

• LiquidCrystal_I2C(0x20,20,4) //set the LCD address for a 20 chars and 4 line display
• lcd.init() //Initialization for the LCD
• lcd.clear() //clear display, set cursor position to zero
• lcd.home() //set cursor position to zero
• lcd.createChar() //Fill the first 8 CGRAM locations with custom characters

• lcd.setCursor(col, row) // début 0,0
• lcd.cursor() //Turns the underline cursor on
• lcd.noCursor() //Turns the underline cursor off

• lcd.blink() //Turn on the blinking cursor
• lcd.noBlink() //Turn off the blinking cursor

• lcd.display() //Turn the display on(quickly)
• lcd.noDisplay() //Turn the display 0ff(quickly)

• lcd.backlight() //Turn the backlight on
• lcd.noBacklight() //Turn the backlight off

• lcd.scrollDisplayLeft() //Make the display scroll left without changing the RAM
• lcd.scrollDisplayRight() //Make the display scroll right without changing the RAM

• lcd.autoscroll() //This will 'right justify' text from the cursor
• lcd.noAutoscroll() //This will 'left justify' text from the cursor

• lcd.leftToRight() //This is for text that flows Left to Right
• lcd.rightToLeft() //This is for text that flows Right to Left

# IR Remote pour la télécharger : lien



# UTFT pour la télécharger : lien source : http://www.henningkarlsen.com/electronics/library.php?id=52

Si erreur de compilation : dans le fichier /libraries/UTFT/DefaultFonts.c, rajouter "const" devant "fontdatatype SmallFont[1144] PROGMEM={"

#include "UTFT.h"
UTFT myGLCD(SSD1289,38,39,40,41); // puce, broches de déclarations RS,WR,CS,RSET

uint8_t SmallFont[]; // taille du texte SmallFont 8x12, BigFont 16x16, SevenSegNumFont 32x50

void setup()
myGLCD.InitLCD(); // LANDSCAPE (défaut) PORTRAIT
myGLCD.clrScr();

void loop()
myGLCD.fillScr(63,127,255); // fond d'écran RGB
myGLCD.fillScr(VGA_RED); // itou VGA_BLACK VGA_MAROON VGA_GREEN VGA_NAVY VGA_SILVER VGA_GRAY VGA_RED VGA_PURPLE VGA_LIME VGA_OLIVE VGA_BLUE VGA_TEAL VGA_TRANSPARENT (only valid for setBackColor()) VGA_WHITE VGA_FUCHSIA VGA_YELLOW VGA_AQUA
myGLCD.setColor(0,255,255); // couleur du print
myGLCD.setColor(VGA_GREEN); // itou
myGLCD.setBackColor(255,255,255); //fond lorsqu'on utilise les fonctions print
myGLCD.setBackColor(VGA_BLUE); // itou

myGLCD.drawPixel(x,y); // pixel
myGLCD.drawLine(x1,y1,x2,y2); // ligne
myGLCD.drawRect(x1,y1,x2,y2); // rectangle
myGLCD.drawRoundRect(xcentre,ycentre,xfinal,yfinal); // rectangle par point central, taille mini 5
myGLCD.fillRect(x1,y1,x2,y2); // rectangle plein
myGLCD.fillRoundRect(xcentre,ycentre,xfinal,yfinal); // rectangle plein par point central, taille mini 5
myGLCD.drawCircle(x,y,r); // cercle
myGLCD.fillCircle(x,y,r); // cercle plein

myGLCD.setFont(SmallFont); // taille du texte SmallFont 8x12, BigFont 16x16, SevenSegNumFont 32x50
myGLCD.print("texte",LEFT,y, r); // texte, LEFT CENTER RIGHT, rotation => nécessite extern uint8_t SmallFont[]; myGLCD.setFont(SmallFont);
myGLCD.printNumI(num,x,y,nombre_chiffre);

# UTouch pour la télécharger : lien source : http://henningkarlsen.com/electronics/library.php?id=55

Valeur de calibration (UTouchCD.h) :
#define CAL_X 0x003F4F2EUL
#define CAL_Y 0x03D74103UL
#define CAL_S 0x000EF13FUL

#include "UTouch.h" UTouch myTouch(6,5,4,3,2); //broches de déclarations DCLK,CS,IN,OUT,IRQ

# Mirf pour la télécharger : lien

#include "SPI.h"
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"

void setup()
Mirf.cePin = 8; // CE sur D8
Mirf.csnPin = 7; // CSN sur D7
Mirf.spi = &MirfHardwareSpi; // On utilise le port SPI hardware
Mirf.init(); // initialise le port SPI et le nRF24L01 avec CE et CSN
Mirf.channel = 0; // choix du canal 0 (128 canaux disponible, de 0 à 127)
Mirf.payload = sizeof(unsigned long); // = 4, déclaration du "payload" (message qu'on va transmettre), max 32 octets
Mirf.config(); // Configure le nRF24L01 avec les valeurs choisi pour channel et payload, active la partie réception du module et vide le buffer de réception
Mirf.setTADDR((byte *)"nrf01"); // Configure l’adresse (5 octets) utilisé pour identifier le module "cible" lors d’une émission
Mirf.setRADDR((byte *)"nrf02"); // Configure l’adresse (5 octets) utilisé pour identifier le module lors d’une réception

void loop()
byte data[Mirf.payload]; // Tableau de byte qui va stocker le message recu
Mirf.dataReady(void) // Retourne vrai (true) si un nouveau message a été recu, faux (false) sinon
Mirf.getData(byte *data) // Récupère le message de taille "payload" dans le tableau de byte "data" donné en arguments
Mirf.send(byte *data) // Envoi le message de taille "payload" à partir des données du tableau de byte "data" donné en arguments
Mirf.isSending(void) // Retourne vrai (true) si un message est en cours d’émission, faux (false) sinon
Mirf.rxFifoEmpty(void) // Retourne vrai (true) si le buffer de réception est vide, faux (false) sinon
Mirf.txFifoEmpty(void) // Retourne vrai (true) si le buffer de transmission est vide, faux (false) sinon
Mirf.getStatus(void) // Retourne la valeur brute du registre "status"
Note : Le registre "status" du nRF24L01 donne énormément d’information additionnelles qui ne sont pas disponible via des fonctions simple, comme par exemple la gestion des ACK, des échecs d’envoi, l’encombrement du canal, etc …
Mirf.powerUpRx(void) // Active le module et la partie émission du nRF24L01
Mirf.powerUpTx(void) // Active la partie réception du nRF24L01

Contact : mail ou message
Tout droit pas du tout réservé / Pym-s 2006 - 2042