Forum: Mikrocontroller und Digitale Elektronik Einen Portpin frei bekommen (Attiny2313)


von Paul B. (paul_baumann)


Lesenswert?

Ich moechte eine Zeitschaltuhr mit einem Attiny2313 und 4-stelliger 
LED-Anzeige, Relaisausgang und "Pieper" als Fertig-Melder bauen. Nun 
habe ich das Problem, dass mir eine Leitung fehlt:

3 Taster (Stellenanwahl, Hochzaehlen der angewaehlten Stelle, Start)
an PD4,5,6
11 Leitungen fuer die LED-Anzeigen (PB0-PB6 SEgmente und PD0-PD3 
Ansteuertransistoren)
1 Pieper (PB7)
Quarz (PA0, PA1)

Ich brauche nun noch eine Leitung fuer meinen Relaisansteuer-Transistor.

Frage: Hat jemand eine Idee, wie ich eine der bis jetzt belegten 
Leitungen
doppelt nutzen kann. Wenn das Ding einen AD_Wandler haette, koennte man
die Tasten ueber Spannungsteiler daran haengen, aber so?

Kopf kratz
Paul

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Wenn du die Präzision des externen Quarzes nicht brauchst kannst du auf 
den internen umschalten...

von Jens S. (djstorm)


Lesenswert?


von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Ach so, abgesehen davon:

Wenn das Teil bisher noch nicht existiert (es sich also nicht um einen 
nachträglichen Verbesserungswunsch handelt) warum benutzt du dann nicht 
zum Ansteuern des Displays einen MAX7219 o.ä.?

Damit kannst du mit nur 3 Leitungen 8 Sieben-Segment-Anzeigen ansteuern 
(und dimmen etc.)

Schöne Grüße,
Alex

von Paul B. (paul_baumann)


Lesenswert?

Nein, ich will schon eine recht genau gehende Uhr haben, da muss ich
mit Quarz dran, aber Du bringst mich auf eine Idee: Ich muss mal suchen,
ob und wo ich noch Quarzoszillatoren habe. Da brauche ich ja nur einen
Portpin fuer den Kollegen.

MfG Paul

von Timo S. (kaffeetas)


Lesenswert?

Den Resetpin abschalten.
Aber danach funktioniert die Programmierung über ISP nicht mehr.
Evtl. kann ein Bootloader verwendet werden. Nur Empfehlenswert wenn die 
Möglichkeit zur HV-Programmierung besteht (STK500/Dragon).

Grüße
 Timo

von Paul B. (paul_baumann)


Lesenswert?

Ach naja, - fuer eine Porterweiterung muss ich noch mindestens einen
Extraschaltkreis verwenden. Da nehme ich, wenn es gar nicht anders geht
einen Atmega8. Da habe ich genuegend Strippen frei.

MfG Paul

von TestX .. (xaos)


Lesenswert?

Paul Baumann schrieb:
> Ach naja, - fuer eine Porterweiterung muss ich noch mindestens einen
> Extraschaltkreis verwenden. Da nehme ich, wenn es gar nicht anders geht
> einen Atmega8. Da habe ich genuegend Strippen frei.
>
> MfG Paul

wie wärs die taster mit spannungsteilern r2r an einen adc zu hängen ? 
dann haste 2 pins frei ... wenn der controller nen internen adc hat...

von Timo S. (kaffeetas)


Lesenswert?

da fällt mir ein, du könnetest auch einen Taster einsparen wenn du 
langes/kurzes drücken unterscheidest z.B
Taster 1 Lang drücken: weiterschalten
Taster 1 kurz drücken: stelle hochzählen.
Taster 2 Start

Grüße
 Timo

von Thomas (Gast)


Lesenswert?

Stellentreiber PDD0..PD3 über einen Demultiplexer schicken.
Dann hast du sogar 2 Pins übrig. Einen brauchst du vieleicht
um den DeMuxer zu deaktivieren
Geeignete Bauteie:
74HC138 (3:8 Demultiplexer)
1/2 74HC139 (2* 2:4 Demultiplexer)

eine andere Alternative wäre die Stellen mit ein paar Invertern
(Transistoren) doppelt zu multiplexen.
So in der Art:
PD0 = 0 1. Stelle
PD1 = 0 3. Stelle
PD0 = 1 2. Stelle
PD1 = 1 4. Stelle

Thomas

von Timo S. (kaffeetas)


Lesenswert?

Und noch was, die Multiplextransistoren würd ich an PD3-PD6 hängen. Dann 
hast du auf PD2 einen externen Int an den du einen Taster hängen kannst. 
Das ist  von Vorteil wenn du die Zeitschaltuhr in den Power-Down Mode 
versetzten möchtest um Sie danach wieder per Taster aufzuwecken. (Die 
Enprellung aber bitte nicht über den INT machen)

Frohes (Bastel) Fest noch
  Timo

von Stephan Hoffmann (Gast)


Angehängte Dateien:

Lesenswert?

Du brauchst zwei Dioden ;-)

Jenachdem ob du Plus oder GND schaltest musst du
die Dioden noch umdrehen.

Wenn deine Software sieht das beide Tasten gedrückt sind
ist es die dritte.

Gruss,
Stephan

von Paul B. (paul_baumann)


Lesenswert?

