Lithurgie

Porteuse du projet : Blandine Degearier

Date : 2019

Contexte : Arduino

Description

Dans la poursuite du projet Plantasia (Initié par Sévan Papazian: invention d'un monde utopique où l'Homme vénérerait la Nature). Ce projet arduino consisterait à créer une boîte liturgique permettant de vénérer une plante. A l'aide d'une photoresistance et de 4 leds, l'utilisateur sera invité à toucher la plante. La photoresistance sera cachée à côté de la plante (au centre de la boîte). Grâce a l'ombre que produira la main de l'utilisateur et donc de la luminosité captée, l'intensité des leds (reliées à la photoresistance, et positionnées dans les 4 intersistices de la boîte) variera.

Matériel

1 Carte Arduino

8 Leds (verte!)

4 Photoresistances

6 Résistances (photoresistance > 4,7kΩ et leds >500Ω )

Des fils

Un matériau pour construire la boîte

Une plante

(Facultatif : 1 pile+câble afin que le système soit autonome)

Tuto

Cablage

Schémat de circuit soudé. !! Branchement des leds en série !!

action du programme

Suivant la lumière captée par la photoresistence, l'intensité lumineuse des leds varient.

const char AN_PHOTORESISTANCE = 0; // pin analogique de la photoresistance
const char AN_PHOTORESISTANCE_1 = 1;
const char AN_PHOTORESISTANCE_2 = 2;
const char AN_PHOTORESISTANCE_3 = 3;
const char DOUT_LED_1 = 8;//PWM
const char DOUT_LED_2 = 9;//PWM
const char DOUT_LED_3 = 10;//PWM
const char DOUT_LED_4 = 11;//PWM
int offset = 285;
void setup()
{
Serial.begin(9600); // baud=vitesse de comunication entre la carte et l'ordinateur
pinMode(DOUT_LED_1, OUTPUT);
pinMode(DOUT_LED_2, OUTPUT);
pinMode(DOUT_LED_3, OUTPUT);
pinMode(DOUT_LED_4, OUTPUT);
}
void loop()
{
int valeurSurA0 = analogRead(AN_PHOTORESISTANCE); // lecture de la luminosité d'une pièce dans la console
int valeurSurA1 = analogRead(AN_PHOTORESISTANCE_1);
int valeurSurA2 = analogRead(AN_PHOTORESISTANCE_2);
int valeurSurA3 = analogRead(AN_PHOTORESISTANCE_3);
int intensiteLED_1 = 900 - valeurSurA0; // luminosité (en lux)traduite en valeur numérique allant de 0-1023
int intensiteLED_2 = 600 - valeurSurA1;
int intensiteLED_3 = 300 - valeurSurA2;
int intensiteLED_4 = 300 - valeurSurA3;
intensiteLED_1 = intensiteLED_1 - offset;
intensiteLED_2 = intensiteLED_2 - offset;
intensiteLED_3 = intensiteLED_3 - offset;
intensiteLED_4 = intensiteLED_4 - offset;
if (intensiteLED_1 < 0)
{
intensiteLED_1 = 0;
}
if (intensiteLED_2 < 0)
{
intensiteLED_2 = 0;
}
if (intensiteLED_3 < 0)
{
intensiteLED_3 = 0;
}
if (intensiteLED_4 < 0)
{
intensiteLED_4 = 0;
}
Serial.println(intensiteLED_1);
Serial.println(intensiteLED_2);
Serial.println(intensiteLED_3);
Serial.println(intensiteLED_4);// marquage de l'intensité dans la console
analogWrite(DOUT_LED_1 , intensiteLED_1);
analogWrite(DOUT_LED_2 , intensiteLED_2);
analogWrite(DOUT_LED_3 , intensiteLED_3);
analogWrite(DOUT_LED_4 , intensiteLED_4);
delay(10); // variation de l'affichage (influ sur la rapidité du calcul de int intensiteLED)
}

PROBLEME NON RESOLU La carte ne peut supporter qu'une intensité de 100mA, sachant que chaques led possédent une intensité de 10mA. Il faudrait pour augmenter le nombres de leds et venir au projet souhaité, une alimentation externe ainsi que des transistors.