Forum: Mikrocontroller und Digitale Elektronik Ampelschaltung mit ATmega16


von Bernd S. (Gast)


Lesenswert?

Hallo zusammen,
hab ein kleines Problem ich suche ein AVR-Programm für Ampelschaltung 
mit 2 Autoampeln und 3 Fussgängerampeln, quasi eine Haupt und eine 
Nebenstraße und das ganze sollte mit dem ATmega16 funktionieren.
Vielen Dank.

von Karl H. (kbuchegg)


Lesenswert?

OK. Ist ja nicht gerade Raketentechnik.

Wo ist dein Ansatz?

Du musst dazu gerade einmal 2 Dinge können
  * eine LED an einem Pin gezielt ein/ausschalten
    (wenn ich genau überlege musst du noch nicht einmal das.
     Einfach alle LED gemeinsam schalten. Wird halt eine LED,
     die sowieso schon eingeschaltet ist noch einmal eingeschaltet.
     Stört doch keinen)

  * die _delay_ms Funktion kennen


AVR-GCC-Tutorial


(Das ich nicht lüge. 3 Dinge. Die Ports muss man auch noch 
kopnfigurieren können.
Langer Rede kurzer Sinn: Das kriegt jeder Anfänger in einer ersten 
Version nach seiner ersten Unterrichtsstunde hin)

von Patrick (Gast)


Lesenswert?

Was erwartest du dir als Antwort auf diesen Beitrag?

von g ast (Gast)


Lesenswert?


von Sven (Gast)


Lesenswert?

Möchtest Du es in Form einer PowerPoint Präsentation oder gedruckt als 
word Dokument?! Welchen Namen soll ich als Autor eintragen? Soll ich den 
Namen deiner Schule auf der Titelseite erwähnen?
Hat deine Schule ein Logo? Dann schicke mir das mal zu, dass macht sich 
in solchen dingen immer gut...

von g ast (Gast)


Lesenswert?

Ach... Manchmal wünsche ich mir dass bei solchen Anfragen automatisch 
die Identität des Fragestellers ermittelt und ein Hinweis an die 
Schule/Uni geschickt wird welche den Fragesteller dann durch die Prüfung 
rasseln lässt. Das wäre doch mal eine sinnvolle Verwendung von dem was 
Vorratsdatenspeicherung und Co und so bescheren.

von Karl H. (kbuchegg)


Lesenswert?

Muss ja nicht unbedingt ein Schüler sein.
Kann auch ein Modelleisenbahner sein, der etwas für seine Anlage 
braucht.

Das ändert aber nichts am Sachverhalt, dass eine einfache starre 
Ampelkreuzung Übungsaufgabe nach der ersten Unterrichtseinheit im AVR 
Programmieren ist. Gleich nach der blinkenden LED.

(NIcht ganz ernst gemeint:
  Das kriegen sogar Mädchen ohne Hilfe hin, so einfach ist das)