@Andi
Im Tiny2313 ist leider kein AD-Wandler drin.

@Timo
Jedes lange Druecken wuerde dann aber zunaechst einmal auch als 
Kurzdruecken erkannt werden, denke ich mir.

@Thomas
Ich habe hier auch noch 7-Segment Dekoder da, aber -es waere wieder
ein Schaltkreis mehr...

Trotzdem: Danke an Euch fuer die Hinweise und Ratschlaege

MfG Paul

von Paul B. (paul_baumann)


Lesenswert?

@Stephan
Prima! Du bist so, wie ich sein sollte. So werde ich es machen.

Freudig
Paul

von Chris L. (kingkernel)


Lesenswert?

Stephans Idee ist schinmal nicht schlecht, du könntest aber auch den 
Starttaster weglassen und den Hochzaehltaster als Starttaster benutzen. 
Start, wenn er nicht im Einstellmenue ist, hochzaehlen, wenn er im 
Einstellmenue ist. So ist der Taster zu keiner Zeit ohne Funktion.

von Paul B. (paul_baumann)


Lesenswert?

@Christian
Ja schon, nur dann muesste ich immer alle 4 Stellen bedienen, bevor dann
im 5. Tastendruck der Taster als Starttaster fungiert. Ich programmiere
in Bascom und muss mich auch auf Grunde des kleinen RAM vorsehen, dass
mein Programm nicht zu dick wird.

MfG Paul

von Paul B. (paul_baumann)


Lesenswert?

Edith: des kleinen Flash vorsehen...
Paul

von Hannes L. (hannes)


Lesenswert?

Warum hängst Du die Taster nich mit auf die Segment-Pins der Anzeige? 
Auf Deiner Festplatte befindet sich bestimmt noch ein Beispiel von mir 
mit AT90S1200, Lichtschachtanzeige und 12er Tastenmatrix, Du kannst aber 
auch bei Atmel suchen, da gibt es wohl eine AppNote für.

Frohen Rest vom Weihn8sfest,
...

von Paul B. (paul_baumann)


Lesenswert?

@Hannes
Stimmt, -da habe ich gar nicht mehr dran gedacht. Manchmal sieht man
den Wald vor lauter Weihnachtsbäumen nicht mehr. :-)

Naja, noch ist keine Platine gemacht und das Programm läuft bis jetzt
auch nur auf einem Stück DIN A4.

Gruß Paul

von Rolf (Gast)


Lesenswert?

Hallo Paul,
wie wäre es denn mit einem Drehgeber(Encoder),da hast du nur drei Pins 
belegt und kannst alles mit machen?
gruß Rolf

von Rolf (Gast)


Lesenswert?

Ach, sorry haste nichts durch gewonnen...
Aber vieleicht statt LED ne LCD Anzeige (gibts schon für 2 Teuro/ohne 
Beleuchtung beim P), dann brauchst du nur 6 Pins statt der 11 für LED 
und der ganze Treiber-IC-Quatsch ist auch erschlagen.
Gruß Rolf

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

Danke Rolf für Deine Anregungen, aber:
Paul war nicht faul und hat in der Zwischenzeit seinen Apparat fertig-
gestellt. ;-)

MfG Paul

von yalu (Gast)


Lesenswert?

Paul Baumann schrieb:
> Paul war nicht faul und hat in der Zwischenzeit seinen Apparat fertig-
> gestellt. ;-)

Coole Farbe :D

Wo hast du denn das Gehäuse her?

von Paul Baumann (Gast)


Lesenswert?

>Wo hast du denn das Gehäuse her?

Das Gehäuse besteht aus Polystyrolfliesen aus DDR-Produktion.
Leider gibt es sie nicht mehr...die Fliesen meine ich ;-)

Diese Dinger haben die Abmessung 15 x 15 cm x 2 mm und lassen sich
prima mit der Laubsäge bearbeiten. Geklebt wird mit Nitroverdünnung.
Das Material wird dadurch angelöst und polymerisiert erneut. Damit
kann man sehr stabile Gehäuse bauen.

MfG Paul

von Marko B. (glagnar)


Lesenswert?

Ich haette die Segmente an einen HC164 gehaengt, das haette 6 Pins 
gespart ...

von Falk B. (falk)


Lesenswert?

@  Paul Baumann (Gast)

>Das Gehäuse besteht aus Polystyrolfliesen aus DDR-Produktion.
>Leider gibt es sie nicht mehr...die Fliesen meine ich ;-)

Ist ja sexy. Und wenn du zwischen das M und das S noch ein kleines f 
malst, ist es wirklich ein echtes Ossigerät ;-)

MfG
Falk

von Paul Baumann (Gast)


Lesenswert?

>Ich haette die Segmente an einen HC164 gehaengt
Ich bin nur mit dem Attiny2313 ausgekommen, ohne weitere Schaltkreise
verwenden zu müssen.

MfG Paul

von Paul Baumann (Gast)


Lesenswert?

Falk Brunner schrieb:
>Und wenn du zwischen das M und das S noch ein kleines f
>malst, ist es wirklich ein echtes Ossigerät ;-)

Das mache ich dann, wenn ich einmal eine Wanze bauen sollte.
Die erkennt man dann daran, daß plötzlich ein Schrank mehr im Zimmer 
steht.

dämlich grins
Paul

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.