den Lichtsensor (LDR Fotowiderstand) würde ich in den Kamin, auf das Vordach oder auf die Dachrinne befestigen. Diese sind so klein, daß man das kaum sieht.
Zum Lichtsensor kommt noch ein Poti in Reihe. Mit diesem Poti wird dann der Schwellwert zur Nacht festgelegt. Spannungsteilerschaltung
#178 von
fallerralph
(
gelöscht
)
, 09.02.2014 22:58
Hallo zusammen,
ich hab da mal ein kleines Problem. Ich möchte das mein ATtiny45 die LED´s der Reihe nach einschaltet und wieder ausschaltet mit dem Befehl "Fade" Gelungen ist mit nur bisher das zwei LED "faden" und die anderen zwei schalten. Anders kann ich das nicht erklären.
Hier erst mal der Code:
int ledPin0 = 0; // the pin that the LED is attached to int ledPin1 = 1; int ledPin2 = 2; int ledPin3 = 3;
void setup() { // Keine Setup Einstellungen }
void loop() { // fade in from min to max in increments of 5 points: for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // sets the value (range from 0 to 255): analogWrite(ledPin0, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade out from max to min in increments of 5 points: for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // sets the value (range from 0 to 255): analogWrite(ledPin0, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade in from min to max in increments of 5 points: for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // sets the value (range from 0 to 255): analogWrite(ledPin1, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade out from max to min in increments of 5 points: for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // sets the value (range from 0 to 255): analogWrite(ledPin1, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade in from min to max in increments of 5 points: for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // sets the value (range from 0 to 255): analogWrite(ledPin2, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade out from max to min in increments of 5 points: for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // sets the value (range from 0 to 255): analogWrite(ledPin2, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade in from min to max in increments of 5 points: for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // sets the value (range from 0 to 255): analogWrite(ledPin3, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); }
// fade out from max to min in increments of 5 points: for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // sets the value (range from 0 to 255): analogWrite(ledPin3, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } } Kann mir dabei einer behilflich sein?
#181 von
fallerralph
(
gelöscht
)
, 10.02.2014 17:01
Hallo zusammen,
hier noch ein anderer Code mit dem es möglich sein müsste den ATtiny45 an 5 Pins zu betreiben. Nur gibt das Programm einen Fehler aus den ich nicht weg bekomme.
#define fadeSpeed 20 void setup(){ for(int pin=0;pin<5;pin++) pinMode(pin, OUTPUT); } void loop(){ for(int pin=0;pin<5;pin++) { for(int fade=1;fade<254;fade++) { //fade on softPWM(pin, fade, fadeSpeed); } for(int fade=254;fade>1;fade– { //fade off softPWM(pin, fade, fadeSpeed); } } } void softPWM(int pin, int freq, int sp) { // software PWM function that fakes analog output digitalWrite(pin,HIGH); //on delayMicroseconds(sp*freq); digitalWrite(pin,LOW); //off delayMicroseconds(sp*(255-freq)); }
Die Fehlermeldung sieht dann so aus.
sketch_feb10d:10: error: stray '' in program sketch_feb10d.ino: In function 'void loop()': sketch_feb10d:10: error: expected `)' before 'u2013' sketch_feb10d:10: error: 'u2013' was not declared in this scope sketch_feb10d:10: error: expected primary-expression before ')' token sketch_feb10d:10: error: expected `;' before ')' token
#182 von
spielbahn
(
gelöscht
)
, 10.02.2014 22:11
@Ralph: So weit ich weiß, läuft SoftPWM ohne Anpassung nicht auf einem ATTiny. Für weitere Info: http://forum.arduino.cc/index.php/topic,134754.0.html. Aber prinzipiell: Warum das ganze Theater mit den ATTiny? Ein 328 (wie im Arduino UNO) kostet auch nicht wesentlich mehr und es gibt Null Anpassungsprobleme. (0K, er ist halt mechanisch etwas größer - aber wenn Platz kein Problem ist...)
Grüße Uli
Änderung: Habe den Sketch nur oberflächlich gelesen und dachte Du verwendest die SoftPWM-Lib, Du hast stattdesssen Dein eigenes SoftPWM deklariert (Diese kommt aber nie auf 100%, da jeder Pin "off" ist, solange die anderen Pins - und evtl. anderer Programmcode - abgearbeitet werden. Bei 5 Pins dürftest Du mit dem Programm nicht über 20% Einschaltdauer kommen.)
#183 von
fallerralph
(
gelöscht
)
, 10.02.2014 22:30
Hallo Uli,
der Sketch läuft jetzt einwandfrei. Hab nur 4 Pins in Betrieb. Weiter oben habe ich den Sketch reingestellt. Error in Zeile 10. Bei der Zeile ist das letzte -Zeichen etwas nach unten gestellt und kürzer. Hab die Zeile gelöscht und neu geschrieben.
Zitat von fallerralphfor(int fade=254;fade>1;fade– { //fade off
Zitat von fallerralphAber prinzipiell: Warum das ganze Theater mit den ATTiny? Ein 328 (wie im Arduino UNO) kostet auch nicht wesentlich mehr und es gibt Null Anpassungsprobleme. (0K, er ist halt mechanisch etwas größer - aber wenn Platz kein Problem ist...)
Es geht nicht darum einen anderen Chip zu nehmen, das wäre einfach. Sondern darum aus dem ATtiny das heraus zu holen was der kann. Und er kann.
ich hab den Schritt jetzt gewagt und hab mir eine Platine für den Attiny44 bestellt. Gestern sind Sie gekommen und natürlich musste ich gleich mal eine bestücken Hier mal nur kurz ein Foto
Die Platine selbst hat eine Größe von 30 x 23 mm, sollte also bei H0 auf jeden Fall überall platz finden
Ich hab mir jetzt mal 200 davon machen lassen.... Wenn jemandem das Layout zusagt hab ich also ein bisschen was über Grüße
gefällt mir gut, die Idee den Attiny durch zu stecken und auf der Lötseite SMD-Wiederstände zu verwenden. Da ich N-Bahner bin ist mir die Platine etwas zu groß, aber ich werde mir ähnliche für den Attiny45 ätzen.
ich habe da sogar noch einen IC-Sockel rein gelötet, damit ich den Attiny bei Bedarf leicht raus nehmen kann (Wenn ich mal was umprogrammieren will oder so).
Das mit dem selber Ätzen der Platinen hab ich mir auch erst überlegt, aber bei einem Preis von knapp 70 cent pro Platine war's mir der Aufwand nicht wert, da ich mir das Equipment auch erst hätte zulegen müssen und noch keinerlei Erfahrung damit habe. Von daher war das für mich der leichtere Weg. Zusätzlich hab ich noch den Vorteil das ich vergoldete Kontakte hab und das ganze auf der Unterseite mit Lötstopplack versehen ist. Insgesamt kostet mich so eine Platine inkl. der Vorwiderstände und des Attiny jetzt knappe 2 €.... das ist meiner Meinung nach wirklich ein Schnäppchenpreis.... deswegen habe ich jetzt auch direkt auf den Attiny45 verzichtet... Ich zahl 1€ für den Attiny44 und von der größe her hab ich ja nicht so das Problem
wo hast Du denn die Platine ätzen lassen ? Ich kenne nur Fritzing als "professionellen" (aber dementsprechend teuren) Service (Ergebnis bzw. fertige Platine sehr gut) und habe einen Versuch bei einem (auf den ersten Blick) günstigen Anbieter gemacht - dort aber auch nach Wochen noch keine Antwort auf meine Anfrage/Auftrag erhalten.
Viele Grüße, Bodo
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)
Zitat von Bodowo hast Du denn die Platine ätzen lassen ?[...]
Hallo, ich lasse seit einiger Zeit meine Platinen bei http://www.Leiton.de machen. Die sind recht preisgünstig und zuverlässig. Als CAD-Format verwende ich EAGLE. Für kleine Platinen gibt es eine kostenfreie Version, bei der auch z.B. alle Atmel controller schon in den fertigen Bibliotheken enthalten sind. Das "E" in EAGLE heisst "EASY".
hab die Platine auf 30 x 35 mm verkleinert und mit Massefüllung versehen (ich weiss aber nicht ob das überhaupt nötig ist)
Grüße
Zvoni
Hallo,
hab jetzt endlich Zeit gefunden mir die von Fritzing gelieferten Platinen anzuschauen. Im Gegensatz zum Layout haben die Platinen noch einen Kondensator zwischen Masse und 5V.
Als erstes habe ich mir einen Programmieradapter für den Attiny45 gebaut.
Natürlich habe ich die einzelnen Adern beschriftet, bin einfach zu faul jedes mal im Datenblatt zu suchen wie ich es am Arduino anzuschließen habe.
Sollte alles so funktionieren wie ich mir das vorstelle, so werde ich mir noch Platinen machen lassen, hier wurden ja einige günstige Anbieter genannt.
#194 von
spielbahn
(
gelöscht
)
, 01.03.2014 18:51
Zitat von SiKZorro...Als erstes habe ich mir einen Programmieradapter für den Attiny45 gebaut.
Natürlich habe ich die einzelnen Adern beschriftet, bin einfach zu faul jedes mal im Datenblatt zu suchen wie ich es am Arduino anzuschließen habe. ....
Ein Tipp: besorge Dir ein Prototype-Shield auf dem Du die Fassung für den Attiny45 verkabeln kannst, dann musst Du in Zukunft nur noch das Shield aufstecken. Ich habe übrigens auf das Shield einen ZIF-Sockel montiert - ist noch fauler
Hallo, Tom 75 und Ulli, eure Platinen sehen super aus. Ulli , eine Frage zum Elko, wird der eingesetz wenn du den Tiny programmierst und nennst du uns den Wert. Ich habe mir auch ein Shield zum Aufstecken auf den Arduino erstellt, denn das Verkabeln ist doch etwas umständlich. Aber mit der Beschriftung ist schon eine Hilfe.
#199 von
spielbahn
(
gelöscht
)
, 02.03.2014 18:33
Zitat von tom75.... Was kann denn da ein Problem werden ....
Wenn es funktioniert, mit dem UNO ohne Kondensator einen ATtiny zu programmieren, dann gibt es eben kein Problem. Der UNO ist so beschaltet, dass er einen Reset macht, wenn von der Arduino-IDE ein Programm geliefert wird, weil dann der Bootloader des UNO anspringt und das Programm in den UNO schreibt. Wenn der UNO jedoch als Programmer für den ATtiny arbeiten soll, soll das Programm ja nicht in den UNO also darf dessen Bootloader nicht starten also darf auch kein Reset des UNO auftreten, diesen Resetimpuls soll der Kondensator verhindern.
hat schon mal jemand einen Sketch geschrieben der mehr als 5 Ausgänge ansteuert??
Ich benötige mindestens 14 Ausgänge plus 3 TV Ausgänge und komme im Moment nicht so richtig weiter damit. Bin leider immer noch im Anfangsstadium mit der Programmierungsumgebung.
Gruß,
Ingo
Ein Pola H0 Verrückter zu meiner Homepage:http://www.ingomoegling.de Bauanleitung für einfache Wagenbeleuchtung im Lowcost Bereich.