von g ast (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Muss ja nicht unbedingt ein Schüler sein.
Das IST ein Schüler!

Ein Modellbahner würde wohl einen Grund angeben und (weil er eben 
wirklich keine Ahnung hat) keinen µC-Typ angeben. Hätte er genug Ahnung 
um den mega16 zu kennen würde er das Programm wohl selber schreiben 
können. Ein Modellbahner mit einem gewissen Niveau dürfte außerdem 
Google bedienen können und würde schnell eine Lösung finden (aber eben 
nicht für den mega16). Man kann die Aufgabe ja fast mit 
NE555+Schieberegister+Diodenmatrix oder X mal NE555 oder ... lösen!

Nein, hier ist ein Schüler am Werk (bzw. nicht am Werk(en)) dem der 
Lehrer den mega16 "verordnet" hat.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Anbei das Prinzip mit einer Ampel.


Peter

von g ast (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Anbei das Prinzip mit einer Ampel.
>
>
> Peter
Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

g ast schrieb:
> Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?
Vermutlich Eigennutz: So hält man sich Konkurrenz vom Leib...
Unser Bernd S. muß/wird es so nicht selber lernen, und mit dem nicht 
erworbenen Wissen kann er nicht Peters Arbeitsplatz gefähren... ;-)

von Karl H. (kbuchegg)


Lesenswert?

g ast schrieb:
> Peter Dannegger schrieb:
>> Anbei das Prinzip mit einer Ampel.
>>
>>
>> Peter
> Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?

Schau ins Zip-File rein.

Wenn er das abgibt, dann fragt ihn sein Lehrer garantiert wie das 
funktioniert. Und die Frage kann er nicht beantworten.  No way.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Find ich gut!
Ich hab reingeguckt!
Klasse Programmierleistung!
Jemals dran gedacht beim IOCCC mitzumachen?

Mit freundlichen Grüßen,
Valentin Buck

von g ast (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> g ast schrieb:
>> Peter Dannegger schrieb:
>>> Anbei das Prinzip mit einer Ampel.
>>> Peter
>> Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?
> Schau ins Zip-File rein.
Autsch! Sorry, ich hatte nicht reingeschaut. Das taugt wirklich nur zur 
Gegnerverwirrung (weil viel zu kompliziert für eine solche Aufgabe, dass 
der Code allgemein nichts taugt hab ich nicht gesagt!).

Trotzdem, eigentlich sollte man auf solche Antworten gar keinen Code 
posten. Zumindestens ein oder zwei Zeilen Timerinit könnte man 
übernehmen (wenn man überhaupt einen Timer nutzen will).

Lothar Miller schrieb:
> g ast schrieb:
>> Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?
> Vermutlich Eigennutz: So hält man sich Konkurrenz vom Leib...
> Unser Bernd S. muß/wird es so nicht selber lernen, und mit dem nicht
> erworbenen Wissen kann er nicht Peters Arbeitsplatz gefähren... ;-)
Das ist gut. :-)
Nur: Wer finanziert dem Peter später seine Rente? :-(

von Karl H. (kbuchegg)


Lesenswert?

g ast schrieb:
> Karl Heinz Buchegger schrieb:
>> g ast schrieb:
>>> Peter Dannegger schrieb:
>>>> Anbei das Prinzip mit einer Ampel.
>>>> Peter
>>> Was soll das? Warum machst du anderen Leuten ihre Hausaufgaben?
>> Schau ins Zip-File rein.
> Autsch! Sorry, ich hatte nicht reingeschaut. Das taugt wirklich nur zur
> Gegnerverwirrung (weil viel zu kompliziert für eine solche Aufgabe, dass
> der Code allgemein nichts taugt hab ich nicht gesagt!).

Oh. Der Code ist sogar sehr gut.
Von einem Profi ist auch nichts anderes zu erwarten.
Aber wie du schon sagst: Von einem Einsteiger auf keinen Fall. Und ob 
sein Lehrer das durchblickt ... ich hab da so meine Zweifel, wenn ich 
den typischen Lehrer zugrunde lege :-)

Von daher:
Er hat eine Lösung. Er hat sogar eine sehr gute Lösung. Nur nützt sie 
ihm nichts, wenn das ganze tatsächlich Hausaufgabe ist.

von Öpf (Gast)


Lesenswert?

Tja. Der Lehrer wird nicht erbaut darüber sein, die Lösung für eine 
Aufgabe zu finden (die Multitimer), die er frühestens in zwei Jahren 
stellen wollte.

von Michael S. (technicans)


Lesenswert?

Wäre wohl besser für Bernd gewesen wenn er gleich von vorn herein
reinen Wein eingeschenkt hätte warum er das braucht, ob er etwas
dabei lernen will oder nur nen Dummen sucht der im Arbeit abnimmt.
So wird ihm vermutlich überhaupt nicht geholfen.

von Öpf (Gast)


Lesenswert?

Naja. Er hat ja noch den Beitrag von Karl Heinz.

Beitrag "Re: Ampelschaltung mit ATmega16"

Neues Spiel, neues Glück.

