Freitag, 1. Juni 2012

Arduino Treppenlicht per I2C

Ich habe mir einige Anleitungen für "Treppenlichter" angesehen und diese sehen meist auch toll aus. Ich wollte aber einen anderen Weg gehen und mich näher mit I2C beschäftigen. Ein Treppenlicht bietet sich da förmlich an, hier also mein Plan:


Steuerung(Arduino nano) --> I2C Bus: 


I2C_1ATtiny85 mit Drucksensor (FSR) und Lichtsensor
I2C_2ATtiny85 mit Nachbau BlinkM Modul
I2C_XATtiny85 mit Nachbau BlinkM Modul
I2C_14ATtiny85 mit Drucksensor (FSR)


Die Treppe besteht aus 13 Stufen, also benötige ich 13 I2C Devices die mit der Firmware von BlinkM arbeiten. Plus 2 Devices, die ermitteln ob die erste oder letzte Stufe betreten wurde sowie ein Lichtsensor. Hier wurden auch schon Leiterplatten mit Fritzing erstellt und in Auftrag gegeben. Die ATtinys selber werden ja immer billiger, ich habe mich für den ATtiny85 entschieden. bei 0.80 Euro braucht man da nicht mehr nachdenken  smiley-cool


So, alles aufgebaut und was soll ich sagen, es funktionierte auf Anhieb. Hier mal ein Foto des Versuchsaufbau's und der Code für master und Slave. Auf dem Foto seht ihr den Arduino Nano sowie ein BlinkM Device sowie das I2C mit dem Drucksensor FSR 402. Das BlinkM hat in dem Aufbau erst einmal keine Funktion ... sobald man den Sensor betätigt bekommt man Werte bis 256 auf der Konsole.





Nun, ich habe als erstes ein BlinkM Clone in Fritzing entworfen. Die habe ich dann als Gerberfiles an einen Leiterplattenhersteller:https://www.haka-lp.de geschickt und gestern bekommen. Aber wie das Leben so spielt, zwei Fehler waren in dem Entwurf. Ich hatte 2 Massen und der Reset Pin des Tinys war auf masse smiley-wink Aber nach brutalem umbiegen des Pin's lies sich das Teil ansprechen smiley-wink Mein größtes Problem, die Bohrungen der RGB LED waren einfach zu klein und ich muss mir jetzt was ausdenken um die gelieferten Leiterplatten doch noch nutzen zu können.


Hier mal mein geänderter Entwurf mit extra Buchsenleiste für die LED ...


so am Wochenende habe ich endlich zeit gehabt mich weiter um mein Projekt zu kümmern smiley-wink Die 13 Devices sind jetzt alle zusammen gelötet. Die falsche Routenführung hatte ich mit einem kleinen kabel gelößt. Der resetpin auf masse wurde durch brutales entfernen des pins an dem IC Sockel deaktiviert.


Um das I2C Problem etwas zu umgehen, habe ich mich entschlossen bei Reichelt ein 10 poliges Flachbandkabel nebst 2x5 Pfostensteckern zu kaufen. Die Signalleitungen haben dadurch immer eine Masseleitung zwischen sich und werden damit stabiler arbeiten. 


Hier also ein paar Fotos von den kleinen Dinger smiley-wink






Endlich sind auch die platinen für die I2C AnalogSensoren gekommen. Gleich einen mal zusammengelötet und siehe da, auf Anhieb funktioniert ... jedenfalls sah es so aus ;) Der Sensor arbeitet, Problem war nur .... immer wenn ein Event ausgelöst wurde kam der einige Sekunden später bei dem Master an. Ich hab eine Weile gebraucht um herauszufinden das die Fuses nicht richtig gesetzt wurden und der Attiny85 mit seinen  Standart Fuses also 1 MHZ nur läuft. Gut, man lernt immer dazu ;)

Am Wochenende werde ich die Zeit finden um endlich das Programm aufzubauen und den I2C Drucksensor aufzubauen.

1 Kommentar: