czwartek, 18 sierpnia 2011

Czujnik światła z diodą LED - kalibracja czujnika


Na stronach ARDUINO.CC znalazłem prosty kod, w którym można przeprowadzić kalibrację czujnika światła. jest to całkiem fajna opcja gdyż przy testowaniu czujnika nie zawsze mamy dostateczną ilość światła... i wtedy nie widać dobrze zmian w oświetleniu LED. A jak się czujnik przystosuje do ilości światła w pomieszczeniu to i efekt jest bardziej widoczny... Kod przerobiłem... odwróciłem jego funkcję... kod ma za zadanie rozpalanie diody LED wtedy gdy robi się ciemno. Może to być ciekawa funkcja dla przyszłego robota... Kiedy ten zapędzi się w ciemne kąty to automatycznie włączy sobie oświetlenie, będzie łatwiej go znaleźć. Ciekawostką jest kalibracja czujnika światła, która została zamieszczona w void setup()

int wartoscczujnika = 0;
int czujnikmax = 1023;
int czujnikmin = 0;

void setup() {
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);
    while (millis() < 5000) {
    wartoscczujnika = analogRead(A0);
   if (wartoscczujnika > czujnikmin) {
      czujnikmin = wartoscczujnika;}
   if (wartoscczujnika < czujnikmax) {
      czujnikmax = wartoscczujnika;}
  }

  digitalWrite(13, LOW);}

void loop() {
  wartoscczujnika = analogRead(A0);
  wartoscczujnika = map(wartoscczujnika, czujnikmin, czujnikmax, 0, 255);
  wartoscczujnika = constrain(wartoscczujnika, 0, 255);
  analogWrite(9, wartoscczujnika);}


Więcej ciekawych przykładów zastosowanie czujnika światła można znaleźć pd tym LINKIEM.

Poniższy kod nie kalibruje czujnika światła... testy należy przeprowadzać przy słonecznym dniu ;) ale za to dane z czujnika są wyświetlane w serial monitor


int czujnik = 0;
int odczytczujnika;
int jasnoscLED;
void setup(void) {
   Serial.begin(9600);}

void loop(void) {
  odczytczujnika = analogRead(czujnik); 

  Serial.print("Odczyt analogowy = ");
  Serial.println(odczytczujnika);
   odczytczujnika = 1023 - odczytczujnika;
   jasnoscLED = map(odczytczujnika, 0, 1023, 0, 255);
   analogWrite(9, jasnoscLED);
   delay(100);}

Poniżej kolejny kod do odczytu samego czujnika :) Podobnie jak z czujnikiem odległości wyświetlamy tym razem różne komentarze w serial monitor.

int czujnik = 0;
int odczytczujnika;

void setup(void) {
  Serial.begin(9600);}

void loop(void) {
  odczytczujnika = analogRead(czujnik); 

  Serial.print("Analog reading = ");
  Serial.print(odczytczujnika);

  if (odczytczujnika < 10) {
    Serial.println(" - Ciemno");
  } else if (odczytczujnika < 200) {
    Serial.println(" - Raczej ciemno");
  } else if (odczytczujnika < 500) {
    Serial.println(" - Prawie jasno");
  } else if (odczytczujnika < 800) {
    Serial.println(" - Dosc jasno");
  } else {
    Serial.println(" - Bardzo jasno");
  }
  delay(1000);}

Brak komentarzy:

Prześlij komentarz