von g ast (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Oh. Der Code ist sogar sehr gut.
Nur damit keine Missverständnisse aufkommen: Dass Peter Dannegger sehr 
guten Code schreiben kann und Ahnung von der Materie hat hat er schon 
hunderte Male bewiesen, ich würde es nicht wagen das Gegenteil zu 
behaupten.
Für diesen Zweck ist sein Code allerdings viel zu kompliziert 
(neudeutsch overkill) und ideal geeignet um einen Anfänger zu verwirren. 
Natürlich ist das hier Absicht, Peter würde wohl (hoffentlich!) etwas 
deutlich einfacheres verwenden wenn er die Aufgabe "richtig" lösen 
wollte. Das wollte ich mit
> Autsch! Sorry, ich hatte nicht reingeschaut. Das taugt wirklich nur zur
> Gegnerverwirrung (weil viel zu kompliziert für eine solche Aufgabe, dass
> der Code allgemein nichts taugt hab ich nicht gesagt!).
ausdrücken. Alle Klarheiten beseitigt? ;-)

> Und ob sein Lehrer das durchblickt ... ich hab da so meine Zweifel, wenn
> ich den typischen Lehrer zugrunde lege :-)
Ich würde mal sagen durchaus berechtigt, das hängt vom Lehrer ab. Wir 
wissen ja nicht auf welchem Niveau (Schule/Betrieb/Uni/...) sich die 
ganze Sache bewegt.

Mal eine andere Frage: Wie werden eigentlich die echten Ampeln "da 
draußen" gesteuert? Von der Rechenleistung her dürfte ein µP reichen 
oder braucht es dank "Warum einfach wenns auch kompliziert geht?" gleich 
einen ganzen PC mit Windows 7 ?

von raketenfred (Gast)


Lesenswert?

Ich würde mal schätzten, dass die Schaltkästet irgendwas SPS oder 
embedded-System mässiges drin haben, weil die sind ja alle aus einer 
Zentrale steuerbar, auch wenn ein einfaches netzwerk auch mit µC klappt.

von Peter D. (peda)


Lesenswert?

g ast schrieb:
> Peter würde wohl (hoffentlich!) etwas
> deutlich einfacheres verwenden wenn er die Aufgabe "richtig" lösen
> wollte.

Nein, ich würde es genau so machen.
Warum sollte ich das Werkzeug Scheduler verstauben lassen, wenn ich 
damit bequem die Abläufe hinschreiben und auch leicht ändern kann.

Es benötigt nur wenig Ressourcen, der ATtiny25 ist kaum ausgelastet.
Und auf dem ATmega16 könntest Du damit bequem 100 Ampeln programmieren 
inklusive grüne Welle, Füßgängertaste, Busvorrang usw..


Peter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Oh. Der Code ist sogar sehr gut.
Aber hallo:  5 Sekunden lange Gelb-Phasen und "Sehr gut"?
Wo sind wir denn? ;-)

von g ast (Gast)


Lesenswert?

Peter Dannegger schrieb:
> g ast schrieb:
>> Peter würde wohl (hoffentlich!) etwas
>> deutlich einfacheres verwenden wenn er die Aufgabe "richtig" lösen
>> wollte.
>
> Nein, ich würde es genau so machen.
> Warum sollte ich das Werkzeug Scheduler verstauben lassen, wenn ich
> damit bequem die Abläufe hinschreiben und auch leicht ändern kann.
>
> Es benötigt nur wenig Ressourcen, der ATtiny25 ist kaum ausgelastet.
> Und auf dem ATmega16 könntest Du damit bequem 100 Ampeln programmieren
> inklusive grüne Welle, Füßgängertaste, Busvorrang usw..
>
>
> Peter

Stimmt auch wieder, wenn du damit klarkommst warum nicht. Vergiss meinen 
zitierten Satz.

raketenfred schrieb:
> Ich würde mal schätzten, dass die Schaltkästet irgendwas SPS oder
> embedded-System mässiges drin haben, weil die sind ja alle aus einer
> Zentrale steuerbar, auch wenn ein einfaches netzwerk auch mit µC klappt.
Hm, müsste man mal reingucken. Vielleicht hab ich Glück und komme mal an 
einem Kasten vorbei der gewartet wird.

von Michael S. (technicans)


Lesenswert?

