***
Mise à jour le 06/06/2015
Ce module infrarouge compatible Grove utilise un capteur RFR359F pour détecter une distance prédéfinie et changer d’état. Le réglage de la distance de référence est facilité par un potentiomètre de réglage et une led.
Mise à jour le 06/06/2015
Ce module infrarouge compatible Grove utilise un capteur RFR359F pour détecter une distance prédéfinie et changer d’état. Le réglage de la distance de référence est facilité par un potentiomètre de réglage et une led.
Mise à jour le 22/03/2017
Le but de cet exemple n’est pas d’optimisé le programme mais de montrer le principe de fonctionnement de celui-ci ( dans la partie void setup la présentation du numéro de l’exemple idem à l’exemple 86 )
Matériel nécessaire
– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega Shield
– 1 Afficheur Oled 96×96 OLE42178P
– 1 Détecteur de lumière Grove SEN11302P
– 1 Module potentiomètre Grove COM08212P
A savoir
– la fonction d’initialisation setup() qui est exécutée une seule fois au démarrage.Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées
– la fonction « boucle sans fin » loop() qui est exécutée en boucle une fois que la fonction setup() a été exécutée une fois.
– Toutes les lignes qui commencent par // sont ignorées par le compilateur et sont appelées des commentaires.Les commentaires sont des lignes de texte incluses dans le programme, de plus elles n’occupent aucun espace mémoire dans le microcontrôleur
– Le code de la fonction est compris entre des accolades qui sont en quelque sorte les « bornes » délimitant la fonction.Les accolades sont un élément majeur de la programmation en langage C. Elles sont utilisées dans plusieurs constructions différentes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
// // // *************************************************** // * Programme réaliser par RedOhm * // * * // * 1- Positionnement d'un texte sur plusieurs * // * lignes * // * 2- une pause de 3 secondes * // * 3- efface l'ecran * // * 4- recuperation et affichage des entrees * // * analogique * // * * // * * // * H.Mazelin * // *************************************************** //Cette bibliothèque vous permet de communiquer avec des périphériques I2C #include <Wire.h> //bibliothèque de gestion de l’afficheur SeeedGrayOLED.h #include <SeeedGrayOLED.h> // avr/pgmspace.h .Afin de Stocker les données dans la mémoire // Flash (mémoire programme) au lieu de la mémoire SRAM #include <avr/pgmspace.h> // Potentiometre connectée a l'entrée analogique 0 const int potentiometrePin =0; // Détecteur de lumière Grove SEN11302P connectée a l'entrée analogique 2 const int lumierePin = 2; // Un programme Arduino doit impérativement contenir cette fonction . // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // etc… ( void setup ) void setup() { //initialise la librairie Wire et se connecte au bus I2C //cette instruction ne doit normalement n'être appelée qu'une seule fois Wire.begin(); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); //Réglage du mode d'affichage en normal SeeedGrayOled.setNormalDisplay(); // Passez en mode vertical pour l'affichage du texte SeeedGrayOled.setVerticalMode(); { //Réglez le niveau Niveaux de gris. Ne importe quel nombre entre 0-15. SeeedGrayOled.setGrayLevel(15); //position du curseur pour régler ligne 1, colonne 0 SeeedGrayOled.setTextXY(1,0); // Afficher RedOhm SeeedGrayOled.putString("RedOhm"); //position du curseur pour régler ligne 2, colonne 3 SeeedGrayOled.setTextXY(2,3); // Afficher Bonjour SeeedGrayOled.putString("bonjour"); //position du curseur pour régler ligne 5, colonne 3 SeeedGrayOled.setTextXY(5,0); // Afficher Exercice SeeedGrayOled.putString("Exercice"); //position du curseur pour régler ligne 6, colonne 5 SeeedGrayOled.setTextXY(7,5); // N 87 SeeedGrayOled.putString("N 87"); // pause de 3 secondes delay (3000); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); } } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { //position du curseur pour afficher potemtiometre ligne 9, colonne 0 SeeedGrayOled.setTextXY(9,0); // affiche le nom Potar SeeedGrayOled.putString("Potar"); //position du curseur pour afficher lumiere ligne 7, colonne 0 SeeedGrayOled.setTextXY(7,0); // affiche le nom lumiere SeeedGrayOled.putString("Lumiere"); // lit la tension présente sur la broche analogique pin.La fonction // analogRead() renvoie la valeur lue , convertie en un entier // compris entre 0 et 1023 int valeurpo = analogRead(potentiometrePin); int valeurlumiere = analogRead(lumierePin); // debut du traitement efface 1 // si la valeur valeurpo et strictement inférieure à 10 // efface le derniere caractere if (valeurpo<10) { //position du curseur pour effacer le dernier caractére ligne 10, colonne 6 SeeedGrayOled.setTextXY(10,6); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 100 // efface le derniere caractere else if (valeurpo<100) { //position du curseur pour effacer le dernier caractére ligne 10, colonne 7 SeeedGrayOled.setTextXY(10,7); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 1000 // efface le derniere caractere else if (valeurpo<1000) { //position du curseur pour effacer le dernier caractere ligne 10, colonne 8 SeeedGrayOled.setTextXY(10,8); // affiche un espace vide SeeedGrayOled.putString(" "); } // fin de traitement efface 1 // debut du traitement efface 2 // si la valeur valeurpo et strictement inférieure à 10 // efface le derniere caractere if (valeurlumiere<10) { //position du curseur pour effacer le dernier caractére ligne 8, colonne 6 SeeedGrayOled.setTextXY(8,6); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 100 // efface le derniere caractere else if (valeurlumiere<100) { //position du curseur pour effacer le dernier caractére ligne 8, colonne 7 SeeedGrayOled.setTextXY(8,7); // affiche un espace vide SeeedGrayOled.putString(" "); } // si la valeur valeurpo et strictement inférieure à 1000 // efface le derniere caractere else if (valeurlumiere<1000) { //position du curseur pour effacer le dernier caractere ligne 8, colonne 8 SeeedGrayOled.setTextXY(8,8); // affiche un espace vide SeeedGrayOled.putString(" "); } // fin de traitement efface 2 //position du curseur pour régler ligne 10, colonne 5 SeeedGrayOled.setTextXY(10,5); // Affiche la valeur du potentiometre SeeedGrayOled.putNumber(valeurpo); //position du curseur pour régler ligne 8, colonne 5 SeeedGrayOled.setTextXY(8,5); // Affiche la valeur du detecteur de lumiere SeeedGrayOled.putNumber(valeurlumiere); } |
Mise à jour le 19/01/2017
Le but de cet exemple n’est pas d’optimisé le programme mais de montrer le principe de fonctionnement de celui-ci.
Matériel nécessaire
– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega Shield
– 1 Afficheur Oled 96×96 OLE42178P
– 1 Bouton poussoir ou un fil shunt
A savoir
– la fonction d’initialisation setup() qui est exécutée une seule fois au démarrage. Cette fonction est utilisée pour initialiser les variables, le sens des broches, les librairies utilisées
– la fonction “boucle sans fin” loop() qui est exécutée en boucle une fois que la fonction setup() a été exécutée une fois.
– Toutes les lignes qui commencent par // sont ignorées par le compilateur et sont appelées des commentaires. Les commentaires sont des lignes de texte incluses dans le programme, de plus elles n’occupent aucun espace mémoire dans le microcontrôleur
– Le code de la fonction est compris entre des accolades qui sont en quelque sorte les “bornes” délimitant la fonction. Les accolades sont un élément majeur de la programmation en langage C. Elles sont utilisées dans plusieurs constructions différentes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
// // // *************************************************** // * Programme réaliser par RedOhm * // * * // * 1- Positionnement d'un texte sur plusieurs * // * lignes * // * 2- une pause de 3 secondes * // * 3- efface l'ecran * // * 4- Un petite menu pour controler les entrees * // * * // * * // * * // * H.Mazelin * // *************************************************** //Cette bibliothèque vous permet de communiquer avec des périphériques I2C #include <Wire.h> //bibliothèque de gestion de l’afficheur SeeedGrayOLED.h #include <SeeedGrayOLED.h> // avr/pgmspace.h .Afin de Stocker les données dans la mémoire // Flash (mémoire programme) au lieu de la mémoire SRAM #include <avr/pgmspace.h> //definition du numéro de la broche pour le boutons poussoirs //correspondant const int entree03Pin = 3; const int entree05Pin = 5; const int entree07Pin = 7; const int entree09Pin = 9; // variable pour la lecture de l'état des boutons poussoirs int entree03State = 0; int entree05State = 0; int entree07State = 0; int entree09State = 0; // Un programme Arduino doit impérativement contenir cette fonction . // Elle ne sera exécuter une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties // etc… ( void setup ) void setup() { Wire.begin(); //initialiser les broches des boutons-poussoirs en entrées pinMode(entree03Pin, INPUT); pinMode(entree05Pin, INPUT); pinMode(entree07Pin, INPUT); pinMode(entree09Pin, INPUT); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); //Réglage du mode d'affichage en normal SeeedGrayOled.setNormalDisplay(); // Passez en mode vertical pour l'affichage du texte SeeedGrayOled.setVerticalMode(); { //Réglez le niveau Niveaux de gris. Ne importe quel nombre entre 0-15. SeeedGrayOled.setGrayLevel(15); //position du curseur pour régler ligne 1, colonne 0 SeeedGrayOled.setTextXY(1,0); // Afficher RedOhm SeeedGrayOled.putString("RedOhm"); //position du curseur pour régler ligne 2, colonne 3 SeeedGrayOled.setTextXY(2,3); // Afficher Bonjour SeeedGrayOled.putString("bonjour"); //position du curseur pour régler ligne 5, colonne 3 SeeedGrayOled.setTextXY(5,0); // Afficher Exercice SeeedGrayOled.putString("Exercice"); //position du curseur pour régler ligne 6, colonne 5 SeeedGrayOled.setTextXY(7,5); // Afficher N 86 SeeedGrayOled.putString("N 86"); // pause de 3 secondes delay (3000); //initialiser l'écran OLED SEEED SeeedGrayOled.init(); //Effacer l'écran SeeedGrayOled.clearDisplay(); } } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { //position du curseur pour régler ligne 0, colonne 0 SeeedGrayOled.setTextXY(0,0); // Etat entrées SeeedGrayOled.putString("Etat entree"); // lire l'état de la valeur du bouton poussoir entree03State = digitalRead(entree03Pin); //vérifie si le bouton est appuyé if (entree03State == HIGH) { //position du curseur pour régler ligne 2, colonne 0 SeeedGrayOled.setTextXY(2,0); // Afficher E-3 ->ON SeeedGrayOled.putString("E-3 ->ON "); } else { //position du curseur pour régler ligne 2, colonne 0 SeeedGrayOled.setTextXY(2,0); // Afficher E-3 ->OFF SeeedGrayOled.putString("E-3 ->OFF"); } // lire l'état de la valeur du bouton poussoir entree05State = digitalRead(entree05Pin); ////vérifie si le bouton est appuyé if (entree05State == HIGH) { //position du curseur pour régler ligne 3, colonne 0 SeeedGrayOled.setTextXY(3,0); // Afficher E-5 ->ON SeeedGrayOled.putString("E-5 ->ON "); } else { //position du curseur pour régler ligne 3, colonne 0 SeeedGrayOled.setTextXY(3,0); // Afficher E-5 ->OFF SeeedGrayOled.putString("E-5 ->OFF"); } // lire l'état de la valeur du bouton poussoir entree07State = digitalRead(entree07Pin); //vérifie si le bouton est appuyé if (entree07State == HIGH) { //position du curseur pour régler ligne 4, colonne 0 SeeedGrayOled.setTextXY(4,0); // Afficher E-7 ->ON SeeedGrayOled.putString("E-7 ->ON "); } else { //position du curseur pour régler ligne 4, colonne 0 SeeedGrayOled.setTextXY(4,0); // Afficher E-7 ->OFF SeeedGrayOled.putString("E-7 ->OFF"); } // lire l'état de la valeur du bouton poussoir entree09State = digitalRead(entree09Pin); //vérifie si le bouton est appuyé if (entree09State == HIGH) { //position du curseur pour régler ligne 5, colonne 0 SeeedGrayOled.setTextXY(5,0); // Afficher E-9 ->ON SeeedGrayOled.putString("E-9 ->ON "); } else { //position du curseur pour régler ligne 5, colonne 0 SeeedGrayOled.setTextXY(5,0); // Afficher E-9 ->OFF SeeedGrayOled.putString("E-9 ->OFF"); } } |
Matériel nécessaire
– 1 Carte Arduino Mega 2560
– 1 Carte Grove Mega Shield
– 1 Afficheur Oled 96×96 OLE42178P Continuer la lecture
Mise à jour le 08/03/2015
Module graphique Oled 96 x 96 points à 16 niveaux de gris compatible Grove présentant une haute luminosité, un bon contraste, un grand angle de vue et une faible consommation.
Mise à jour le 11/04/2016
Capteur de lumière UV compatible Grove basé sur le circuit GUVA-S12D avec une plage de 200 à 370 nm.Le module émet un signal électrique qui varie avec l’intensité du rayonnement UV
Interface: compatible Grove
Alimentation: 5 Vcc
Plage de mesure: 200 à 370 nm
Temps de réponse: 20 à 30 s
Dimensions: 20 x 20 mm
Température de service: -30°C à +85°C
Connectique uniquement compatible avec le système Grove
Référence fabricant Seeedstudio: 101020043 (remplace SEN00700P)
Prix en général de 8 à 12€ suivant fournisseur
Quelques information supplémentaires
UV-A, UV-B , UV-C
Ces trois types de rayonnements UV sont classés en fonction de leur activité biologique et de leur pouvoir de pénétration de la peau. Ils correspondent à trois plages de longueurs d’onde. Plus le rayonnement UV a une longueur d’onde longue, moins il est nocif (il se rapproche de la lumière visible) mais plus il a un pouvoir de pénétration cutanée important. Quand sa longueur d’onde diminue, il possède plus d’énergie, se rapproche des rayons X et donc est plus destructeur.
UV-A (400-315 nm) :
Les UV-A, dont la longueur d’onde est relativement longue, représentent près de 95 % du rayonnement UV qui atteint la surface de la Terre. Ils peuvent pénétrer dans les couches profondes de la peau.
UV-B (315-280 nm) :
Les UV-B, de longueur d’onde moyenne, ont une activité biologique importante, mais ne pénètrent pas au-delà des couches superficielles de la peau, ils sont relativement absorbés par la couche cornée de l’épiderme (mélanine). Une partie des UV-B solaires sont filtrés par l’atmosphère.
UV-C (280-100 nm) :
Les UV-C, de courte longueur d’onde, sont les UV les plus énergétiques ainsi que les plus nocifs (l’énergie croît quand la longueur d’onde décroît), mais ils sont complètement filtrés par la couche d’ozone de l’atmosphère et n’atteignent donc pas théoriquement la surface de la Terre. Toutefois, des lampes UV-C sont utilisées en laboratoire de biologie pour les effets germicides, afin de stériliser des pièces ou des appareils
Exemple d’application des UV
Exemple de programme du constructeur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
void setup(){ Serial.begin(9600); } void loop() { int sensorValue; long sum=0; for(int i=0;i<1024;i++) { sensorValue=analogRead(A0); sum=sensorValue+sum; delay(2); } sum = sum >> 10; Serial.print("La valeur de la tension:"); Serial.print(sum*4980.0/1023.0); Serial.println("mV"); delay(20); Serial.print("\n"); } |
Source technique : Seedwiki ,