organisée par la Faironnerie ABC / @faironnerie_abc
Description plus détaillée de l'atelier sur cette page.
# ArchLinux
% yaourt arduino
# Ubuntu
% sudo apt-get install arduino
# Ajout de 'faironnier' au groupe 'uucp'
% sudo usermod -a -G uucp faironnier
dmesg :
% dmesg | tail
[65373.194664] usb 1-3.4: new full-speed USB device number 12 using xhci_hcd
[65373.297140] ftdi_sio 1-3.4:1.0: FTDI USB Serial Device converter detected
[65373.297170] usb 1-3.4: Detected FT232RL
[65373.297498] usb 1-3.4: FTDI USB Serial Device converter now attached to ttyUSB0
void setup()
void loop()
/*
* Ce programme fait clignoter la LED sur la broche 13
* et donc la LED de test de la carte
*/
//
// La définition des constantes et des variables
//
const int ledBroche = 13; // LED connectée à la broche 13
const int attente = 1000; // En ms
//
// Initialisations
//
// Initialisation des ressources de la carte.
// Configuration des entrées/sorties.
// Définition de la vitesse de fonctionnement du port série, etc.
// La fonction setup() n'est exécutée qu'une seule fois.
//
void setup() {
pinMode(ledBroche, OUTPUT); // Configure ledBroche comme une sortie
}
//
// Programmation des interactions et comportement.
//
// C'est une boucle "infinie". Elle peut être interrompue que par
// coupure de l'alimentation de la carte ou un appui sur Reset
//
void loop() {
digitalWrite(ledBroche, HIGH); // Met la sortie à l'état haut, LED allumée
delay(attente); // durant attente.
digitalWrite(ledBroche, LOW); // Met la sortie à l'état bas, LED éteinte
delay(attente/3); // durant attente/3 (division entière)
}
U = R . I
P = U . I
Caractérisée par :
Exemple : alimentation de téléphone, courant sortant de 5V pour au max 1A.
/*
* Ce programme fait pulser la LED sur la broche 3
*/
//
// La définition des constantes et des variables
//
const int ledBroche = 3; // LED connectée à la broche 3
const unsigned int attente = 1000; // En ms
//
// Initialisation(s)
//
void setup() {
// Configure ledBroche comme une sortie
pinMode(ledBroche, OUTPUT);
}
//
// Programmation des interactions et comportement.
//
void loop() {
const float delta = 0.001;
float entree, sortie;
for (entree = 0; entree < 2 * PI; entree = entree + delta) {
// La valeur doit être comprise entre 0 et 255
sortie = sin(entree) * 127.5 + 127.5;
analogWrite(ledBroche,sortie);
delay(3);
}
delay(attente);
}
// Durée entre les flashs
#define FLASH_DELAY 2000
// Durée du flash
#define FLASH_LENGTH 1000
// Il faut 255ms pour allumer la led,
// le flash s'éteint après 255 + FLASH_LENGTH ms.
#define STOP_FLASH_AT 255 + FLASH_LENGTH
// Il faut aussi 255ms pour éteindre la led,
// la pause commence donc à STOP_FLASH_AT + 255 ms.
#define PAUSE_AT STOP_FLASH_AT + 255
// Tableau des pins utilisés (tous les PWM ~).
int pins[] = {3,5,6,9,10,11};
// Étape de chaque led.
int steps[6];
void setup() {
// Initialisation
randomSeed(analogRead(0));
for(uint8_t i = 0; i < 6; i++) {
pinMode(pins[i], OUTPUT);
steps[i] = random(0, 255 * 2 + FLASH_LENGTH + FLASH_DELAY);
}
}
void loop() {
for(uint8_t i = 0; i < 6; i++) {
int s = steps[i]++;
if (s < 256) {
analogWrite(pins[i], s);
}
else if(s >= STOP_FLASH_AT && s < PAUSE_AT) {
analogWrite(pins[i], 255 - s + STOP_FLASH_AT);
}
else if(s > PAUSE_AT + FLASH_DELAY) {
steps[i] = 0;
}
}
delay(1);
}