Czujnik zaproponowany przez Instructables pod pseudonimem AdnanA61 pozwala wykrywać krótkofalowe promieniowanie podczerwone ze źródeł takich jak piloty, ogień, lampy żarowe i słońce. Nie reaguje na inną formę promieniowania podczerwonego - falę długofalową, której źródłem są wszystkie obiekty ogrzane do zwykłych temperatur. Domowe wytwarza dwa rodzaje sygnałów: analogowy i dyskretny, drugi z nich jest tworzony przez komparator, którego próg jest regulowany. Oba sygnały można zastosować do obu Arduinooraz do innych urządzeń z mikrokontrolerem lub bez niego. Oto kolejna konstrukcja płytki, obwód nie jest inny:
Czujnik jest wykonany na jednym z dwóch komparatorów mikroukładu LM393; drugi można w razie potrzeby wykorzystać do rozwiązania innego problemu. Jeśli go nie używasz, lepiej połączyć oba wejścia wspólnym przewodem i pozostawić wyjście niepodłączone.
Schemat jest tak zaprojektowany, że czytanie go nie jest zbyt wygodne. Trzy punkty oznaczone jako A0 muszą być ze sobą połączone. Dwa punkty oznaczone również jako D0. Staje się więc jasne, z czym się wiąże i jak działa. Żadnych zagadek. Jeśli montujesz czujnik od projektanta, pinout grzebienia na płycie zawartej w zestawie będzie następujący:
Oczywiście, na prowizorycznej planszy, drukowanej lub płytce chlebowej, ten pinout może być dla Ciebie wygodny. Możesz sprawdzić tablicę w działaniu i ustawić próg komparatora natychmiast po montażu, po prostu dostarczając zasilanie, dzięki diodzie LED na pokładzie. Druga dioda LED świeci ciągle, gdy zasilanie jest włączone. Następnie możesz podłączyć czujnik do Arduino i przetestować wyjście analogowe za pomocą tego szkicu:
// skopiuj ten kod do ide arduino z tej linii
// uwaga: - ten kod dotyczy wartości analogowej
czujnik int = A0; // inicjowanie styku analogowego
int brzęczyk = 3; // inicjowanie pinu brzęczyka
wartość int;
void setup () {
Serial.begin (9600);
pinMode (czujnik, WEJŚCIE); // przypuszczenie, że pin jest w trybie pinowym jako wejście lub wyjście
pinMode (brzęczyk, WYJŚCIE);
}
void loop () {
wartość = analogRead (czujnik); // odczyt walusa z czujnika
wartość = mapa (wartość, 0,1033,0,255); // mapowanie wartości od 0 do 1023 czarno-białych od 0 do 255
digitalWrite (brzęczyk, wartość); // włączanie lub wyłączanie brzęczyka o zamapowaną wartość
}
I cyfrowy - z innym szkicem:
// skopiuj ten kod do ide arduino z tej linii
// uwaga: - ten kod dotyczy wartości cyfrowej
int sensor_digital = 2; // inicjowanie cyfrowego pinu
int brzęczyk = 3;
wartość int;
void setup () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (brzęczyk, WYJŚCIE);
}
void loop () {
wartość = digitalRead (sensor_digital); // odczyt danych cyfrowych z czujnika
digitalWrite (brzęczyk, wartość); // włączanie lub wyłączanie brzęczyka
}
Gdy wszystko działa, możesz pisać programy, które implementują algorytmy o większej złożoności. Na przykład dla robota „bojącego się” zbliżyć do płomienia lub potężnej żarówki, aby się nie pogorszyć. I robi to dobrze, ponieważ trzymanie płytki czujników w pobliżu źródeł silnego ogrzewania w odległości mniejszej niż 100 mm może ją uszkodzić.