Go Down

Topic: Photorésistance plus sensible (Read 5322 times) previous topic - next topic

skywodd

Bonjour,


Quel commande puis-je utiliser ?


Ajoute une boucle d'attente (active) :
Code: [Select]
mesureIR = analogRead(photoIR);
if (mesureIR < seuil)
  Serial.println("Piece detecte");

do {
  mesureIR = analogRead(photoIR);
} while(mesureIR < seuil);
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

gunsman76

Voilà c'est nettement mieux !!!

Le code :

Code: [Select]

#include <LiquidCrystal.h>

// initialisation librairie LCD
const int RS=2;
const int E=3;
const int D4=4;
const int D5=5;
const int D6=6;
const int D7=7;

const int RVar=0; //potentiomètre 1 "col"
const int RVar1=1; //potentiomètre 2 "fond"
const int RVar2=2; // potentiomètre 3 "Travers"

const int photoIR=3; //cellule mesure de lumière ARCHE

const int Led=8;
const int Ledrouge=9;

int mesureIR=0; //Infrarouge initialisation
int mesureBrute=0; // Potard initialisation

int seuil=600; //Infrarouge seuil sensiblité passage pièce

float mesure;
float potard;

LiquidCrystal lcd(RS,E,D4,D5,D6,D7);

void setup() {
  // set up LCD indication nb colonne et case:
  lcd.begin(16, 2);
  lcd.clear();
  delay(10);
  // Print a message to the LCD.
  lcd.print("Piochel 2013");
  delay(1000);
  lcd.clear();
  delay (10);
   lcd.print("Initialisation...");
  delay(2000);
  lcd.clear();
  delay (10);
 
  pinMode (Led, OUTPUT);
  pinMode (Ledrouge, OUTPUT);
 
  Serial.begin(115200);
 
}

void loop() {

  mesureBrute=analogRead(RVar);
  mesure=map(mesureBrute,0,1023,0.0,1000.0);
 
  //lcd.clear();
  //delay(5);
 
  lcd.home();
  lcd.print("Col");
  lcd.setCursor(6,0);
  lcd.print("Fond");
  lcd.setCursor(13,0);
  lcd.print("Tra");
 
  //1er potard
 
  potard=mesure/10.0;
  lcd.setCursor(0,1);
  lcd.print(potard,0);
  //delay(200);
 
  //2e potard
 
  mesureBrute=analogRead(RVar1);
  mesure=map(mesureBrute,0,1023,0.0,1000.0);
 
  potard=mesure/10.0;
  lcd.setCursor(7,1);
  lcd.print(potard,0);
  if (mesure < 1000) lcd.print(" ");
  if (mesure < 100) lcd.print(" ");
  if (mesure < 10) lcd.print(" ");
  //delay(100);
 
  //3e potard

 
  mesureBrute=analogRead(RVar2);
  mesure=map(mesureBrute,0,1023,0.0,1000.0);
 
  potard=mesure/10.0;
  lcd.setCursor(13,1);
  lcd.print(potard,0);
  if (mesure < 1000) lcd.print(" ");
  if (mesure < 100) lcd.print(" ");
  if (mesure < 10) lcd.print(" ");
  //delay(100);
 
  mesureIR=analogRead(photoIR);
  if (mesureIR<seuil) {//Serial.println("Piece detecte");
  digitalWrite (Led, HIGH);
  }
  else {
    digitalWrite(Led,LOW);
  }
 
  do {
    mesureIR = analogRead(photoIR);
  } while(mesureIR < seuil);
 
 
//  if (mesureIR<seuil) {//Serial.println("Piece detecte");
// digitalWrite (Ledrouge, HIGH);
// }
// else {
//   digitalWrite(Ledrouge,LOW);
// }
// delay(Rvar2);
 
}

Go Up