diy:grove
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| diy:grove [2020/04/03 15:26] – jbpuel | diy:grove [2020/04/03 15:29] (Version actuelle) – supprimée jbpuel | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Environnement Grove ====== | ||
| - | |||
| - | ===== Informations générales ===== | ||
| - | |||
| - | L' | ||
| - | |||
| - | Par ailleurs, un shield de base Grove doit être installé sur la carte Arduino. Ce shield met à disposition ces mêmes connecteurs, | ||
| - | |||
| - | Chaque connecteur assure le câblage de 4 pins (5v, GND, et pins numérotées).\\ | ||
| - | Par exemple, le connecteur numérique D3 correspond aux pins digital 3 et digital 4.\\ | ||
| - | Certains composants n' | ||
| - | |||
| - | ===== Utilisation d'un composant Grove ===== | ||
| - | |||
| - | On trouve toutes les informations sur l' | ||
| - | |||
| - | ===== Tutoriels sur les composants ===== | ||
| - | |||
| - | ==== Afficheur LCD RGB backlight ==== | ||
| - | |||
| - | Une fois installée la bibliothèque dans l'IDE Arduino, on dispose de fichiers d' | ||
| - | |||
| - | <code C++> | ||
| - | #include < | ||
| - | #include " | ||
| - | |||
| - | rgb_lcd lcd; // Déclare un objet de type rgb_lcd | ||
| - | |||
| - | void setup() { | ||
| - | lcd.begin(16, | ||
| - | } | ||
| - | </ | ||
| - | Les fonctions suivantes sont disponibles pour l' | ||
| - | <code C++> | ||
| - | lcd.setCursor(0, | ||
| - | lcd.print(" | ||
| - | lcd.clear(); | ||
| - | lcd.blink(); | ||
| - | lcd.noblink(); | ||
| - | lcd.autoscroll(); | ||
| - | lcd.noAutoscroll(); | ||
| - | lcd.cursor(); | ||
| - | lcd.noCursor(); | ||
| - | lcd.display(); | ||
| - | lcd.noDisplay(); | ||
| - | lcd.setRGB(255, | ||
| - | lcd.setPWM(couleur, | ||
| - | // Couleurs prédéfinies, | ||
| - | lcd.blinkLED(); | ||
| - | lcd.noBlinkLED(); | ||
| - | lcd.scrollDisplayLeft(); | ||
| - | lcd.scrollDisplayRight(); | ||
| - | // Ne gère pas le saut de ligne, mais le texte revient dans l' | ||
| - | </ | ||
| - | Enfin, on peut créer des caractère personnalisés. | ||
| - | <code C++> | ||
| - | // Créer le dessin avant le setup dans une grille de 5x8 pixels | ||
| - | byte dessin[8] = { | ||
| - | 0b00000, | ||
| - | 0b01010, | ||
| - | 0b11111, | ||
| - | 0b11111, | ||
| - | 0b11111, | ||
| - | 0b01110, | ||
| - | 0b00100, | ||
| - | 0b00000 | ||
| - | }; | ||
| - | lcd.createChar(n, | ||
| - | lcd.write(n); | ||
| - | // Si besoin, forcer le type : (unsigned char)n | ||
| - | </ | ||
| - | |||
| - | ==== Télémetre Ultrasonic ranger ==== | ||
| - | |||
| - | <code C++> | ||
| - | #include " | ||
| - | |||
| - | Ultrasonic telemetre(7); | ||
| - | </ | ||
| - | ensuite | ||
| - | <code C++> | ||
| - | long distance; // En centimetres, | ||
| - | distance = telemetre.MeasureInCentimeters(); | ||
| - | </ | ||
| - | |||
| - | ==== Afficheur 4 chiffres ==== | ||
| - | |||
| - | Dans la bibliothèque TM1637 fournie pour Grove, plusieurs fonctions d' | ||
| - | |||
| - | === Avec la bibliothèque Grove (modifiée) === | ||
| - | |||
| - | |||
| - | <code C++> | ||
| - | #include " | ||
| - | |||
| - | // Définition des pins pour TM1637 : connecter sur D6 du shield Grove | ||
| - | const int CLK = 6; | ||
| - | const int DIO = 7; | ||
| - | TM1637 afficheur(CLK, | ||
| - | |||
| - | void setup() { | ||
| - | afficheur.init(); | ||
| - | afficheur.set(BRIGHT_TYPICAL); | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | int potar = analogRead(A0); | ||
| - | int val = map(potar, | ||
| - | delay(150); | ||
| - | afficheur.displayNum(val); | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | === Avec la bibliothèque alternative === | ||
| - | |||
| - | Bibliothèque de [[https:// | ||
| - | [[https:// | ||
| - | |||
| - | <code C++> | ||
| - | #include < | ||
| - | |||
| - | // Définition des pins pour TM1637 : connecter sur D6 du shield Grove | ||
| - | const int CLK = 6; | ||
| - | const int DIO = 7; | ||
| - | |||
| - | TM1637Display afficheur(CLK, | ||
| - | |||
| - | void setup() { | ||
| - | afficheur.clear(); | ||
| - | afficheur.setBrightness(2); | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | int potar = analogRead(A0); | ||
| - | int val = map(potar, | ||
| - | delay(150); | ||
| - | afficheur.showNumberDec(val); | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== Afficheur Barre de LED ==== | ||
| - | |||
| - | Cet afficheur est composé de 10 barres (Leds), 8 vertes, 1 orange et 1 rouge.\\ | ||
| - | On peut les piloter individuellement ou bien considérer qu' | ||
| - | |||
| - | Pour définir individuellement l' | ||
| - | C'est sous cette forme qu'est attendu le paramètre de la fonction setBits et le résultat renvoyé par la fonction getBits. | ||
| - | |||
| - | Pour définir un niveau, c'est un entier entre 0 et 10.\\ | ||
| - | |||
| - | |||
| - | Le programme suivant utilise toutes les fonctions disponibles : | ||
| - | |||
| - | <code C++> | ||
| - | #include < | ||
| - | |||
| - | Grove_LED_Bar barre(7, 6, 1, LED_BAR_10); | ||
| - | // Orientation : 1 = Vert à Rouge, 0 = Rouge à Vert - Autre type : LED_CIRCULAR_24 | ||
| - | |||
| - | unsigned int etat; | ||
| - | |||
| - | void setup() { | ||
| - | barre.begin(); | ||
| - | barre.setGreenToRed(1); | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | // Adressage individuel des Leds : setBits, getBits, setLed, toggleLed | ||
| - | barre.setBits(0x0); | ||
| - | delay(1000); | ||
| - | barre.setBits(0x3ff); | ||
| - | delay(1000); | ||
| - | barre.setBits(0b000000000000001); | ||
| - | delay(1000); | ||
| - | barre.setBits(0b000000000010100); | ||
| - | delay(1000); | ||
| - | etat = barre.getBits(); | ||
| - | etat <<= 1; // Décalage à gauche (Led 4 et 6) | ||
| - | barre.setBits(etat); | ||
| - | delay(1000); | ||
| - | etat >>= 2; // Décalage de 2 positions à droite (Led 2 et 4) | ||
| - | barre.setBits(etat); | ||
| - | delay(1000); | ||
| - | barre.setLed(1, | ||
| - | barre.setLed(2, | ||
| - | barre.toggleLed(7); | ||
| - | delay(2000); | ||
| - | // Adressage des Leds par niveaux | ||
| - | for (int i = 0; i <= 10; i++) { | ||
| - | barre.setLevel(i); | ||
| - | delay(500); | ||
| - | } | ||
| - | delay(1000); | ||
| - | } | ||
| - | </ | ||
| - | |||
diy/grove.1585927581.txt.gz · Dernière modification : de jbpuel
