Ostatnio postanowiłem zrobić dla ukochanej żony oświetlenie pod szafkowe, aby nie musiała zmywać w ciemnościach ;).
Do zrobienia projektu wykorzystałem następujące części:
* Taśma LED 12V biała ciepła
* Zasilacz wodoodporny IP67 (ja miałem 50W)
* Arduino Pro Mini
* Tip31C
* Czujnik odległości HC-SR04
* Wtyk DC Power Jack męski i damski
Poniżej mini-schemat:
Wszystko zamknąłem w obudowę:
Pomocne przy lutowaniu wtyków do zasilania okazały się poniższe zdjęcia:
Tu warto zwrócić uwagę, że należy oba piny GND podłączyć do masy.
I drugie zdjęcie:
Program został napisany z wykorzystaniem Arduino IDE. Jak załadować projekt na arduino mini opiszę w osobnym poście. Poniżej kod programu. Ma on za zadanie włączać oświetlenie gdy zbliżymy rękę do czujnika na max 20cm. Odczyt sygnału ustawiłem na 1,2sekundy. Kolejne zbliżenie ręki ma wyłączyć taśmę LED.
Wszystkie odwołania do Serial można wyrzucić - były tylko pomocne na etapie projektowania i debugowania.
/*
HC-SR04 Ping distance sensor]
VCC to arduino 5v; GND to arduino GND
Echo to Arduino pin 7; Trig to Arduino pin 8
*/
#define echoPin 7
#define trigPin 8
#define dioda 9
int isEnable = 0;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(dioda, OUTPUT);
}
void loop() {
// send a pulse on the trigger pin to initiate measurement
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// the length of the pulse on the echo pin is proportional to the distance
long duration = pulseIn(echoPin, HIGH);
long distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Out of range");
digitalWrite(dioda, HIGH);
delay(1200);
digitalWrite(dioda, LOW);
}
else {
Serial.print(distance);
Serial.println(" cm");
if(distance < 20) {
if(isEnable == 0) {
isEnable = 1;
digitalWrite(dioda, HIGH);
}
else if(isEnable == 1) {
isEnable = 0;
digitalWrite(dioda, LOW);
}
}
}
delay(1200);
}
Całość prezentuje się jak na filmiku poniżej. Zostało podłączenie docelowego zasilacza oraz zamaskowanie kabli.