poniedziałek, 4 kwietnia 2011

SmartPIP - Czujnik światła - wstępne decyzje


Autor: Dondu

Artykuł jest częścią cyklu: SmartPIP - Elektroniczny dręczyciel


Na początek powinniśmy podjąć decyzje w dwóch tematach:
  1. schemat układu pomiarowego czujnika światła,
  2. dokładność pomiarów.



1. Schemat pomiarowy

W tym zakresie właściwie sprawa jest prosta. Budujemy czujnik światła na bazie elementu światłoczułego (fotorezystor, fototranzystor, fotodioda),  który zamieni poziom oświetlenia na odpowiadające mu napięcie. Następnie tak otrzymane napięcie będziemy mierzyć przetwornikiem analogowo-cyfrowym.


Kondensator "wygładzający"

Na poniższych schematach zastosujemy dodatkowy kondensator, którego zadaniem będzie "wygładzanie" sygnału wyjściowego z czujnika światła po to, by pomiary dokonywane przez przetwornik analogowo-cyfrowy, nie były "zaszumione" niewidocznymi dla ludzkiego oka zmianami natężenia oświetlenia. W szczególności jest to istotne przy oświetleniu sztucznym. O kondensatorze piszę także w dalszej części tego cyklu artykułów.


Układ pomiarowy

Ponieważ z założeń wynika, że mamy minimalizować ilość użytych elementów elektronicznych, skorzystamy z możliwie najprostszego schematu pomiarowego jakimi jest zastosowanie fototranzystora pracującego wraz z rezystorem w układzie dzielnika napięcia dla układów wspólnego emitera (WE) lub wspólnego kolektora (WC).


Układ pomiarowy WE

Układ pomiarowy WE (wspólny emiter) ma istotne dla nas zalety, ale także i wady. Podstawowy układ pomiarowy WE w naszym przypadku wyglądałby następująco:


Schemat 1 - Układ pomiarowy ze wspólnym emiterem.


Dla naszego projektu zaletą takiego układu jest fakt, że jako rezystor R (zewnętrzny pull-up) moglibyśmy wykorzystać dostępny w mikrokontrolerze wewnętrzny rezystor pull-up (o ile mikrokontroler umożliwia jego włączenie, gdy pin jest ustawiony jako wejściowy przetwornika ADC). Stąd nasz układ pomiarowy moglibyśmy ograniczyć do następującego:


Schemat 2 - Układ pomiarowy wykorzystujący wewnętrzny
rezystor pull-up mikrokontrolera.


To najprostsza możliwa wersja układu pomiarowego wraz ze wstępnym wygładzaniem sygnału mierzonego. Jednakże w naszym przypadku, użycie wewnętrznego rezystora pull-up generuje problem większego niż będziemy oczekiwali zużycia ładunku baterii.

Dlaczego?
Sprawdźmy jaką rezystancję ma wewnętrzny rezystor w mikrokontrolerze, który wybraliśmy:



Widzimy, że rezystor ten ma od 20kΩ do 50kΩ (spory rozrzut). Dla nas oznacza to, że prąd płynący przez rezystor i tranzystor (pomijając w obliczeniach spadek napięcia na złączu kolektor emiter) przy zasilaniu układu z 3V będzie wynosił około:

- gdy rezystor pull-up będzie miał blisko 20kΩ:



- gdy rezystor pull-up będzie miał blisko 50kΩ:



Wydaje się, że to niewiele, ale w następnym artykule dowiesz się, że celujemy w zaledwie 10µA stosując zewnętrzny rezystor pull-up o znacznie większej wartości.

W związku z tym i tak musimy zastosować zewnętrzny rezystor, czyli (w przypadku układu WE) układ pomiarowy ze schematu 1.




Układ pomiarowy WC

Innym rozwiązaniem, jest zastosowanie układu pomiarowego o wspólnym kolektorze.




W przypadku wykorzystania mikrokontrolera z wewnętrznym rezystorem pull-down (ATmega8 takich nie posiada), można oczywiście rozpatrywać jego użycie podobnie jak w przypadku układu WE.


Który układ wybrać - WE, czy WC?

Z naszego punktu widzenia nie będzie to miało znaczenia, a dlaczego dowiesz się w następnym artykule. Ja wybrałem układ WC.





2. Dokładność pomiarów światła


Powinniśmy się zastanowić nad dokładnością z jaką chcemy dokonywać pomiarów światła. Pisząc o dokładności należy rozumieć przez to:
  • rozdzielczość uzyskanego pomiaru,
  • odstępy czasowe pomiędzy kolejnymi pomiarami.

Przetwornik ADC mikrokontrolera ATmega8 pozwala na pomiary w rozdzielczości 10 bitów. Nam jednak taka rozdzielczość pomiarów nie jest potrzebna. Mamy właściwie wykrywać jedynie:
  • ciemność (noc i zimowe wieczory),
  • jasność dnia,
  • jasność oświetlenia sztucznego.

Nie oznacza to jednak, że nasz przetwornik powinien mieć rozdzielczość zaledwie 2 bitów, ze względu na warunki oświetlenia w jakich będzie musiał pracować. Należy więc wybrać jakiś kompromis.

Podobnie z szybkością otrzymywania kolejnych pomiarów, które mogą być realizowane przez ten mikrokontroler w odstępach ułamków sekund. Nam wystarczy, że odstęp pomiędzy pomiarami będzie wynosił kilka minut.

Ważniejsze więc od parametrów ADC jest dla nas inne ograniczenie, którym jest chęć analizy dość długich okresów czasu. Pomiary będziemy umieszczać w pamięci RAM,  której nie mamy zbyt dużo do dyspozycji (zaledwie 1kB). Dlatego też na rozdzielczość i odstęp czasowy między kolejnymi pomiarami, mają wpływ nie możliwości przetwornika ADC, ale ilość dostępnej pamięci RAM, w której będziemy przechowywać wyniki pomiarów.

Skoro więc to ilość pamięci RAM decyduje o dokładności pomiarów światła, to w ciemno można przyjąć, że w zupełności wystarczy nam 8 bitowa rozdzielczość przetwornika ADC, a co do odstępów czasu pomiędzy kolejnymi pomiarami zadecydujemy później.

Takie podejście zapewni nam wystarczający poziom dokładności pomiarów światła przy akceptowalnej zajętości pamięci RAM - czyli mamy nasz kompromis.

Artykuł jest częścią cyklu: SmartPIP - Elektroniczny dręczyciel


2 komentarze:

  1. Pomiar oświetlenia pewnie nie musi być wykonywany ciągle, więc można by było zasilać układ pomiarowy fototranzystora z wolnego pinu ustawianego jako wyjście logiczną jedynką tylko w momencie pomiaru ilości światła, a następnie odcięcie zasilania po dokonaniu pomiaru logicznym zerem. Podejrzewam, że podobne rozwiązanie jest w trakcie redagowania - Czujnik światła - oszczędzamy energię ...

    OdpowiedzUsuń
  2. Tak, jest i za 1h się ukaże :-)

    OdpowiedzUsuń