PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ampel mit Attiny13



Zwerwelfliescher
26.06.2009, 13:47
Hi,

ist es möglich eine Ampelschalung mit einem Attiny13 zu bauen?
Phasen:
Rot 6sec
Rot,Gelb 1sec
Grün 6sec

Mit einem Knopfdruck sollte dann Gelb blinken.Welche Bauteile werden benötigt, wenn ich die Ampel mit einer 9V Blockbatterie betreiben möchte?

MeckPommER
26.06.2009, 13:59
Das geht,

aber ob dich die Leute von der Straßenwacht so einfach an eine Ampel heranlassen, bezweifle ich ;-)

Falls du es mit LEDs realisieren möchtest für Modellbauzwecke, brauchst du:

- Lochrasterplatine mind. ca. 3 x 5 cm oder breadboard
- Programmiermöglichkeit (ISP-Adapter & z.B. Bascom)
- LEDs
- Vorwiderstände für die LEDs je nach LEDs
- Batterieclip 9V
- Kabel
- Taster
- Spannungsregler, z.B. 7805
- Elko 10µF
- Lötkolben 20-40W
- IC-Sockel für den attiny
- Lötzinn
- Kondensator 100nF
- Widerstand ca. 15kOhm
- Stiftleiste/Wannenstecker/? als Anschluss für deinen Programmieradapter

habsch nu noch was vergessen? *kopfkratz*

Gruß MeckPommER

Zwerwelfliescher
26.06.2009, 14:41
Natürlich möchte ich es mit Leds bauen :cheesy:
Also ich werden den Atiny13 extern programmieren, also kein Programmierkabel auf der Platiene.
Kenn jemand einen Schaltplan?

PS: Ich kann doch einern anderen Spannungsregler verwenden, er muss hat 5V Ausganspannung haben, oder?Ich werde mit Assembler programmieren.

Lemonsquash
26.06.2009, 14:59
Ja, kannst auch nen anderen verwenden, dann stimmt aber möglicherweise die Teileliste von MeckPommER nicht mehr ganz.

Wenn du es auf einer festen Platine aufbauen willst kannst du alles
in SMD machen, dann wirds hübsch klein und kann zum beispiel auch
einfach in einen Schrumpfschlauch eingetütet werden.

Gruß,
Lemon

Zwerwelfliescher
26.06.2009, 15:05
Ich mache alles in normalgöße.
Für was die Kondensatoren? Regelt das nicht de Controller?

MeckPommER
26.06.2009, 15:45
Die Kondensatoren sind nur für die Stromversorgung. Die meisten Regler haben gerne zumindest am Ausgang nen kleinen Elko 10-100µF und an den Controller gehört von VCC nach GND ein 100nF Kondensator.

Wenn du es in Normalgröße machst, folgende Empfehlung:
Mache es als gute Übung ohne Schaltplan zunächst auf nem Steckbrett. Einfach ein Blick ins Datenblatt werfen.
Taster nach Masse, LEDs über die Widerstände auch nach GND oder Masse, je nach persönlichem Geschmack.

Klar kannst du einen anderen Regler nehmen, solange er irgendwo zwischen 3,3 und 5V liefert und von der Leistung her den paar mA angemessen ist.

Wenn es nicht ultrahelle LEDs sein sollen, empfehle ich low-current Typen, die schon bei 1-2mA gut zu sehen sind. Das schont den Attiny und erlaubt dir, auch sehr kleine Regler zu nehmen, z.B. den 78L05 o.ä.

Später kann man sowas aber wirklich in SMD aufbauen. Man bekommt so eine Schaltung wirklich auf das Volumen einen Würfelzuckerstückes, wenn man vorher ausprobiert hat, ob die Schaltung auch ohne Elko läuft :-)

Eine andere Art, diese wirklich einfache Schaltung zu bauen wäre: fliegend. Teile hinlegen, platzsparend zurechtbiegen und aneinander festlöten und dann mit Heißkleber für die Ewigkeit wappnen.

Gruß MeckPommER

Zwerwelfliescher
26.06.2009, 15:55
Man kann sich doch während des Programmieren aussuchen, an welchem Pin welche LED angeschlossen wird, oder nicht?

Neutro
26.06.2009, 17:30
Klar geht das, du darfst nur nicht die Pins für VCC, AVCC, GND, AGND und Reset verwenden. Alle übrigen Pins sind frei konfigurierbar als Input oder Output. Die meisten haben noch eine Zusatzfunktion wie ADC oder I2C. Darauf brauchst du bei deinem Vorhaben aber nicht zu achten.

Zwerwelfliescher
26.06.2009, 17:32
Also die LED´s werden an Output und Masse angeschlossen.
Und der Taster? Input und Masse oder was ganz anderes?
Nochmal zu den Spannungsreglern.
Ich habe hier zwei gefunden bei Conrad:
Best.Nr-175030 Festspannungsregler 0,1A Positiv
Best.Nr-174220 Festspannungsregler 1A Positiv

Lemonsquash
26.06.2009, 20:47
Beim tiny - wenn mich nicht alles täuscht - kann man sogar den resetpin noch als Input oder Output nutzen. Soweit ich weiß brauchts dafür aber ein stk500 oder kompatibles programmiergerät zwecks fuses oder lockbits setzen. Das aber nur am Rande, denn für deine Anwendung wirst du das nicht brauchen ;)

