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.
(Facultatif : 1 pile+câble afin que le système soit autonome)
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.