Forum: Mikrocontroller und Digitale Elektronik Spielzeug Ampel


von Steve L. (stevelande)


Angehängte Dateien:

Lesenswert?

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

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Warum so viele Tinys ?

Es gibt ja die Möglichkeit die LED's auch umgekehrt gepolt 
anzuschliessen.

von Michael B. (laberkopp)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

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!

von Steve L. (stevelande)


Angehängte Dateien:

Lesenswert?

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
von Martin K. (maart)


Lesenswert?

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.

von Martin K. (maart)


Lesenswert?

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.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von Steve L. (stevelande)


Angehängte Dateien:

Lesenswert?

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
von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von A. S. (Gast)


Lesenswert?

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.)

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von Steve L. (stevelande)


Lesenswert?

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?

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von CMD.exe (Gast)


Lesenswert?

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!

von CMD.exe (Gast)


Lesenswert?

Patrick J. schrieb:
> Rot und Grün leuchten NIE zusammen
Mist, Du warst schneller !

von Steve L. (stevelande)


Lesenswert?

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
von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Steve L. schrieb:
> Mein Kleiner hat mehr Autos als Fußgänger :).

YMMD ... goldig

MfG

von Stefan L. (timpi)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

@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!

von Falk B. (falk)


Lesenswert?

@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.

von DraconiX (Gast)


Lesenswert?

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.

von Martin K. (maart)


Lesenswert?

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
von DraconiX (Gast)


Lesenswert?

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!

von Ralph S. (jjflash)


Lesenswert?

.. 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.

von Stefan F. (Gast)


Lesenswert?

> Die Tiefschlafphase würde mich jetzt noch interessieren.

Steht auch in meinem oben verlinkten Buch, Kapitel 3.6.

von Steve L. (stevelande)


Lesenswert?

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!

von Steve L. (stevelande)


Lesenswert?

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.

von Martin K. (maart)


Lesenswert?

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.

von Quodnix (Gast)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

> 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;

von Steve L. (stevelande)


Lesenswert?

Stefan U. schrieb:
> Hast Du Dir nicht die Ampel in meinem Buch angesehen?

Hatte es auf der Arbeit überflogen.
Drucke es gleich mal aus.

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

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.
von A. S. (Gast)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

> 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.

von Ralph S. (jjflash)


Lesenswert?

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)

von Stefan F. (Gast)


Lesenswert?

> 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.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von Ralph S. (jjflash)


Lesenswert?

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)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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 ...

von Steve L. (stevelande)


Lesenswert?

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.

von Manfred (Gast)


Lesenswert?

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.

von Steve L. (stevelande)


Lesenswert?

Pro Mini habe ich auch noch aus Fernost

von Manfred (Gast)


Lesenswert?

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.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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).

von Thomas E. (thomase)


Lesenswert?

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.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Thomas E. schrieb:
> Man kann den Resetpin auch mit einem Spannungsteiler beschalten

Stimmt! Ist dann programmtechnisch einfacher, als eine Zustandsmaschine 
zu bauen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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

von Thomas E. (thomase)


Lesenswert?

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.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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
von Stefan F. (Gast)


Lesenswert?

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.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.