Pages: [1]   Go Down
Author Topic: comment paramétrer un capteur de lumière  (Read 2543 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour
Je suis nouveau et novice, je viens de m'offrir une carte arduino, un moteur
futaba S3003 et un détecteur de lumière Grove SEN11302P.
en faisant des recherche sur le net j'ai trouvé ce code pour le détecteur de lumière, mais je ne sais pas quoi mettre comme paramètre pour que mon moteur s'arrête la nuit et se remette en marche lorsqu'il fait jour.
j'aimerai savoir aussi comment intégrer ce code avec mon moteur.
auriez vous des liens ?, des tutos ?, des explications ?
 Je vous remercie

Code:
/*
/* Grove - Light Sensor demo v1.0
*
* signal wire to A0.
* By: http://www.seeedstudio.com
*/
#include <math.h>
const int ledPin=12;                 //Connect the LED Grove module to Pin12, Digital 12
const int thresholdvalue=10;         //The treshold for which the LED should turn on. Setting it lower will make it go on at more light, higher for more darkness
float Rsensor; //Resistance of sensor in K
void setup() {
  Serial.begin(9600);                //Start the Serial connection
  pinMode(ledPin,OUTPUT);            //Set the LED on Digital 12 as an OUTPUT
}
void loop() {
  int sensorValue = analogRead(0);
  Rsensor=(float)(1023-sensorValue)*10/sensorValue;
  if(Rsensor>thresholdvalue)
  {
    digitalWrite(ledPin,HIGH);
  }
  else
  {
  digitalWrite(ledPin,LOW);
  }
  Serial.println("the analog read data is ");
  Serial.println(sensorValue);
  Serial.println("the sensor resistance is ");
  Serial.println(Rsensor,DEC);//show the ligth intensity on the serial monitor;
  delay(1000);

}
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Ce qu'il faut retenir c'est :
Code:
int sensorValue = analogRead(A0);
float Rsensor = (float)(1023 - sensorValue) * 10 / sensorValue; // Résistance du capteur en Kilo ohms

Après à toi de voir ce que tu veut faire de la valeur obtenu et comment tu veut actionner ton servo en conséquence.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 39
Ardui-Novice
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Code:
  int sensorValue = analogRead(0);
  Rsensor=(float)(1023-sensorValue)*10/sensorValue;

Outch, il va y avoir un souci si sensorValue = 0

Mais ca n'arrivera jamais, n'est-ce pas ? smiley-cool
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

est-ce possible d'avoir un exemple pour mieux comprendre ? c'est un peu difficile pour moi !
je vous remercie beaucoup
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

est-ce possible d'avoir un exemple pour mieux comprendre ? c'est un peu difficile pour moi !
je vous remercie beaucoup
Dans le code d'exemple tu as un exemple justement d'intégration du capteur avec une led :
Code:
if(Rsensor > 10) { // Si la résistance du capteur est sup. à 10K
   digitalWrite(13, HIGH); // la led est allumé
} else { // Sinon
  digitalWrite(13, LOW); // elle est éteinte
}


Tu peut donc imaginer un code du genre :
Code:
if(Rsensor > 10) { // Si la résistance du capteur est sup. à 10K
   myservo.write(0); // le servomoteur est à 0°
} else { // Sinon
  myservo.write(255); // le servomoteur est à 180°
}
Ou n'importe quoi d'autre, tout dépend de ce que tu veut faire sur ton servomoteur en fonction de la lumière ambiante.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci beaucoup pour la réponse
j'aimerai faire bouger un gadget lorsqu'on allume la lumière et que ça s'arrête lorsqu'on éteint .

et ici il faut mettre quelque chose ?
Code:
Serial.println("the analog read data is ");
  Serial.println(sensorValue);
  Serial.println("the sensor resistance is ");
  Serial.println(Rsensor,DEC);//show the ligth intensity on the serial monitor;
  delay(1000);
j'ai essayé de programmer ma Uno avec une led et le detecteur mais ça ne marche pas
Logged

Paris
Offline Offline
Full Member
***
Karma: 1
Posts: 180
Beyond the possible...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis étonné que personne n'a évoqué les bienfait des fonctions Arduino, il y a la possibilité d'utiliser la fonction map et constrain pour faire bouger la position d'un servo en fonction de la luminosité.
 Edit : Si sa peut aider certains voila un code tres tres tres basique que j'ai fait

Quote
//Capteur de lumiere

int photo_res = 0;
// Photorésistance sur la broche analogique 
int photo_val;
// Varibale qui va contenir les valeur de la Photorésistance 
int led = 13;


void setup()

{
  Serial.begin(9600);
  // Initialisation de la liasion serie a 9600 Bauds
  pinMode(led,OUTPUT);

}

void loop()

{
  // Lecture de la photoresistance
  photo_val = analogRead(photo_res);
  
  // Si la valeur est plus petite que 10 on eteint
  if (photo_val < 10)
{
  digitalWrite(led,LOW);
}
// Sinon on allume 
else if (photo_val > 15)
{
  digitalWrite(led,HIGH);
}

}



« Last Edit: January 30, 2013, 03:13:37 pm by -Standby » Logged

The Mind is like a parachute it works best when opened.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci je vais essayer de suite !
je vous tiens au courant ! smiley
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ça marche !! merci à vous tous pour votre aide !!
heu ??? j'ai encore une petite question, pour brancher ma UNO sur des piles je dois mettre 1 fil le rouge sur 5V et le noir sur GND ??? les fils vont tenir si je les met juste comme ça ou il y a des fils exprès ? combien de piles AAA pour 2 moteurs ?
Logged

Paris
Offline Offline
Full Member
***
Karma: 1
Posts: 180
Beyond the possible...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le plus simple c'est sa x2 : http://dx.com/p/6-x-aa-batteries-holder-with-dc2-1-power-jack-for-arduino-126413

Avec un pont en H qui va te permettre de piloter tes moteurs tres facilement avec avec la library "Adf robot" ? bref je me souviens plus du nom exact : http://dx.com/p/l293d-motor-driver-expansion-board-motor-control-shield-blue-172881
Logged

The Mind is like a parachute it works best when opened.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 95
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci beaucoup je vais faire ma commande.
Logged

Pages: [1]   Go Up
Jump to: