Search Code

Używanie LDR z Arduino i przełącznika sterującego do oświetlenia Arduino

Używanie LDR z Arduino i przełącznika sterującego do oświetlenia Arduino

W tym samouczku zbadamy, jak używać rezystora zależnego od światła (LDR) z Arduino do sterowania światłem w zależności od poziomu światła otoczenia. LDR zmienia swoją rezystancję w zależności od intensywności światła; w ten sposób może być używany do wykrywania, czy w otoczeniu jest jasno, czy ciemno. Gdy światło spadnie poniżej określonego progu, włączymy pin wyjściowy, aby aktywować światło.

LDR Illustration and symbol

Podstawowe komponenty, których będziesz potrzebować, to płytka Arduino, rezystor 10k omów, LDR i kilka przewodów połączeniowych. LDR będzie podłączony w konfiguracji dzielnika napięcia z rezystorem, aby odczytać analogowe napięcie, które będzie się zmieniać w zależności od intensywności światła. Użyjemy tego napięcia do sterowania diodą LED lub innymi urządzeniami wyjściowymi.

Aby zobaczyć wizualną demonstrację ustawienia i kodu, koniecznie sprawdź powiązany film (w filmie o 0:10).

Wyjaśnienie sprzętu

Rezystor zależny od światła (LDR) to rodzaj rezystora, którego opór maleje wraz ze wzrostem intensywności padającego światła. Jest powszechnie stosowany w aplikacjach, w których należy monitorować poziomy światła. W naszym układzie LDR będzie używany do wykrywania poziomów światła otoczenia i będzie wysyłał odpowiadające napięcie analogowe do Arduino.

Arduino odczyta to napięcie przez jeden ze swoich analogowych pinów i zdecyduje, czy włączyć, czy wyłączyć podłączone światło na podstawie określonego progu. Rezystor 10k omów jest używany w konfiguracji dzielnika napięcia z LDR, aby stworzyć stabilne napięcie wyjściowe, które Arduino może odczytać.

Szczegóły karty katalogowej

ProducentOgólny
Numer częściLDR
Opór (lekki)100 - 500 Ω
Opór (ciemny)10 kΩ - 1 MΩ
Napięcie robocze3,3 V - 5 V
Czas odpowiedzi20 ms (typ.)
PakietPrzelotowy otwór

  • Zapewnij odpowiednie poziomy napięcia; nie przekraczaj 5V.
  • Użyj rezystora podciągającego, aby ustabilizować odczyty.
  • Wybierz odpowiednią wartość rezystora (10kΩ) dla dzielnika napięcia.
  • Rozważ użycie kondensatora do filtrowania szumów, jeśli to konieczne.
  • Trzymaj LDR z dala od bezpośrednich źródeł światła podczas testowania.

Instrukcje dotyczące okablowania

Wiring LDR with Arduino
Wiring LDR with Arduino

Aby skonfigurować obwód, zacznij od podłączenia jednego terminala LDR do zasilania 3,3V na Arduino. Drugi terminal LDR należy podłączyć do jednego końca rezystora 10k omów. Drugi koniec rezystora powinien być podłączony do masy.

Następnie utwórz połączenie między złączem LDR a rezystorem a analogowym pinem wejściowym, takim jakA0To połączenie umożliwi Arduino odczyt napięcia. Upewnij się, że podłączasz masę Arduino do wspólnej masy twojego obwodu, aby zapewnić prawidłowe działanie.

Przykłady kodu i przewodnik

Poniższy fragment kodu inicjalizuje komunikację szeregową i odczytuje wartość analogową z LDR. Wartość ta jest następnie przeliczana na napięcie i wyświetlana w monitorze szeregowym.

int LDRvalue = analogRead(A0); // Read the analog value from LDR
float voltage = LDRvalue * (5.0 / 1023.0); // Convert to voltage
Serial.print("Voltage ="); // Print label
Serial.print(voltage); // Print actual voltage

W tym kodzie zmiennaLDRvalueprzechowuje surowe analogowe odczyty z LDR. Napięcie jest obliczane na podstawie maksymalnej wartości analogowej (1023) i odniesienia napięcia (5V).

Następnie sprawdzamy, czy to napięcie jest poniżej progu (3V w tym przypadku), aby kontrolować pin wyjściowy.

if(voltage < 3 ){ 
  digitalWrite(10, HIGH); // Turn on the light
}else{
  digitalWrite(10, LOW); // Turn off the light
}

Tutaj, jeśli zmierzone napięcie jest poniżej 3 woltów, ustawiamy pin wyjściowy (10) na HIGH, włączając światło; w przeciwnym razie jest ustawiony na LOW, wyłączając je. Ciągłe sprawdzanie stanu światła umożliwia kontrolę w czasie rzeczywistym w oparciu o poziomy światła otoczenia.

Demonstracja / Czego się spodziewać

Po zakończeniu okablowania i przesłaniu swojego kodu powinieneś zauważyć zmiany odczytów napięcia na monitorze szeregowym w miarę zmiany intensywności światła na LDR. Jeśli zakryjesz LDR, napięcie powinno wzrosnąć, a gdy będzie wystawione na światło, powinno spaść. To zachowanie bezpośrednio wpłynie na pin wyjściowy, który kontroluje światło.

Bądź ostrożny wobec powszechnych pułapek, takich jak pływające sygnały wejściowe lub nieprawidłowe poziomy napięcia, które mogą prowadzić do błędnych odczytów (w wideo o 12:30).

Znaczniki czasowe wideo

  • 00:00Wprowadzenie do LDR
  • 01:30Konfiguracja sprzętu
  • 03:45Wyjaśnienie kodu
  • 06:00Uruchamianie kodu
  • 09:15Porady dotyczące rozwiązywania problemów

Obrazy

Wiring LDR with Arduino
Wiring LDR with Arduino
An LDR
An LDR
LDR Illustration and symbol
LDR Illustration and symbol
14-Using an LDR with an Arduino and a control switch for a light
Język: C++
//Original source:  https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

// This code is used with a video tutorial for RoboJax.com
// Published on August 31, 2017 from Ajax, ON, Canada.
// Written/Edited by A.B.S

/void setup()

{

  Serial.begin(9600);          //  setup serial
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = LDRvalue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.print("Voltage =");// prints the text "Voltage ="
  Serial.print(voltage);// prints the actual voltage
  
  // check if voltage is less than 3, then set pin 10 to high or ON
  if(voltage < 3 ){
    digitalWrite(10, HIGH); 
  }else{
    digitalWrite(10, LOW); // or keep it OFF when voltage is larger than 3
  }
  Serial.println();
  delay(300);

}

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Inne pliki