Gewöhnlich sind in den Schränken SPS-Steuerungen drin.
Allerdings sind die Steuerungen nicht so simpel programmiert
wie man glaubt. Da gibts jede Menge Zusatzfunktionen die
unzulässige oder unmögliche Zustände überwachen die die
Verkehrssicherheit gefährden könnten.
Z.B. werden alle Rotlampen überwacht für den Fall das
die ausfallen. Dann muss die Anlage auf Störung gehen
und die Vorfahrtrichtung muss abschalten und die Nebenstraße
gelb blinken.
Ein-und ausgeschaltet wird die Anlage über Gelb auf Vorfahrt
und Nebenrichtung. Beim Starten geht die gesammte Anlage
im Folgezustand auf Rot-Rot.
Nach den Sicherheitsstart übernimmt die Ablaufsteuerung
die Kontrolle, Zeiten werden abgearbeitet, Zustände werden
entsprechend an die Signalgeber ausgegeben, wie ein Automat.
Gleichzeitige Grünzustände, z.B. durch defekte Relais müssen
auch ständig überwacht werden.
Da gibts ne Menge Vorschriften zu beachten und nicht jede
Anlage ist gleich weil es oft andere Verkehrsverhältnisse
gibt, z.b. mit zusätzlichen Fußgänger-Signalgebern, mit/ohne
Grünanforderungen usw.

von Bernd S. (Gast)


Lesenswert?

Hey Leute, ganz Ruhig brauch den Misst nicht für eine Prüfung, bin 42 
Jahre und meine Studienzeit liegt schon ein paar Jahre zurück. 
Beschäfftige mich bloß Privat etwas mit dem Thema und ein Freund und ich 
wohlen damit eine Eisbahnplatte verschöner. Also wäre echt super wenn 
hier nur Leute antworten die auch was Sinnvolles zum Thema beitragen 
können, der Rest sollte es einfach lassen. Bin mitlerweile selber soweit 
das die ersten Ampeln laufen, aber mein zeitlicher Ablauf und das Blinkt 
funktioniert noch nicht so wie es wollen. Also Helft oder lasst es, mein 
Leben hängt nun nicht davon ab und bis nächste Woche brauch es auch 
nicht fertig sein. Viele Grüße

von Klaus (Gast)


Lesenswert?

Bernd S. schrieb:
> Bin mitlerweile selber soweit
> das die ersten Ampeln laufen, aber mein zeitlicher Ablauf und das Blinkt
> funktioniert noch nicht so wie es wollen. Also Helft oder lasst es, mein
> Leben hängt nun nicht davon ab und bis nächste Woche brauch es auch
> nicht fertig sein. Viele Grüße

Super, das ist toll! :) Dann zeig doch mal deinen Code her, und 
beschreibe was für Probleme damit auftauchen und ich bin mit sicher, 
dass du hilfreiche Antworten bekommst.  Je konkreter du eine Frage 
stellst, desto besser kann dir geholfen werden ("Ich brauche 
Ampelschaltung, fertig" ist ziemlich nichtssagend und provoziert solche 
Antworten, wie du gerade gemerkt hast).

von Peter D. (peda)


Lesenswert?

Bernd S. schrieb:
> aber mein zeitlicher Ablauf und das Blinkt
> funktioniert noch nicht so wie es wollen.

Du solltest Dir erstmal das Zeitdiagramm für alle LEDs auf Papier 
aufmahlen.
Dann ist der Rest ein Kinderspiel.

Wie Du an meinem Beispiel sehen kannst, trägt man dann einfach die 
gewünschten Aktionen und Zeiten als Scheduleraufrufe ein.
Programmierer nennen diese Technik Callback-Funktion. Man ist dadurch 
sehr flexibel und die Funktionen beeinflussen sich nicht gegenseitig. 
Sie werden quasi parallel ausgeführt.

Wenn also was doch nicht auf Anhieb stimmt, kann man es leicht ändern.


Peter

von Turbo T. (turbotoni)


Lesenswert?

Bei Pollin gibt es einen Bausatz für so eine Ampelsteuerung und da ist 
sogar der Quelltext in C mit dabei.

MfG Turbotoni

von g ast (Gast)


Lesenswert?

Michael S. schrieb:
> Gewöhnlich sind in den Schränken SPS-Steuerungen drin.
> [...]

Interessant, danke für die Info.

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.