Oko Arduino czyli o fotorezystorze a nie mitologii Tolkiena

Oko Arduino – to brzmi jak cytat z J. R. Tolkiena, a chodzi o podłączenie do Arduino fotorezystora. Tym postem mam zamiar zacząć krótki cykl artykułów o podstawach elektroniki.

Fotorezystor to układ, którego oporność zmienia się w zależności od natężenia światła padającego na niego. Pozostaje tylko zmierzyć to w jakiś sposób. W jaki?

Dla zabawowego zastosowania pominiemy na razie zupełnie dokładność pomiaru a jedynie nas będzie interesowała bardzo uproszczona wersja.

Jak to wygląda?

Prosty układ, zmontowany na płytce prototypowej
Prosty układ, zmontowany na płytce prototypowej (kliknij na obrazek aby zobaczyć notki na zdjęciu na stronie Flickra)

Schemat układu jest taki:

Schemat podłączenia Arduino do fotorezystora

 

Schemat podłączenia Arduino do fotorezystora

To co tutaj jest narysowane to tak zwany dzielnik napięcia. Poczytaj na Wikipedii jak dokładnie działa.

W skrócie napięcie w punkcie pomiędzy dwoma rezystorami będzie się zmieniać w zależności od zmieniającej się rezystancji foto rezystora. I to właśnie będziemy mierzyć  naszym programem.

Oto jego kod:

// pin z którego odczytujemy wartość napięcia
int photoPin = 0;
//idczytana wartość
int val = 0;

//początkowa konfiguracja
void setup()
{
  pinMode(photoPin, INPUT); // ustawienie pinu jako wejscie
  Serial.begin(57600);
}

void loop()
{
  //odczytujemy i normalizujemy do przedziału 0-7
  val = analogRead(photoPin)/128;
  for (int i=0;i<=val;i++) {
    Serial.print(".");
  }
  Serial.println();
  delay(90);
}

Program (jak prawie każdy na Arduino) składa się z części przygotowywującej układ do działania (setup) oraz głównej pętli (loop) wykonującej się póki prąd w Arduino…

W głównej pętli mierzymy napięcie, przekształcamy odczytaną wartość w zakres liczb od 0 do 7 (bo Arduino odczytuje napięcie jako liczbę od 0 1023, więc po podzieleniu na 128 i zaokrągleniu w dół dostajemy wynik od 0 do 7) i tyle ile wyszło, tyle kropek wyświetlamy. Chwila przerwy i pętla trwa…

Rezultat działania:

Arduino IDE w trakcie pracy naszego programu
Arduino IDE w trakcie pracy naszego programu

W trakcie pracy zakrywam ręką fotorezystor, zmieniając jego rezystancję a w rezultacie napięcie odczytywane przez Arduino na PIN 0. Ilość kropek jest proporcjonalna do odczytanego napięcia.

Wykaz części

Już wkrótce – jak można fizycznie pokazać zmieniający się odczyt.