Posts

Es werden Posts vom 2012 angezeigt.

Bug in BlinkM

Ab und zu vergessen die BlinkM's Ihre Adresse oder haben eine Adresse über 50. Hier die Lösung von folgender Seite : You should be able to just change the hfuse and that's it. I tend to do everything ("nuke it from orbit, it's the only way to be sure") :-) To make adjust the BOD-level by just changing the lfuse, the avrdude line becomes:  avrdude -P usb -c avrispmkII -p attinyXX -v -U hfuse:w:0xDD:m That sets the BOD to 2.7V. I think for BlinkM going any lower wouldn't be of much use since the lowest voltage the Red LED in BlinkM needs to turn on is around 2.5V (the Blue and Green need around 3.4V & 3.0V respectively) BlinkMs are designed to run at 5V (i.e. the colors are most balanced around that voltage) The way the BOD works is you want it's detection level to be as high as possible so it triggers (and thus puts the chip in reset) as soon as the chip's power source gets too low. In theory, having no BOD enabled is fine, but as we're ...

Stairlight 1.0

Bild
Es hat ein wenig gedauert, aber endich kann ich sozusagen Vollzug melden ;)  Das erste Stairlight war wirklich nur ein Prototyp, da an diesem ja nur einfache RGB LED angeschlossen waren die den Effekt einfach nicht zur Geltung bringen konnten. Um jetzt mehr leistung schalten zu können, habe ich mir als erstes ein entsprechendes Lichtband bei der Bucht besorgt: http://www.ebay.de/itm/5m-RGB-5050-LED-SMD-Strip-Streif-Controller-Trafo-DC12V-Neu-/270962831006 Das Netzteil sollte man vielleicht gleich mitbestellen, da so ein Strip doch schon einiges an Power braucht. Nun geht es an die Schaltungen, ihr ahnt es sicher schon. Alle Slaves müssen durch eine Version ersetzt werden die höhere Ströme schalten kann, in unserem Fall 12V mit max. 0.5A. Da diese SMD RGB LED's wirklich sehr hell strahlen (bei 60 Leds/m) , hatte ich mich entschieden, nur 2 Segmente a 5cm für eine Stufe zu benutzen. Ich hatte mir auch schon eine Schaltung ausgesucht: http://protofusion.org/wordpress/2011...

Es werde Licht

Bild
Nun ist es endlich soweit, der erste Prototyp meines Stairlights ist am laufen und das Hauptprogramm fertig gestellt. Scheinbar verbraucht es weniger als 8 kByte, ein ATTiny85 würde also als I2C Master in Frage kommen. Ich hatte noch einige Probleme mit der String klasse, scheinbar hat diese in der Arduino IDE ein Speicherleck und nach 5-10 Durchläufen hing sich das Teil auf. Ein wenig in Google rumgesucht und siehe, da gab es wohl einen Bug in der Stringklasse: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1269804272 Also raus mit der klasse und rein mit einer char Definition. Ein anderer Fehler, den wohl nur ein Anfänger wie ich machen kann, wenn man mit millis() rechnet sollte man immer als variable unsigned long nehmen, ansonsten wird es ein Überlauf alle x Sekunden geben, was das Programm dann verrückt spielen läßt. http://arduino.cc/en/Reference/millis Hier der komplette Code: http://code.google.com/p/xstairlight/ Ich werde dieses Programm weiter...

I2C Slave in Arduino/C

Bild
Also ich sag mal so, es war ein Krampf! Das lag aber mehr an den nicht gesammelten Erfahrungen und an einem fehlerhaftem Modul, das so noch nicht kommuniziert wurde. Was war passiert? Ich baute den ersten analogen Drucksensor als I2C Device, dieser besteht aus einem ATTiny85 sowie zwei Pullup Widerständen. Drucksensor I2C Prototyp Die ersten Tests mit dem Modul TinyWireS  sahen auch nicht schlecht aus. Was mir aber damals schon auffiel, das Konstrukt schien ein sync Problem zu haben. Immer wenn ich den Sensor betätigt habe, kamen die informationen (je nach Delay im Master) eine Sekunde später an. Ich bin an dem Problem fast verzweifelt, bis ich gestern diesen Forumbeitrag gefunden hatte: http://arduino.cc/forum/index.php/topic,108410.0.html Das einzige Problem dabei, ich wusste nicht das man c++ Code direkt in der Arduino IDE editieren und compilieren konnte. Das ging schon mal wenn man folgende Tipps berücksichtigt: http://arduino.cc/forum/index.php/topic,108410....

Fuses oh Fuses!

Tja, das programmieren eines kleines achtbeinigen ATTiny ist schon etwas besonderes, bevor man mit einem Frischling aus dem Laden Leben einhaucht, sollte man aber UNBEDINGT an die Fuses denken: http://www.mikrocontroller.net/articles/AVR_Fuses Nach langem Suchen und einigen Missverständnissen des online Fusecalc(  http://www.engbedded.com/fusecalc  ), habe ich es nun doch geschafft. Hier einige Punkte die wichtig sind: Fuses auslesen: avrdude -c usbasp -p t85 -B20 -v -U lfuse:r:-:i Fuses schreiben: avrdude -c usbasp -p t85 -B20 -v -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m Nach diesem Vorgang kann man den ATTiny programmieren wie man will, die Einstellungenm (Fuses) werden für immer gespeichert. Auch sollte man beachten, das jetzt erst die meisten Programmer gewillt sind ungedrosselt den µC programmieren zu wollen! Ansonsten muss man, wie oben beschrieben mit '-B20' den programmer etwas drosseln.

Arduino Treppenlicht per I2C

Bild
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_1 ATtiny85 mit Drucksensor (FSR) und Lichtsensor I2C_2 ATtiny85 mit Nachbau BlinkM Modul I2C_X ATtiny85 mit Nachbau BlinkM Modul I2C_14 ATtiny85 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   So, alles aufgebaut und was soll ich sagen, es funktionierte auf Anhieb. Hier mal e...