123D circuits – Symulacja arduino część 4 (czujniki)

W poprzednich częściach jedyny wpływ na symulowane arduino mieliśmy tylko poprzez przyciski lub potencjometry, w tej części pokażę jak wykorzystywać proste czujniki dostępne w bibliotekach 123D Circuits.

Czujnik temperatury LM35

Jest to analogowy czujnik, który zwraca wartość napięcia proporcjonalną do zmierzonej temperatury. Napięcie to wzrasta o 10mV z każdym stopniem Celsjusza. Do zaprezentowania działania tego czujnika temperatury proponuje prosty układ z alarmem włączającym się po przekroczeniu pewnej temperatury.

1

Po przekroczeniu określonej temperatury na 2 wyjściu arduino pojawi się stan wysoki i przekaźnik zmieni swoje położenie, a równocześnie załączy się buzer.

int alarm = 2;

int lm35 = 0;
int temp;

void setup() 
{
  pinMode(lm35, INPUT);
  pinMode(alarm, OUTPUT);
}


void loop() 
{
  temp = analogRead(lm35);
  
  if(temp > 100)
    digitalWrite(alarm, HIGH);
  else
    digitalWrite(alarm, LOW);
}

Program bardzo prosty, utworzenie zmiennych, konfiguracja pinów, w pętli odczytywanie napięcia z czujnika i sprawdzanie czy przypadkiem nie wystąpiła sytuacja awaryjna, jeżeli tak to ustawia stan wysoki, jeżeli nie to niski. Warto pamiętać, że wartość „100” przy której załącza się alarm, nie jest to temperatura ani napięcie, a jest to po prostu surowa nie przeskalowana wartość z przetwornika analogowo-cyfrowego. Temperaturę w symulatorze zadajemy zwykłym suwakiem który pojawia się po kliknięciu w czujnik LM35.

Jak widać alarm załącza się w okolicach 50°C, a kiedy temperatura zejdzie poniżej alarm się wyłącza. Nie dodałem dźwięku buzera, bo mi mało nie rozerwał głośników. Polecam na niego uważać, jest wyjątkowo upierdliwy, czyli w sumie robi to co ma robi, zwraca uwagę.

Czujniki światła – fotorezystor

Tak samo jak temperaturę możemy też symulować światło. Jako pierwszy czujnik leci fotorezystor, bardzo prosty, bo wraz ze zmianą światła następuje zmiana rezystancji. Fotorezystor najlepiej wykorzystać w układzie dzielnika napięcia i mierzyć spadek napięcia na nim. Dobrym przykładem do zaprezentowania będzie symulacja wyłącznika zmierzchowego, czyli kiedy jest ciemno to żarówka ma się świecić, a jak jest jasno, to ma gasnąć. Lekko zmodyfikowany schemat.

2

Fotorezystor wraz z rezystorem tworzą dzielnik napięcia, im większa ilość światła tym mniejsza rezystancja fotorezystora i mniejszy spadek napięcia. W kodzie programu też niewielkie zmiany.

int alarm = 2;

int fotorezystor = 0;
double light;

void setup() 
{
  pinMode(fotorezystor, INPUT);
  pinMode(alarm, OUTPUT);
}


void loop() 
{
  light = analogRead(fotorezystor);
  
  if(light < 500)
    digitalWrite(alarm, LOW);
  else
    digitalWrite(alarm, HIGH);
}

Zmianie uległy nazwy zmiennych, tak aby lepiej opisywały co przechowują, oraz zmieniony jest warunek kiedy ma być stan niski, a kiedy wysoki.

Czujnik przechyłu SW 200D

Jest to bardzo prosty czujnik przechyłu, a jego obsługa niczym się nie różni od obsługi przycisku. Kiedy zostaje przechylony w odpowiednią stronę, to zwiera obwód. Poniżej przedstawiam jego budowę:

3

Są to po prostu poruszające się w środku kulki, które zwierają obwód. Schemat bardzo prosty, podpinamy czujnik do wejścia cyfrowego i podciągamy je do plusa zasilania, a drugą nuszkę czujnika podpinamy do masy.

4

Kod programu także jest dosyć prosty.

int alarm = 2;

int sw200D = 4;

void setup() 
{
  pinMode(sw200D, INPUT);
  pinMode(alarm, OUTPUT);
}

void loop() 
{
  if(digitalRead(sw200D) == HIGH)
    digitalWrite(alarm, LOW);
  else
    digitalWrite(alarm, HIGH);
}

Wiele tutaj nie ma, tylko konfiguracja pinów, i trochę logiki w formie sprawdzania czy czujnik jest przechylony czy nie. Kiedy czujnik zostaje przechylony to na pinie 4 pojawia się stan niski i załącza się alarm, a jak czujnik jest w normalniej pozycji to stan na jego pinie jest wysoki, więc alarm wyłączamy.

Zarówno czujniki analogowe jak i cyfrowe łatwo symulować w aplikacji 123D Circuits, szkoda, że nie ma dostępnych bardziej rozbudowanych czujników, bo zabawa była by ciekawa.

Zapraszam do komentowania i następnej części, która będzie poświęcona komunikacji.

Komentarze do „123D circuits – Symulacja arduino część 4 (czujniki)

  1. Dużo błędów gramatycznych jest w twoich artykułach. Przed dodaniem tego do internetu, sprawdź najpierw w Wordzie czy nie podkreśla ci błędów. Serio, jak można napisać NUSZKI? Opisowo wszystko spoko, programy też są okej, ale te błędy aż zniechęcają do dalszego czytania tekstu. Popracuj nad tym, a będzie tylko lepiej.

    • Jestem świadomy tego problemu, czasem nawet podkreślanie tego nie wyłapuje, już nawet wiem w jakich słowach robię błędy, i je sprawdzam, ale samemu to jest ciężko, bo jak pisałem, to nie widzę błędów, więc dobrze jak ktoś inny przeczyta to w tedy wychwyci.

  2. Nie przejmuj się zbytnio błędami „Nikt nie jest doskonały” … Mimo wszystko pisz …
    Ja będę czytał. Ważne żeby zachować logikę.
    Ja mam ostatnio nieciekawe doświadczenia z korektorami automatycznymi Word’a.
    Nie da się tego całkowicie wyłączyć – a operując językiem polskim i angielskim i nietypowymi tekstami … te korektory bardzo przeszkadzają i robią mi dużo szkody w dokumentach technicznych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.