Zum Taster: Korrekt. vom Input pin nach masse bzw. gnd

Zwerwelfliescher
26.06.2009, 21:12
Falls jemand einen Schaltplan oder fertigen Assembler Code hat ware es nicht schlecht.
Ich bekomme am Montag das Lernpaket Mikrocontroler von Frazis und dort habe ich gelesen, dass man eine Ampelsteuerung draus bauen kann.

Hat schon jemand erfahrung mit diesem Paket gemacht?

AlKI
26.06.2009, 21:20
Flexx, bei der Schaltung wird ein Spannungsregler mit 100mA maximalstrom ausreichen.

Taster und LEDs(mit Vorwiderstand) kannst du vom Pin sowohl nach Masse als auch nach +5V (LEDs auch nach +9V) schalten.
du musst das dann nur beim Programmieren beachten!

Bsp: Pin(Eingang) - Taster - Masse => Taster gedrückt=logischer Pegel von "0"!
Achtung: du brauchst einen Pullup-widerstand, damit NIE ein undefiniterter Pegel anliegen kann.
Pullups gibt es INTERN in allen AVRs, die kannst du einschalten, indem du bei einem als Eingang konfigurierten Pin (DDR entsprechend) in die Stelle für sein Ausgangsregister eine "1" setzt.
Anderstrum ( Pin - Taster - +5V) ist Taster gedrückt="1", aber du brauchst einen externen Pulldown!

bei den LEDs ist es einfacher (ohne Pullup/-down):
Pin - LED -Widerstand -Masse => logisch "1" ausgeben=LED an
Pin - LED -Widerstand -+5V/+9V => logisch "0" ausgeben=LED an

habe dieses Paket übrigens nicht.

Zwerwelfliescher
27.06.2009, 10:21
Kannst du mir genau erklären, was ein Pullup/-down Widerstand ist und was er bewirkt.

Vielen Dank für die zahlreichen Antworten.

Thomas$
27.06.2009, 11:41
pull up zieht den pin nach vcc damit der nicht sonste was empfängt oder spinnt. pull down zieht pin nach ground.
den schalter sollte man entprellen softwaremäsig if taster gedrück 10ms warten endlos schleife in der gefragt wird ob der taster gehen gelassen wurde wenn ja abbruch der endlos schleife led blinken lassen wieder mit endlosschleif und frage od taste gerdrückt wird um den normalen zustand zu ereichen (ampel funktion)
such dir einfach ein port aus papp die leds mit bissel kabel und nem widerstand an drei pins deiner wahl Pin-Widerstand-Kabel-Led
ich programier nur in bascom aber vom prinzip müsste es nich so schwer sein
endlos schleife in der pin der ersten led an geschalten irgend einwas zum verzögern (Waitms bei bascom) led aus nächste an verzögerung .........

oder man nimmt den internen timer zu welcher zeit was gemacht wird und dann timer zurück setzen

Zwerwelfliescher
27.06.2009, 11:53
Also vom Prizip her sollte es so funktionieren:

Batterie anschließen und die normale Ampelfunktion beginnt mit einer Endlosschleife.
Rot--->7sec
Rot,Gelb--->1oder2sec
Grün--->7sec
Gelb--->1oder2sec
Rot--->7sec
...
und sobald man den Taster bedient, soll die Gelbe LED anfangen zu linken.
1sec an und 1sec aus. 1Hz. Uach eine endloasschleife.
Nochmal Taster betätigen, normale Ampelschaltung.

Ich hoffe ich bekomme das mit Assembler hin. 8-[

Neutro
27.06.2009, 12:48
Hattest du sowieso vor Assembler zu lernen oder willst du das nur für die Ampelsteuerung benutzen? Weil dann würde ich dir eher Bascom empfehlen, das ist für Anfänger einfacher. Damit kannst du die Ampelsteuerung mit ein paar Befehlszeilen leicht lösen, bei ASM ist das schwieriger! Du solltest dir gut überlegen wie weit du in die Materie/Architektur des µC einsteigen willst. Bei ASM ist das Pflicht das du dich damit genau auskennst was welche Register machen und wie diese Konfiguriert werden müsen.

Zwerwelfliescher
27.06.2009, 12:53
Nein,

später möchte ich auf den ATmega8 oder 32 umsteigen und LCD´s programmieren.

AlKI
27.06.2009, 15:25
zum Programm: ich würde eine Warteschleife machen, an die du einen wert übergeben kannst (wie viele ms die Schleife warten soll). in dieser Warteschleife läuft ein Zähler, und nach jedem mal weiterzählen (Laufvariable+1) wird der Tasterzustand abgefragt.
wurde der Taster gedrückt, wird eine weitere Variable mitgezählt, bis sie einen bestimmten Wert erreicht hat, dann wird in die Blinkschleife gesprungen. wird der Taster vorzeitig wieder losgelassen, setzt du die Variable einfach wieder auf 0.

Zwerwelfliescher
27.06.2009, 16:18
Ich habe mir jetzt mal die Demo von dem myAVR Studio SE gedownloadet, und habe festgestellt, dass C viel übersichtlucher und kürzer ist.