Ich habe vor eine kleine Spielzeugampel für meinen Sohn zu bauen. Auf dem Steckbrett funktioniert diese auch. Nun habe ich aber 2 Fragen und ich hoffe ihr könnt mir dabei helfen. 1. die Ampel soll mit 2 oder 3 1,5V Zellen (AAA) betrieben werden. Was wäre besser 2 oder 3 und warum? 2. Muss der Reset Pins der Tiny's mit an die Spannungsversorgung angeschlossen werden. Wenn ja warum? Wie gesagt auf dem Steckbrett funktioniert das ganze schon. Und falls der Reset Pin angeschlossen werden sollte,dann könnte ich auch ohne Pull-Up anschließen, da der Tiny ja schon einen internen hat. Richtig? 3. Ist bei dieser Schaltung ein Stützkondensator nötig? Möchte wegen Platzmangels mit so wenig Teilen wie nötig auskommen! Vielen Dank für eure Hilfe
Steve L. schrieb: > 1. die Ampel soll mit 2 oder 3 1,5V Zellen (AAA) betrieben werden. 3, besser definierter Strom durch die LEDs auch bei absinkender Versorgung, bei leerer werdenden 2-Zellen gingen sonst die LEDs aus, die Spannung sinkt schliesslich auf 0.9V/Zelle und 1.8V sind zu wenig. > 2. Muss der Reset Pins der Tiny's mit an die Spannungsversorgung > angeschlossen werden. Nicht unbedingt aber dadurch wird die Schaltung störsicherer. > 3. Ist bei dieser Schaltung ein Stützkondensator nötig? Ja, immer. Vielleicht wäre eine Schaltung besser verständlich ohne uC, dann lernt er mit 8 Jahren wie sie funktioniert.
Dennis H. schrieb: > Warum so viele Tinys ? > > Es gibt ja die Möglichkeit die LED's auch umgekehrt gepolt > anzuschliessen. Ist zwar keine Antwort auf meine Fragen aber ich erkläre trotzdem. Bin noch ziemlicher Anfänger und das ist die Lösung die ich mir ausgedacht habe. Zur Erklärung der Ampelfunktion. Die Auto Ampel soll immer laufen wie bekannt. Die Fußgänger Ampel immer Rot haben,nur beim betätigen des Taster soll eine grünphase eingeleitet werden. Daher 2 Tiny's!
Michael B. schrieb: > Nicht unbedingt aber dadurch wird die Schaltung störsicherer. Welche Störungen sollen auftreten? Was könnte passieren? Was ist mit dem Pull-Up Widerstand? Michael B. schrieb: >> 3. Ist bei dieser Schaltung ein Stützkondensator nötig? > > Ja, immer. Was sollte hier passieren? Würden die "komischen gelben" aus einem PC Netzteil reichen? //Edit habe den Plan nochmal geändert. So besser?
:
Bearbeitet durch User
Steve L. schrieb: > Michael B. schrieb: >>> 3. Ist bei dieser Schaltung ein Stützkondensator nötig? >> >> Ja, immer. > > Was sollte hier passieren? Beide Ampeln gleichzeitig grün. 100 Tote. Nee, Spaß beiseite: In deinem Beispiel könnte es wohl auch ohne funktionieren. Das ist aber immer ein Spiel mit dem Feuer. Durch kurzfristige Spannungseinbrüche könnte dein µC aus "dem Takt" kommen. >Würden die "komischen gelben" aus einem PC > Netzteil reichen? Keine Ahnung. Ich kenne die komischen gelben nur vom BVB.
Steve L. schrieb: > //Edit habe den Plan nochmal geändert. So besser? C1 (jeweils einen) möglichst dicht an die Vcc, Vss Pins vom Tiny und schön ist es.
Hi Warum hast Du PB3 und PB4 untereinander verbunden? Schönes Projekt. Toll, daß Du so was für Deine(n) Kleine(n) zusammen baust. MfG
Martin K. schrieb: > Beide Ampeln gleichzeitig grün. 100 Tote. > Nee, Spaß beiseite: In deinem Beispiel könnte es wohl auch ohne > funktionieren. Das ist aber immer ein Spiel mit dem Feuer. Durch > kurzfristige Spannungseinbrüche könnte dein µC aus "dem Takt" kommen. Mein 1. Projekt war der Umbau einer Lego Lokomotive. Funktioniert tadellos auch ohne Kondensator. Martin K. schrieb: > Keine Ahnung. Ich kenne die komischen gelben nur vom BVB. Das sind doch, so denke Ich immer die selben Standard Dinger 10nF oder 100nF. Plan jetzt besser? Die Kondensatoren kommen dann natürlich so dicht wie möglich an die Pins der Tiny's. Bleibt immer noch die Frage nach den Pull-Up am Reset Pin.
:
Bearbeitet durch User
Hi Habe hier an einem ATtiny45 'nur' den internen PullUp auf High gezogen (laut Simulator tut sich da auch was im µC). Eine an Reset angeschlossene LED nach GND (LowCurrent, 1K8Ω) lässt das Steinchen direkt einfrieren - auch, wenn die LED leicht vor sich hin glimmt. ... hatte die LC-LED mit dem angelötetem Widerstand (zuvor in einer IC-Fassund gesteckt als Indikator-LEDs) noch rumliegen ... MfG
Nochmal zum Pullup am Reset: Ein (Reset-)Eingang braucht keinen Pull-UP. Man kann ihn direkt an VCC oder GND legen. Wenn er einen internen Pull-Up hat und das Signal auch high sein soll, dann kann man sich den Anschluss sparen. Wenn man einen externen Reset-Baustein hat, dann kann dieser den Eingang high oder low ziehen, ohne dass es knallt. Ein Pullup ist quasi ein "schwaches High-Signal", dass man durch volles GND oder VCC überschreiben kann. Manchmal erwartet ein Reset-Pin auch eine Verzögerung, dann lädt man mit einem Pullup einen Kondensator über eine berechnete Zeit. Fazit: Wenn Du VCC fest draufnagelst, ist der interne Pull-Up egal. (Sorry, dass ich es nochmal aufgreife, aber die HW sollte wesentlich einfacher und kleiner werden, und die Software wesentlich verständlicher, wenn Du einen Tiny verwendest. Du sparst auch keine Verbindung oder andere Bauteile. Eine Software auf 2 Rechnern mit Synchronisation ist (gegenüber einer Ein-Chip-Lösung) eine Herausforderung.)
Hi Achim S. schrieb: > Eine Software auf 2 Rechnern mit > Synchronisation ist (gegenüber einer Ein-Chip-Lösung) eine > Herausforderung.) Wenn Diese aber hier funktioniert: Herausforderung bestanden deshalb noch Mal zu PB3 und PB4 - wie schwätzen die beiden Programme miteinander, ohne, daß es 'knallt'? MfG
Patrick J. schrieb: > wie schwätzen die beiden Programme miteinander, ohne, daß es 'knallt'? über ein Kabel:) relativ einfach gelöst. HIGH oder LOW am jeweiligen Pin und der Tiny weiß was los ist. Achim S. schrieb: > Eine Software auf 2 Rechnern mit > Synchronisation ist (gegenüber einer Ein-Chip-Lösung) eine > Herausforderung.) Wie schon geschrieben funktioniert das ganze ja schon auf dem Brett. Natürlich wäre eine 1 Chip Lösung auch schön. Aber das einzige womit ich bis jetzt gearbeitet habe sind der Arduino und halt die Tiny's. Ich habe auch noch die Tiny's hier liegen gehabt deshalb bin ich auf diese Lösung gekommen. Wenn ihr wollt kann ich ja mal den Code posten. Also ist der Schaltplan fertig?
Hi Aso - wenn nur Einer der Beiden die 'Datenleitungen' aktiv ansteuert - klar, kann man bis 4 Zustände übertragen. Dachte, Du überträgst hier 'richtige' Daten ;) Klar, immer her mit dem Quellcode Solange die beiden µC als Master/Slave fungieren, passt Das so. Vll. eine kleine Anregung für 'Ver. 2' - der ATtiny hat 5 I/Os. Rot und Grün leuchten NIE zusammen (man könnte also bei der Fußgängerampel einen I/O sparen, z.B. für den Taster). Dann hast Du 4 LED-Pins und einen Taster-Pin - genau die Anzahl, Die der ATtiny85 anbietet (wobei Du auch RESET als I/O nutzen könntest, sofern Du den µC nie wieder programmieren willst (Ausnahme per HV-Programmer)) MfG
Steve L. schrieb: > Aber das einzige womit ich bis jetzt gearbeitet habe sind der Arduino > und halt die Tiny's. Ich habe auch noch die Tiny's hier liegen gehabt > deshalb bin ich auf diese Lösung gekommen. Die zwei µC finde ich auch dusselig, aber Du hast die Lösung nun mal fertig, die Teile kosten nicht sonderlich viel. Du kannst also löten und der Kleine freut sich oder kannst beginnen, drei Tage lang zu optimieren. Also baue das so und fertig, meine Meinung. > Die Auto Ampel soll immer laufen wie > bekannt. Die Fußgänger Ampel immer Rot haben,nur beim betätigen des > Taster soll eine grünphase eingeleitet werden. Verkehrserziehung :-) ----- Trotzdem: Rot und Grün sind niemals gleichzeitig an, aber immer eine dieser. Vom selben Ausgang des Tiny die Rote nach GND und die Grüne nach Plus, hast Du beide an einem Pin und sogar eine Sicherheitsverriegelung!
Patrick J. schrieb: > Vll. eine kleine Anregung für 'Ver. 2' - der ATtiny hat 5 I/Os. > Rot und Grün leuchten NIE zusammen (man könnte also bei der > Fußgängerampel einen I/O sparen, z.B. für den Taster). Das mit I/O weiß ich. Weiter oben habe ich die Ampelphasen erklärt. Die Auto und Fußgängerampel laufen nicht beide durch. Es ist eine "echte" Fußgängerampel. Mein Kleiner hat mehr Autos als Fußgänger :). Hier mal die Codes.
1 | //Autoampel |
2 | |
3 | void setup() |
4 | { |
5 | pinMode( 3, INPUT); //Signal Input von Tiny 2 vom PIN 4 |
6 | pinMode( 0 , OUTPUT); //rote LED |
7 | pinMode( 4 , OUTPUT); //Signal OUTPUT zum Tiny 2 zum PIN 3 |
8 | pinMode( 1 , OUTPUT); //orange LED |
9 | pinMode( 2 , OUTPUT); //grüneLED |
10 | } |
11 | |
12 | void loop() |
13 | { |
14 | digitalWrite( 0 , HIGH ); //rote LED an |
15 | delay( 3500 ); |
16 | while ( digitalRead(3) == HIGH ) //Ist es HIGH stopt das Auto Ampelprogramm und die rote LED geht auf HIGH |
17 | { |
18 | digitalWrite( 4 , HIGH ); //Es wird auf HIGH geschaltet damit weiß Tiny 2 das die Auto Ampel rot ist |
19 | }digitalWrite( 4 , LOW ); // Es wird auf LOW geschaltet damit wird die LED von Tiny 2 auf rot geschaltet |
20 | digitalWrite( 0 , HIGH ); //rote LED an |
21 | delay( 2500 ); |
22 | digitalWrite( 1 , HIGH ); //orange LED an |
23 | delay( 1500 ); |
24 | digitalWrite( 0 , LOW ); //rote LED aus |
25 | digitalWrite( 1 , LOW ); //orange LED aus |
26 | delay( 10 ); |
27 | digitalWrite( 2 , HIGH ); //grüneLED an |
28 | delay( 4000 ); |
29 | blink(2, 4); //Blink Funktion wird aufgerufen |
30 | digitalWrite( 2 , LOW ); //grüneLED aus |
31 | digitalWrite( 1 , HIGH ); //orange LED an |
32 | delay( 2000 ); |
33 | digitalWrite( 1 , LOW ); //orange LED aus |
34 | } |
35 | |
36 | void blink(int pin, int times){ //Blink Funktion |
37 | for(int i = 0; i < times; i++){ |
38 | digitalWrite(pin, LOW); |
39 | delay(500); |
40 | digitalWrite(pin, HIGH); |
41 | delay(500); |
42 | } |
43 | } |
1 | //Fußgängerampel |
2 | void setup() |
3 | { |
4 | pinMode( 3, INPUT); //Signal Input von Tiny 1 |
5 | pinMode( 0, INPUT); // Taster Eingang |
6 | pinMode( 1 , OUTPUT); //rote LED |
7 | pinMode( 4 , OUTPUT); //Signal OUTPUT zum Tiny 1 |
8 | pinMode( 2 , OUTPUT); //grüne LED |
9 | } |
10 | |
11 | void loop() |
12 | { |
13 | digitalWrite( 1 , HIGH ); //rote LED an |
14 | if (digitalRead(0) == HIGH) //Ist Signal HIGH wurde der Taster gedrückt |
15 | { |
16 | digitalWrite( 4 , HIGH ); //Ist das Signal HIGH dann hält das Ampelprogramm von Tiny 1 an |
17 | } |
18 | if (digitalRead(3) == HIGH) //Ist das Signal HIGH vom Tiny 1 startet das Fußgängerprogramm |
19 | { |
20 | digitalWrite( 1 , LOW ); //rote LED aus |
21 | delay( 50 ); |
22 | digitalWrite( 2 , HIGH ); //grüne LED an |
23 | delay( 4000 ); |
24 | blink(2, 4); //Blink Funktion wird aufgerufen |
25 | digitalWrite( 2 , LOW ); //grüne LED aus |
26 | delay( 50 ); |
27 | digitalWrite( 1 , HIGH ); //rote LED an |
28 | digitalWrite( 4 , LOW ); //Signal wird auf LOW geschaltet, damit startet das Ampelprogramm wieder |
29 | delay( 50 ); |
30 | } |
31 | |
32 | } |
33 | void blink(int pin, int times){ //Blink Funktion |
34 | for(int i = 0; i < times; i++){ |
35 | digitalWrite(pin, LOW); |
36 | delay(500); |
37 | digitalWrite(pin, HIGH); |
38 | delay(500); |
39 | } |
40 | } |
:
Bearbeitet durch User
Hallo Steve, ich hatte so etwas Ähnliches vor Jahren mal für 'ne Holzeisenbahn mit nur 2 LEDs und einem Taster gebaut. Es lief mit 2 AA-Batterien ein Holzeisenbahnleben lang. Die Software schaltetet den Tiny nach ca. 10-15 Minuten (weil üblicherweise die Bahnstrecke umgebaut wurde, also am Ende der Aufmerksamkeitsspanne ;)) in den Tiefschlaf, der Taster weckte ihn dann über einen Interrupt wieder auf. Wurde der Taster dann länger gehalten konnte diese Zeit "programmiert" werden. Sonst schaltete ein Tastendruck zw. Rot und Grün um und wenn nix am Taster passierte wurde automatisch alle paar Sekunden umgeschaltet. > 1. die Ampel soll mit 2 oder 3 1,5V Zellen (AAA) betrieben werden. Was wäre besser 2 oder 3 und warum? Ich hatte mich auf Grund der Größe für zwei AA entschieden. Es ist ein Spielzeug und die zwei AAs passten wunderbar in das "Holzblock-Gehäuse". > 2. Muss der Reset Pins der Tiny's mit an die Spannungsversorgung angeschlossen werden. Wenn ja warum? Wenn die Fuses den als I/O Pin definieren, dann nicht. Bisher habe ich keine negativen Erfahrungen damit gemacht. > 3. Ist bei dieser Schaltung ein Stützkondensator nötig? Ich hatte einen, nimmt doch keinen Platz weg. Läuft vermutliche auch stabiler, wenn die Batterien schwächer werden. Ein 0805 findet doch überall Platz. Die Anmerkungen zur Reduzierung der Anzahl der Controller hattest Du ja bestimmt schon gelesen. Da kann ich nur voll zustimmen. Das spart dann auch die Synchronisation der beiden µCs. Es sei denn, Du willst das Timing, also alle Ampelphasen exakt nachstellen. Dann würde ich einen Controller mit mehr I/O-Pins einsetzen. Diese Entscheidung würde ich dann von der Auffassungsgabe der Zwerges abhängig machen. timpi. PS: Die Software war allerdings "altmodisch" in Assembler.
Mit der Lösung 2 Led's an einen Pin könnte ich wirklich 1 Chip nutzen. Das werde ich dann wohl machen. Allein der Platzersparnis halber. Bezüglich des Tiefschlafes, es soll noch ein Schalter für die Spannungsversorgung verbaut werden den habe ich bei meinem Plan vergessen. Danke für die hilfreichen Tipps. Werde das nochmals überarbeiten.
Ich wundere mich, dass du zwei ATTiny85 verweendet hast. Ich hätte das mit einem gemacht. (Steht hier drin: http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%203.pdf) 2 Batterien sind zu knapp, wenn die nur halb leer sind, leuchten die grünen LED's nicht mehr. Nimm besser drei.
Das mit den 2 Tiny's wurde nun schon oft genug erwähnt. Werde es auch auf 1 ändern. Die Tiefschlafphase würde mich jetzt noch interessieren. Was ich aber mangels Programmierkenntnisse so ohne weiteres nicht hinbekommen werde. Hätte jemand ein Code Beispiel für mich?
@Michael Bertrandt (laberkopp) >Vielleicht wäre eine Schaltung besser verständlich ohne uC, dann lernt >er mit 8 Jahren wie sie funktioniert. Klar, mit ACHT Jahren!!! Mann O Mann, der Laberkopp wie er leibt und lebt!
@Steve Landisch (stevelande) >Mein 1. Projekt war der Umbau einer Lego Lokomotive. Funktioniert >tadellos auch ohne Kondensator. Kinder und Betrunkene haben einen Schutzengel. Was für einer bist du? >> Keine Ahnung. Ich kenne die komischen gelben nur vom BVB. >Das sind doch, so denke Ich immer die selben Standard Dinger 10nF oder >100nF. Den braucht man IMMER! https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator >Bleibt immer noch die Frage nach den Pull-Up am Reset Pin. Braucht man nicht zwingend. Aber warum braucht man ZWEI uCs für eine Ampel mit VIER LEDs? Das macht EIN tiny spielend! UNs selbst wenn die Pins nicht ausreichen, gibt es anderes AVRs mit mehr Pins.
Ich finde das mit den zwei Attinys auch etwas "overpowered" - aber der Sinn dahinter ist gut. Da sieht man wie ein ganz einfaches "Busystem", auch wenn es keine Daten überträgt, funktionierte. Wie eine "Ausfallsicherung" ablaufen kann wenn einer der beiden µC seine Arbeit versagt (Kein Signal des anderen µC - sofort alles auf Rot stellen). Ich finde das für den Lerneffekt schon gut das das mit zwei µC geregelt ist - ist ja im Original auch so das jede Ampel seinen eigenen Controller hat, und dies sogar zweimal.
Könnte man die Schaltung nicht auch mit fünf Tinys realisieren? scnr Edit: besser sechs. Der Taster braucht auch einen eigenen tiny.
:
Bearbeitet durch User
Martin K. schrieb: > Könnte man die Schaltung nicht auch mit fünf Tinys realisieren? > scnr > > Edit: besser sechs. Der Taster braucht auch einen eigenen tiny. Im Regelfall, für eine echte Ampelsteuerung, wären es sogar sechs! Master, Slave Fußgängerampel, Slave Fahrzeugampel - und das alles Redunant. Sonst würdest du keine Zulassung für ein Ampel bekommen. Ich finde es immer schlimm das alles schlimm geredet werden muss!
.. zu Stützkondensator und Pull-Up Widerstand für den Reset wurde oben schon etwas gesagt. Wenn du vllt. doch nur einen TINY für die Ampel verwenden wolltest, dann wäre Charlieplexing für dich vllt. interessant. http://www.pcbheaven.com/wikipages/Charlieplexing/ Für die Ansteuerung von 6 LED's würden 3 I/O Pins genügen, ein I/0 für den Taster, ein Anschluß für den Reset (damit SPI weiterhin möglich ist) und 2 für die Betriebsspannung. Macht insgesamt 7 Anschlüsse, du hättest sogar noch einen Anschluss für Eventualitäten frei.
> Die Tiefschlafphase würde mich jetzt noch interessieren.
Steht auch in meinem oben verlinkten Buch, Kapitel 3.6.
DraconiX schrieb: > Ich finde es immer schlimm das alles schlimm geredet werden muss! Ich habe ganz normale Fragen gestellt und von einigen bekommt man sehr hilfreiche Tipps. Habe ja auch geschrieben das ich Anfänger bin. Das Thema 2 Tiny's wird schon langsam die Mehrzahl hier. Lesen einige einfach nicht alles durch? Werde es,wie schon geschrieben auf 1 reduzieren! Martin K. schrieb: > Könnte man die Schaltung nicht auch mit fünf Tinys realisieren? scnr > > Edit: besser sechs. Der Taster braucht auch einen eigenen tiny. Sehr nützlicher Beitrag!
Ralph S. schrieb: > Für die Ansteuerung von 6 LED's würden 3 I/O Pins genügen, ein I/0 für > den Taster, ein Anschluß für den Reset (damit SPI weiterhin möglich ist) > und 2 für die Betriebsspannung. Aber so wie ich sehe/verstehe kann ich damit nicht 3 Stück gleichzeitig leuchten lassen. Was bei der Ampel aber nötig ist.
Steve L. schrieb: > Martin K. schrieb: >> Könnte man die Schaltung nicht auch mit fünf Tinys realisieren? scnr >> >> Edit: besser sechs. Der Taster braucht auch einen eigenen tiny. > > Sehr nützlicher Beitrag! Das war auch eher eine genervte Anspielung auf dieses ewige "ein Tiny reicht", obwohl es schon zig mal erwähnt wurde, nur noch nicht von jedem.
CMD.exe schrieb: > Trotzdem: Rot und Grün sind niemals gleichzeitig an, aber immer eine > dieser. Vom selben Ausgang des Tiny die Rote nach GND und die Grüne > nach Plus, hast Du beide an einem Pin und sogar eine > Sicherheitsverriegelung! Und wie kriegst Du dann beide aus? Auf Eingang schalten gilt nicht. Dann sind beide LEDs in Reihe und wenn nicht gerade die Batterie zu leer ist, glimmen beide.
Quodnix schrieb: > Und wie kriegst Du dann beide aus? Auf Eingang schalten gilt nicht. Dann > sind beide LEDs in Reihe und wenn nicht gerade die Batterie zu leer ist, > glimmen beide. Kann der Tiny die Leitung nicht komplett "kappen", im Tiefschlaf oder so? Wenn das natürlich nicht geht dann doch 2 Tiny's oder einen Schalter für die Spannungsversorgung den ich eh geplant habe,aber im Schaltplan vergessen habe.
> dann doch 2 Tiny's Bloss nicht. Hast Du Dir nicht die Ampel in meinem Buch angesehen? Ich habe da eine Variante mit 5 I/O Pins und eine mit nur 3 I/O Pins gezeigt. Außerdem zeige ich in dem Buch, wie man PB5 (=Reset) als I/O Pin nutzen kann ohne auf die Reset-Funktion zu verzichten. Charlieplexing brauchst du gar nicht, es geht viel einfacher. Ganz ohne irgendwelches XYZ-Plexing! > Kann der Tiny die Leitung nicht komplett "kappen" Ja kann er, indem man sie als Eingang ohne Pull-Up konfiguriert: PORTB=0; DDRB=0;
Stefan U. schrieb: > Hast Du Dir nicht die Ampel in meinem Buch angesehen? Hatte es auf der Arbeit überflogen. Drucke es gleich mal aus.
So, im Anhang eine Ampel, allerdings ohne Fußgaengerfunktion, dafür eine "Kreutzungsampel" mit insgesamt 6 Leuchdioden und Charlieplexing (hey, das ist wirklich extrem viel einfacher als man zunächst glaubt) an einem ATtiny13. Es werden 3 Portpins benötigt, d.h. es wären 2 weitere Pins für bspw. Taster frei. Progrämmchen belegt 310 Bytes im Flash.
Beitrag #4991447 wurde vom Autor gelöscht.
Steve L. schrieb: > Kann der Tiny die Leitung nicht komplett "kappen", im Tiefschlaf oder > so? > Wenn das natürlich nicht geht dann doch 2 Tiny's oder einen Schalter für > die Spannungsversorgung den ich eh geplant habe,aber im Schaltplan > vergessen habe. Nein, komplett kappen geht bei der einfachen Lösung (eine LED von Plus, die andere nach Masse) nicht. Auch ein gemeinsames Gelb ist unflexibel. Also - Charlieplexing - oder nur 2 AA, da glimmt dann keine LED bei 2 in Reihe. - oder ohne Reset (dann hast Du ja 6 IO - oder den Taster nach VCC an der grünen LED für Fußgänger. Solange grün an ist, reagieren bei uns die Taster auch nicht. Dabei nicht vergessen, einen weiteren Pull-Down (z.B. 1 Meg) am IO-Pin. Wenn der Taster dann an einen Interrupt-Pin hängt, der auch aus dem Tiefschlaf weckt, dann kannst Du Stefan Ls geniale Konstruktion nachstellen.
Vielen Dank für die hilfreichen Tipps. Werde jetzt erstmal alles durcharbeiten und ein paar Tage Pause machen (müssen). Meine Frau will auch noch was von mir haben:). Melde mich wieder mit neuem Schaltplan. Achim S. schrieb: > oder den Taster nach VCC an der grünen LED für Fußgänger. Solange grün > an ist, reagieren bei uns die Taster auch nicht. Dabei nicht vergessen, > einen weiteren Pull-Down (z.B. 1 Meg) am IO-Pin. Kann ich einen Pin als in-und Output angeben?
> Kann ich einen Pin als in-und Output angeben? Bei AVR kannst du grundsätzlich jeden Pin immer als Eingang verwenden, ganz egal wie er konfiguriert ist. Einfach das PIN Register lesen.
Stefan U. schrieb: > Bei AVR kannst du grundsätzlich jeden Pin immer als Eingang verwenden, > ganz egal wie er konfiguriert ist. Einfach das PIN Register lesen. ... und was kommt heraus, wenn du auf diesen Pin (da er vllt. ein Ausgang war) eine 0 geschrieben hast, dort eine Information (sagen wir eine 1) anlegst und diese lesen willst ? Antwortet der AVR dann nicht mit einer 0 ???? Smile (dieses Smile bitte nicht übersehen)
> Antwortet der AVR dann nicht mit einer 0 ???? > dieses Smile bitte nicht übersehen Die Frage ist gar nicht so dumm, ich hatte es mal vor langer Zeit ausprobiert. Wenn man einen Ausgang auf Low programmiert, aber extern ein High anlegt, fließt ein hoher Strom. Beim Lesen des Pins erhälst du in diesem Fall ein High.
Hi Wie so oft: Man sollte halbwegs wissen, was man tut bzw. sich der Folgen bewusst sein. Deshalb kann man ja auch zwischen IN und OUT wechseln (oder IN mit und ohne aktiviertem PullUp). MfG
Patrick J. schrieb: > Wie so oft: Man sollte halbwegs wissen, was man tut bzw. sich der Folgen > bewusst sein. ... deswegen war ja auch das smile hintendran: Niemals (wirklich niemals) einen als Ausgang beschalteten Anschluß mit Signalen beaufschlagen. Stefan U. schrieb: > Wenn man einen Ausgang auf Low programmiert, aber extern ein High > anlegt, fließt ein hoher Strom. Beim Lesen des Pins erhälst du in diesem > Fall ein High. Nicht so wirklich richtig, das hängt schlichtweg davon ab, wer den geringeren Innenwiderstand besitzt und es besteht die nicht unerhebliche Gefahr, den Baustein zu killen (sozusagen bei lebendigem Leibe verbrannt)
Steve L. schrieb: > Melde mich wieder mit neuem Schaltplan. Ich würde kein Charlieplexing machen und stattdessen 50ct mehr ausgeben und einen ATTiny84 oder soetwas verwenden, der genügend Ausgangspins hat. Würde vieles vereinfachen^^ Die Synchronisation der Tinys könnte man sich dann gänzlich sparen ...
Komme ja mit 1 hin wenn ich nur 2 LED'S an 1 Pin hänge das reicht aus. Werde also die Fußgänger Ampel über 1 Pin regeln.
Stefan U. schrieb: > Wenn man einen Ausgang auf Low programmiert, > aber extern ein High anlegt, fließt ein hoher Strom. > Beim Lesen des Pins erhälst du in diesem Fall ein High. Da erinnere ich mich an 65xx-Peripheriebausteine: Der 6532 schaltet in diesem Fall seinen Ausgang selbst um und vermeidet damit den Überstrom. Hat er aber auch gemacht, wenn kapazitive Last drauf war - und mir damit mal eine längere Suche beschert. Mampf F. schrieb: > Ich würde kein Charlieplexing machen und stattdessen 50ct mehr ausgeben > und einen ATTiny84 oder soetwas verwenden, der genügend Ausgangspins > hat. Die China-Einkäufer unter uns hätten dann einen AT328 als Arduino_compatble ProMini im Einsatz.
Steve L. schrieb: > Pro Mini habe ich auch noch aus Fernost Wenn Du ihn mit 8MHz hast, LED und Spannungsregler runter, dann geht der im Sleep um 5..8µA.
Patrick J. schrieb: > Dann hast Du 4 LED-Pins und einen Taster-Pin - genau die Anzahl, Die der > ATtiny85 anbietet (wobei Du auch RESET als I/O nutzen könntest, sofern > Du den µC nie wieder programmieren willst (Ausnahme per HV-Programmer)) Du kannst auch einfach den RESET-Pin RESET-Pin sein lassen und ihn trotzdem als Taster-Eingang verwenden. Man kann das Programm ja so bauen, dass es mit der Umschaltphase nach Fußgänger-Grün beginnt und in einem Dauerrot für die Fußgänger endet. Wenn man es ganz sicher bauen will, muss man dann natürlich zustandsorientiert arbeiten und wiederholtes Drücken des Tasters während des Phasenwechsels ignorieren (oder man verwendet dafür einen externe Beschaltung).
Markus W. schrieb: > Du kannst auch einfach den RESET-Pin RESET-Pin sein lassen und ihn > trotzdem als Taster-Eingang verwenden. Man kann das Programm ja so > bauen, dass es mit der Umschaltphase nach Fußgänger-Grün beginnt und in > einem Dauerrot für die Fußgänger endet. Kann man machen. Man kann den Resetpin auch mit einem Spannungsteiler beschalten und per Tastendruck die Spannung etwas absenken, sodaß noch kein Reset ausgelöst wird. Diese Absenkung kann man mit dem AD-Wandler abfragen. Wenn man es geschickt anstellt, kann man sogar mehrere Taster auf diese Weise abfragen.
Thomas E. schrieb: > Man kann den Resetpin auch mit einem Spannungsteiler beschalten Stimmt! Ist dann programmtechnisch einfacher, als eine Zustandsmaschine zu bauen.
Thomas E. schrieb: > Man kann den Resetpin auch mit einem Spannungsteiler beschalten und per > Tastendruck die Spannung etwas absenken, sodaß noch kein Reset ausgelöst > wird. Das sind ja Hacks ;-) Gutes Design ist was anderes^^ xD
Mampf F. schrieb: > Das sind ja Hacks ;-) Gutes Design ist was anderes^^ xD Schlechtes Design ist das, was nicht funktioniert und nicht das, was du einen Hack nennst. Bei einer neuen Raumschiffsteuerung würde ich es auch nicht so machen. Aber für eine Spielzeugampel und einem Haufen Tiny13 in der Schublade, sieht die Sache doch etwas anders aus.
Thomas E. schrieb: > Schlechtes Design ist das, was nicht funktioniert und nicht das, was du > einen Hack nennst. Naja, ich bevorzuge Lösungen, die sicher zu 100% funktionieren ... Wenn man mehrere 95 oder 99%ige Lösungen kombiniert steigt die Wahrscheinlichkeit, dass irgendwas nicht immer funktioniert ... Bei Temperaturänderungen oder wenn die Batterie leer wird oder Bauteilstreuungen und und und^^ Gutes Design schließt alle solche Möglichkeiten im Vorfeld aus. Und weshalb sollte man sich gutes Design nicht angewöhnen und es immer gut machen?
:
Bearbeitet durch User
Was hat jetzt die analoge Nutzung des Reset Eingang mit <100% zu tun? Laut Datenblatt kann der ADC Spannungen im ganzen Bereich zwischen GND und VCC messen. Laut Datenblatt löst der Reset Eingang 100% sicher nicht aus, wenn die Spannung im Bereich 4,5 - 5V liegt (bei 5V Versorgungsspannung). Das sind 0,5V die wir nutzen können, wobei 100% sicher kein Reset ausgelöst wird, die wir mit dem ADC aber 100% sicher erfassen können. Wenn du willst, schließe ich Dir an diesen Pin 4 Taster an, zwischen denen ich auch noch unterscheiden kann! Das hat gar nichts mit schmutzigem Design zu tun, das ist top sauber. Lass mich raten: Du lehnst auch die Nutzung von USB Speichersticks, Micro-SD Karten, Smartphones und Computern mit SSD ab, weil deren Speicherzellen kein gutes Design in deinem Sinne haben? Diese Speicher sind tatsächlich auf Kante genäht und doch kommt die ganze Welt damit prima zurecht.
Stefan U. schrieb: > Das hat gar nichts mit schmutzigem Design zu tun, das ist top sauber. Was ich mich aber frage ... Soweit ich weiß - und falls es anders ist, würde ich mich über Richtigstellung freuen! - kann man den Reset nur als GPIO verwenden, wenn man ihn deaktiviert ... Dann kann man aber nicht mehr ISP nutzen. Ist das nicht so? Bei den Tinys könnte ich öfters einen zusätzlichen Pin brauchen ...^^
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.