stichl.at tech at work

23Mar/130

Arduino moodlight

I needed to create a moodlight which fades between blue, green, cyan and white - a perfect job for an Arduino board I had leftover from another project 🙂

So I soldered the common anode RGB-Led to a little piece of PCB and added a 4-header.

After some research I found a really useful arduino library which is perfect for PWM-fading on any I/O pin.

Just look here: https://code.google.com/p/rogue-code/wiki/SoftPWMLibraryDocumentation

     

The sourcecode is considerably short and easy to write:

#include <SoftPWM.h>

#define PIN_G 2
#define PIN_R 3
#define PIN_B 4
#define PIN_CA 5
#define T_WAIT 10000

void setup()
{
 // Setting the common anode
 pinMode(PIN_CA,OUTPUT);
 digitalWrite(PIN_CA,1);

// Init Soft-PWM
 SoftPWMBegin(SOFTPWM_INVERTED);
 rgbPWMset(0,0,0); // black
 SoftPWMSetFadeTime(ALL, 4000, 4000);
 SoftPWMSetFadeTime(PIN_R, 4000, 3000); // because Red was too dominant when fading out
}

void loop()
{
 rgbPWMset(0,0,255); // blue
 delay(T_WAIT);

 rgbPWMset(0,255,255); // cyan
 delay(T_WAIT);

 rgbPWMset(0,255,0); // green
 delay(T_WAIT);

 rgbPWMset(255,255,255); // white
 delay(T_WAIT);
}

void rgbPWMset(int r, int g, int b)
{
 SoftPWMSet(PIN_G, g);
 SoftPWMSet(PIN_R, r);
 SoftPWMSet(PIN_B, b);
}

An example Implementation looks like this: (sorry but flickering is because of the camera...)

Filed under: Electronics, Tech No Comments
27Feb/120

Der Handy-Türklingelassistent

Jetzt fängt ja (hoffentlich) bald die Gartensaison wieder an und wir hatten letztes Jahr immer ein kleines Problem. Wenn jemand bei uns eingeladen war hatte er an der Haustüre geklingelt aber leider haben wir das nie gehört - kein Wunder, wir sitzen nichtsahnend in der Sonne und es bimmelt im 2. Stock. Da musste eine Lösung her.

Heute habe ich einen herumliegenden Axis-Videoserver, dessen Videoeingänge leider defekt sind kurzerhand zum Türöffner umfunktioniert. Das Interface zwischen Türöffner und Videoserver war nach einem kurzen Testlauf am Steckbrett recht schnell auf einer Lochrasterplatine verewigt. Ist im Prinzip nichts spannendes, nur zwei kleine 12V-Relais mit der entsprechenden Beschaltung zur galvanischen Trennung. Wer Interesse an der Schaltung hat, bitte kurz melden, dann werd ich sie schnell aufmalen...

Der Funktionsablauf ist folgender:

1. Person drückt den Klingelknopf
2. Das Klingelsignal der Sprechanlage wird galvanisch getrennt an den Axis-Videoserver weitergegeben
3. Dieser ruft ein PHP-Script am Asterisk-Server auf
4. Das Script startet je nach Konfiguration die Anrufe über das Asterisk-Manager-Interface
5. Die Telefone klingeln
6. Falls jemand abnimmt löst der Asterisk-Server das Türöffnerereignis am Axis-Videoserver aus - wenn niemand abnimmt passiert nichts.
7. Das Türöffnersignal wird galvanisch getrennt an die Sprechanlage geleitet
8. Die Haustüre öffnet  sich

Das ganze habe ich konfigurierbar gestaltet, so dass ich das Klingeln wahlweise am Handy oder am VoIP-Telefon im Büro empfangen kann.

Nun spare ich mir die Hetzerei und kann, während der Besucher schnaufend in den 2. Stock klettert, ganz gemütlich zur Wohnungstüre gehen.

Defekter Axis-Videoserver: 0€
Investierte Bauteile und Kabel: ca. 5€
Zeitaufwand: knapp 2 Stunden

Bei der Gelegenheit habe ich auch gleich das Script erweitert, so dass jedes Ereignis mit Zeitstempel in einer MySQL-Tabelle mitprotokolliert wird - mal sehen wie oft es untertags läutet 🙂

Filed under: Electronics No Comments