Hallo, ich bin Schüler der 11. Klasse und muss im Seminarfach "Informatik-Physik" eine Seminararbeit schreiben. Mir kam die Idee eine Binäruhr zu bauen, schlug dies auch meinem Lehrer vor, welcher meinte, dass dies ein gutes Thema sei. Nun habe ich mich mit der Binäruhr intensiver beschäftigt und wurde durch die ganzen Informationen zum Bau ziemlich überrumpelt. Vorkenntnisse zur Elektronik besitze ich nur wenige. [...] MfG maierx (x EDIT: Stand 16.04.2014 Den Schaltplan habe ich im groben Verstanden, das Wissen über Mikrokontroler ist ebenso gewachsen. Derzeit bin ich auf der Suche nach einem einsteigerfreundlichem, leistungsfähigen und halbwegs preiswerten Kontroler + Programmer. Programmierkenntnisse besitze ich mit Java, würde mich aber auch in eine neue Sprache reinfuchsen.
:
Bearbeitet durch User
Tom M. schrieb: > habe ich kein Programm für den µC gefunden, selber > eins schreiben wäre mMn zu heavy, da ich lediglich Java > Kenntnissebesitze und von µC sowieso kaum Ahnung habe. und dann schlägst du deinem lehrer so ein projekt vor? nun ja etwas größenwahn in ehren aber das hier?
dolf schrieb: > Tom M. schrieb: >> habe ich kein Programm für den µC gefunden, selber >> eins schreiben wäre mMn zu heavy, da ich lediglich Java >> Kenntnissebesitze und von µC sowieso kaum Ahnung habe. > > und dann schlägst du deinem lehrer so ein projekt vor? > nun ja etwas größenwahn in ehren aber das hier? Die Arbeit soll Elektronik und ggf Informatik (Programmieren) beinhalten, er meinte das Thema sei angemessen, daher leb ich momentan noch im Glauben, dass mich die ganzen neuen Informationen nur überrumpeln und es de facto doch machbar ist.
Für mich als heute Ingenieur wäre eine Binäruhr kein Thema. Aber in der 11, was macht ihr denn da? Meine Erfahrung ist, daß man sich da nicht gerade das schwerste und abgefahrenste aussuchen muß, und dafür auch eine gute Note bekommt. So weit es der Schulklasse entspricht. Sich übernehmen, geht oft nach hinten los.
Wo bist du? Vielleicht kann dir jemand etwas Nachhilfe geben, dass du aus den ganzen Informationen die nötigen extrahieren kannst und dein Projekt erfolgreich absolvieren kannst?
Tom M. schrieb: > und es de facto doch machbar ist. Das ist sicher machbar, auch gut ohne Mikrocontroller, zum Beispiel mit einfachen Binär-Zählerbausteinen. Tom M. schrieb: > da ich lediglich Java Kenntnisse besitze Das ist doch schon etwas. Der Umgang mit Variablen, Methoden, etc. ist dann ja bekannt. Größere Unterschiede gibt es ja vor allem in der Syntax und dem Fehlern vieler komfortabler eingebauten Methoden. Für dieses Projekt ist so etwas schwerer verständliches wie Zeiger und Speicherverwaltung nicht nötig, du könntest also mal versuchen, ein kleines C-Programm zum Einstieg zu schreiben. Am besten baust du einen einfachen Binärzähler in Software auf, der eine Variable von 0 bis 59 hochzählt, eine andere von 0 bis 12. Vielleicht sowas (Pseudocode mit Rätsel):
1 | Minuten = 0 |
2 | Stunden = 0 |
3 | |
4 | Do every min{ |
5 | Minuten erhöhen |
6 | |
7 | Wenn Minuten == ??? { // Stunden hochzählen, wenn ? |
8 | Minuten = ??? |
9 | |
10 | Wenn Stunden < ???: |
11 | Stunden erhöhen |
12 | sonst: |
13 | Stunden = ??? |
14 | } |
15 | } End |
wenn du dich mit und oder nicht auskennst dann kann man das auch mit einigen cmos ic´s der 4000er serie erledigen. die sind zwar alt und lahm aber für sowas gut geeignet. du brauchst nen 1hz takt und vier oder sechs bcd zähler mit 8421 ausgängen. die zähler muss man mit ner passenden zählweitenbegrenzung beschalten. 99.99.99 uhr z.b. wäre ja etwas unpassend dazu noch led treiber und gut. du kannst an die zählerausgänge natürlich auch noch nen bcd zu 7 segment dekoder anklemmen. dann hast dazu noch die normale anzeige.
Momentan sollen wir das Thema unserer Arbeit ausformulieren. Wo wir grad sind.. Spontan würd ich sagen ganz am Anfang. ^^ Der Physikunterricht bis zur 10. Klasse war um 's sanft auszudrücken sehr "schwach", haben zur Elektronik kaum was gelernt, geschweige denn über elektrische Schaltkreise. Im Seminarfach haben wir uns zuvor mit dem astabilen Multivibrator beschäftigt. Adrian Figueroa schrieb: > Das ist sicher machbar, auch gut ohne Mikrocontroller, zum Beispiel mit > einfachen Binär-Zählerbausteinen. Ohne µC? Worauf speicher ich dann das untenstehende Programm? Ich fühl mich grad ziemlich unwohl, da ich vom Fachlichem echt nichts versteh. v-v
> Ohne µC? Worauf speicher ich dann das untenstehende Programm? Gar nicht :D Das "Programm" ist für einen Mikrocontroller gedacht, die andere Lösung wurde von dolf beschrieben. > Ich fühl mich grad ziemlich unwohl, da ich vom Fachlichem echt nichts > versteh. Das kommt mit der Zeit von selbst!
Tom M. schrieb: > Im Seminarfach haben wir uns zuvor mit dem > astabilen Multivibrator beschäftigt. Aus dem kann man ja, wenn man sehr wenig Anspruch an die Genauigkeit und Stabilität der Uhr hat, seinen Takt gewinnen.
Hast Du Dir schon einmal Arduino angeschaut? Wenn Du Java programmieren kannst, bekommt Du auch Arduino hin. Für die Binäruhr musst Du dann nur noch ein paar LEDs an die Ausgänge anschließen. Lass sich nicht von den ganzen Diskussion ums warum beirren.
Tom M. schrieb: > Im Seminarfach haben wir uns zuvor mit dem > astabilen Multivibrator beschäftigt. Das ist doch schon ein netter Anfang. Ein Taktgenerator mit digitalem Signal. Worauf soll es denn hinaus laufen? Eine Aufgabe, die PC und Programme braucht, oder auch nicht? Sonst hätte ich mal einen simplen Reaktionstester mit zwei CMOS-4000-Bausteinen. Ein Multivibrator macht da Takte mit 30ms, und ein Zähler zählt die. Anzeige mit 10 LEDs. Bausteinbedarf nur ein 4060 Ripple Counter und 4017 Dekadenschalter. Die Reaktionszeit wird dann in 30ms-Schritten am LED-Band angezeigt. Stromversorgung ist unkritisch, nur ein 9V-Block. Mann, was konnte ich mit so simplen Dingen schon Menschen erfreuen und begeistern. Ich mußte das Gerät damals schon mal für ein Wochenende an einen Gymnasialpauker verleihen, der damit mit seinem Sohnemann um die beste Reaktionszeit wetteiferte. Der Pauker hatte auch keine Ahnung, was in dem Kästchen war. Ich war der einzige Elektroniker und Bastler in einer Schulklasse, der mal an der VHS die Sekundarstufe (mittlere Reife) nach holte. Das Ding programmierte ich 20 Jahre später auf einen µC, und zeigte anstatt nur mit 10 LEDs die Millisekunden auf einem LCD an. Es verblüffte und fesselte die Menschen immer noch genau so. Ein 25 Jahre altes Board mit 8051. Es könnte auch fast 40 Jahre alt sein und mit dem 8080, egal. Die sind erschrocken über ihre Reaktionszeit, und versuchen es am Gerät mehrmals, besser zu werden, weil sie ihre eigene schlechte Reaktion nicht so recht glauben, wenn da 320ms auf dem Display steht, und man nicht mehr darunter kommt! Mit 2-3 Personen wird das immer noch amüsanter. Erstaunlich, wo die Leutchen doch eher PC-Monitore und schöne Bildchen gewohnt sind.
ZUnächst ersteinmal danke für die zahlreichen Antwortenn. Tim schrieb: > Hast Du Dir schon einmal Arduino angeschaut? Wenn Du Java programmieren > kannst, bekommt Du auch Arduino hin. Für die Binäruhr musst Du dann nur > noch ein paar LEDs an die Ausgänge anschließen. Habe mir grad ein paar YT-Videos angesehn, schon toll das Ding :D Ich denke aber, dass mein Lehrer davon nicht begeistert sein wird, da dann das "Schaltkreis-realissieren-und-Bauelente-auf-Platinen-löten" wegfallen würde. Das mit dem Ripple Counter ist auch recht interessant,aber selbiges Problem wie oben... Ist es einfach, mit Java-Kenntnissen ASM bzw C (sind die doch beiden "haupt µC Sprachen", oder?) zu erlernen?
Tom M. schrieb: > Ist es einfach, mit Java-Kenntnissen ASM bzw C (sind die doch beiden > "haupt µC Sprachen", oder?) zu erlernen? Schade, daß es das PICkit1 mit dem 12F675 nicht mehr gibt. Aber MPLAB kann man sich bei Microchip gratis und unregistriert da von der Homepage laden, da ist ein Simulator mit drin. Also man kann damit schon eine Software simulieren, wenn man den µC noch gar nicht besitzt. Den PIC Assembler mögen manche nicht, aber man kann sich damit auch anfreunden, wenn man es möchte.
Tom M. schrieb: > Habe mir grad ein paar YT-Videos angesehn, schon toll das Ding :D Ich > denke aber, dass mein Lehrer davon nicht begeistert sein wird, da dann > das "Schaltkreis-realissieren-und-Bauelente-auf-Platinen-löten" > wegfallen würde. Das kann man immer noch hinterher machen. Den Microcontroller auf dem Arduino gibt es auch als einzelnen Chip.
:
Bearbeitet durch User
Welchen Controller willst du denn verwenden? Ich würde, wenn es möglich wäre die LED's jeweils auf nen Byte Ausgang verteilen. Meine damit die LED's für die 59 Sek auf ein Byte. Und nicht wie oben im Schaltplan auf zwei verteilt. Kannst so dann später deine 8 Bit Variable direkt auf den Port schreiben. MfG Sebastian
Klausuren geschrieben und endlich Zeit gefunden, mich wieder mit dem Binäruhr Projekt zu beschäftigen. An dieser Stelle nochmal ein Danke an die zahlreichen Antworten! Der Jetztige Stand der Dinge ist, dasa ich den Schaltplan überwiegend verstehe. Zum Programm selbst: Ganz salop gesagt muss ich ein Programm entwerfen, welches zu jedem ankommenden Takt die Sekunden um eine Sekunde erweitert und die jeweilige Sekundenzahl dann in binärschreibweise auf LEDs ausgebe. Als nächstes habe ich vor, mich an einem Mikrokontroller zu wagen. Am besten wär's natürlich, wenn der Mirkokontroller, mit dem ich "rumexperimentieren" will, ebenso der Mikrokontroller ist, auf dem später das Programm zur Binäruhr läuft. Wie im ersten Post schon angedeutet, besitze ich lediglich Kenntnissse vom Programmieren mit Java, könnte mich aber auch in eine neue Sprache reinfuchsen. (Kurze Nebenfrage zur Versicherung meiner Denkweise: ich schreibe ein Programm am PC, "schiebe" dies via Programmer(?) auf den Mikronkontroller, bau Takt, Spannung und Dioden an und es sollte laufen) Welcher Mikrokontroller wäre für mich geeignet bzw auf was muss ich beim Suchen achten?
Tom M. schrieb: > Welcher Mikrokontroller wäre für mich geeignet bzw auf was muss ich beim > Suchen achten? Ich würde einen PIC18 mit genügend IOs empfehlen, dazu das PIKkit3 als Programmer und Debugger. Wenn dir 25 IOs reichen würde ich den PIC18F25k22 verwenden. Die Entwicklungsumgebung MPLAB X IDE und der XC8 C-Compiler sind kostenlos. PICs haben nur wenige und unkritischen Stolperfallen für Anfänger, ich habe z.B. noch nie gehört, dass sich jemand seinen PIC verfused hat. Für den Einstieg hat mir dieses Tutorial gut geholfen: http://pic-projekte.de/wordpress/?p=133#comments Für ASM und generell zu PIC findet man hier viel: http://www.sprut.de/ Tom M. schrieb: > (Kurze Nebenfrage zur Versicherung meiner Denkweise: ich schreibe ein > Programm am PC, "schiebe" dies via Programmer(?) auf den > Mikronkontroller, bau Takt, Spannung und Dioden an und es sollte laufen) Wenn die LEDs einen Vorwiderstand haben und das Progamm richtig ist, dann ja. Die Hardware macht man eigentlich vor der Software. Tom M. schrieb: > Ganz salop gesagt muss ich ein Programm entwerfen, > welches zu jedem ankommenden Takt die Sekunden um eine Sekunde erweitert > und die jeweilige Sekundenzahl dann in binärschreibweise auf LEDs > ausgebe. Ich würde das 1 Hz Signal mit einem Interrupt auswerten und in der Interrupt Service Routine (ISR) die Sekunden, und eventuell auch Minuten und Stunden erhöhen und ausgeben.
:
Bearbeitet durch User
Hi Wenn du schon ein wenig programmierem kannst, dann weißt du, wie eine Aufgabe analysiert und umgesetzt wird. Ist bei Controllern nicht anders. Es gibt hier Tutorials mit ASM und C ( wobei ich C immemr noch nicht wirklich verstehe) die für einen Anfänger eine große Hilfe sind.Zusätzlichkönnt ich dir im AVR-Praxis -Forum den Beitrag "keine Angst vor Assembler" in der FAQ Rubrik empfehlen. Dort dürftest du alles finden, um dein Projekt mit einem ATMega umzusetzen. Nun weiß ich nicht, welches Equipment dir zur Verfügung steht. Wenn du noch nichts hast, dann mein Rat: Nimm die Atmel Evaluationsplatine von Pollin als Bausatz. Da lernst du löten und du hast gleich die Platine für dein Projekt. LED und Widerstände bzw. alles was du brauchst gibt's dort auch. Zusaätzlich zum Board würd ich einen USB-ISP Programmer empfehlen. Die vorhandene seerielle Schnittstelle zum Programmieren der Controller ist nicht grad das gelbe vom Ei und wenn du keine echte RS232 am PC hast, ein Geduldsspiel. Mit einem MKII geht es richtig flott. Eine ISP Stiftleistte ist auf dem Board und das ergänzt sich ganz gut. Übrigends, das Projekt ist nicht so gewaltig, das du es nicht schaffen kannst. Geh das mal ruhig an und setz nur die Schritte etwas kleiner. Gruß oldmax
oldmax schrieb: > Zusaätzlich zum Board würd ich einen USB-ISP Programmer > empfehlen. Die vorhandene seerielle Schnittstelle zum Programmieren der > Controller ist nicht grad das gelbe vom Ei und wenn du keine echte RS232 > am PC hast, ein Geduldsspiel. Sie genügt, um einen AVR als Programmer zu flashen. Selbst wenn das also ein paar Stunden dauert, man muß es ja nur einmal tun. Und es ist ja auch nicht so, daß man während des Programmiervorgangs daneben sitzen und eine Kurbel drehen muß oder sowas. Das kann der Computer ganz alleine über Nacht tun. Und am nächsten Morgen hat man dann einen USB-Programmer. Trotzdem sollte Pollin langsam mal eine V3 des Boards auflegen, welches einen entsprechend vorprogrammierten Programmer bereits von Hause aus enthält. Das würde die Attraktivität des Boards für Einsteiger deutlich erhöhen.
Max H. schrieb: > Ich würde einen PIC18 mit genügend IOs empfehlen Ich würde nach neuesten Erkenntnissen (1 Woche alt) einen Arduino empfehlen. Mein Sohn (Klasse 10) hat das Ding allein und ohne Vorkenntnisse in einer halben Stunde installiert, eine LED zum Blinken gebracht und einen Taster eingelesen. Das größte "Problem" dabei war der Treiber für den FTDI-Chip. Das funktioniert mit einer "traditionellen" Toolchain niemals. Ich würde ihm jetzt zutrauen, diese Binäruhr (das sind ja auch nur ein paar LEDs an ein paar Portpins plus zwei Taster zum Stellen der Uhr) mit ein paar Tips und Stichworten in 2 Tagen Vollzeit fertig zu machen. Auch das funktioniert mit einer "traditionellen" Toolchain sicher nicht so einfach. Denn bis sich da ein Anfänger in die Toolchain, die Timerintitialisierung und die Interruptstruktur "seines" uCs eingearbeitet hat, das dauert garantiert länger. Da ist der weichgespülte Wrapper der Arduino Bibliothek gerade richtig zum Anfangen. Und später kann man ja immer noch auf eine richtige "Toolchain für Männer" umsteigen. Tom M. schrieb: > Mir kam die Idee eine Binäruhr zu bauen, schlug dies auch meinem Lehrer > vor, welcher meinte, dass dies ein gutes Thema sei. > Nun habe ich mich mit der Binäruhr intensiver beschäftigt... Diese Reihenfolge ist falsch! Hoffentlich lernst du daraus, dann hättest du aus dieser Semesterarbeit schon mal was gelernt...
:
Bearbeitet durch Moderator
> Mir kam die Idee eine Binäruhr zu bauen, schlug dies auch meinem Lehrer > vor, welcher meinte, dass dies ein gutes Thema sei. > Nun habe ich mich mit der Binäruhr intensiver beschäftigt... Diese Reihenfolge ist falsch! Hoffentlich lernst du daraus, dann hättest du aus dieser Semesterarbeit schon mal was gelernt... ... ist aber leider der übliche Ansatz der BWL-Marketings ;-)
Wegen dem Pseudocode von oben, mehrere Zähler find ich übertrieben. Ich habe noch nie was mit uCs gemacht, aber dass stelle ich mir einfach vor. Man nehme einen atmega, low drop leds, vorwiederstände, eine batterie, einen Programmer und C. Dan schreibt man sowas (der timer, der time incrementiert fehlt noch):
1 | unsigned time; |
2 | |
3 | int main(){ |
4 | |
5 | time = 0; // 0 sekunden bei start |
6 | |
7 | DDRA = 0xff; // Ausgänge setzen ( Alle 8 ) |
8 | DDRB = 0xff; // Ausgänge setzen ( Alle 8 ) |
9 | DDRC = 0x01; // Ausgänge setzen ( 1 bit ) |
10 | |
11 | while(true){ |
12 | |
13 | time %= 60*60*24; // Damit timer nicht zu gross wird |
14 | |
15 | unsigned char |
16 | s = time%60, // Sekunden |
17 | m = (time/60)%60, //Minuten |
18 | h = (time/60/60)%24; // Stunden |
19 | |
20 | // Ausgänge setzen |
21 | PORTA = s | ( m<<6 ); // 6 bit Sekunde + 2 bit minuten = 8bit |
22 | PORTB = ( m >> 2 ) | ( h << 4 ); // 4 bit Minuten + 4 bit Stunden |
23 | PORTC = ( h >> 4 ); // 1 bit Stunden |
24 | } |
25 | } |
Hi >Wegen dem Pseudocode von oben, mehrere Zähler find ich übertrieben. Ich >habe noch nie was mit uCs gemacht ... Merkt man. Die mehreren Zähler sind wesentlich ressourcensparender als dein Konstrukt. MfG Spess
Miller schrieb: > Ich würde nach neuesten Erkenntnissen (1 Woche alt) einen Arduino > empfehlen. Tom M. schrieb: > Ich > denke aber, dass mein Lehrer davon nicht begeistert sein wird Daniel A. schrieb: > low drop leds Was sind das für LEDs? Ich kenne nur Low Drop Spannungsregler. Sind das LEDs an denen In betrieb nur 1/2 Volt abfällt?
:
Bearbeitet durch User
Tom M. schrieb: > (Kurze Nebenfrage zur Versicherung meiner Denkweise: ich schreibe ein > Programm am PC, "schiebe" dies via Programmer(?) auf den > Mikronkontroller, bau Takt, Spannung und Dioden an und es sollte laufen) Eigentlich schon. Frage: Was meinst du, warum verdienen andere Menschen sich täglich ihr Brot mit solch einer einfach zu beschreibenden Arbeit? Antwort: Weil es wesentlich komplexer ist und der Teufel im Detail sitzt. Und jetzt mal ein paar ganz wichtige Fragen, die ehrliche Antworten brauchen: Welche Erfahrung hast du schon mit Elektronik? Wie sicher ist dein Umgang mit Lötkolben und Seitenschneider? Welche Schaltungen hast du bisher aufgebaut? > Miller schrieb: >> Ich würde nach neuesten Erkenntnissen (1 Woche alt) einen Arduino >> empfehlen. > Tom M. schrieb: >> Ich denke aber, dass mein Lehrer davon nicht begeistert sein wird Ich denke, du solltest ihn erst mal fragen. Am besten VORHER ein plausibles Konzept ausarbeiten und evtl. eine kleine "Porterweiterung mit Schieberegister" SELBER bauen UND programmieren... Daniel A. schrieb: > vorwiederstände Was ist das?
spess53 schrieb: > Merkt man. Die mehreren Zähler sind wesentlich ressourcensparender als > dein Konstrukt. und, ist die Uhr damit schneller?
Hi
>und, ist die Uhr damit schneller?
Nö. Aber der erzeugte Code ist um einiges kleiner.
MfG Spess
Hallo *, ich glaube ich wuerde mir von jemandem, der sich damit auskennt ein EvalBoard an meinem PC in Betrieb nehmen lassen (AVR, PIC, ARM, oder was auch immer). Wenn dann Toolchain und Programmierung steht und im Idealfall ein Beispielprogramm zum Uebersetzen und Programmieren zur Verfuegung steht, bauchst du dieses nur anzupassen. Eine Uhr ist wie oben gezeigt relativ trivial. Ach ja, falls Deine Anzeige nicht aus direkt von den Ports treibbaren LEDs besteht, musst Du noch ein paar Treiber an das EvalBoard anhaekeln. Unter diesen Voraussetzungen scheint mir eine binaere Uhr auch fuer einen Schueler in endlicher Zeit machbar.
spess53 schrieb: >> und, ist die Uhr damit schneller? > Nö. Aber der erzeugte Code ist um einiges kleiner. Und schneller. Dann bleibt mehr Zeit, um auf die nächste Sekunde zu warten. Oder was anderes zu tun...
Lothar Miller schrieb: > spess53 schrieb: >>> und, ist die Uhr damit schneller? >> Nö. Aber der erzeugte Code ist um einiges kleiner. > Und schneller. Dann bleibt mehr Zeit, um auf die nächste Sekunde zu > warten. Oder was anderes zu tun... ... zum Beispiel sich um die Programmierung zu kümmern :-) Im Ernst: Ich denke, gerade für einen Neuling, ist eine Uhr mit 3 Variablen Stunde, Minute, Sekunde leichter zu durchschauen (und auch zu debuggen), als eine time Variable. Das Weiterschalten von Sekunden zu Minuten durchschaut jeder sofort auf Anhieb, der als 6 jähriger gelernt hat, wie eine Analoguhr funktioniert.
Der Schaltplan könnte so aussehen. ICSP ist der Anschluss für den Programmer (PICkit) und eine 6 Polige Stiftleiste wie diese: https://secure.reichelt.de/Stiftleisten/MPE-087-1-006/3/index.html?ACTION=3;ARTICLE=119883;SEARCH=MPE%20087-1-006 Über die Tasten könnte man die Uhr einstellen. Man könnte z.B. mit einer Taste die Minuten um eins erhöhen, mit der anderen Taste die Stunden. Tom M. schrieb: > zu jedem ankommenden Takt Woher kommt dieser Takt eigentlich?
> Eine Uhr ist wie oben gezeigt relativ trivial.
Wenn man weiß, wies geht, ist alles trivial.
Sogar eine Uhr, die nach 2 Monaten immer noch auf 3 Sekunden genau geht.
Oder eine Blinddarmoperation.
Max H. schrieb: > Tom M. schrieb: >> zu jedem ankommenden Takt > Woher kommt dieser Takt eigentlich? Können wir uns darauf einigen, dass ein externer Takt aus einem astabilen Multivibrator keine gute Idee für eine Uhr ist, die wenigstens die lausigsten Ansprüche an Genauigkeit erfüllen soll und es statt dessen viel einfacher und sinnvoller ist, einen Quarz an den µC anzuschliessen?
Karl Heinz schrieb: > Können wir uns darauf einigen, dass ein externer Takt aus einem > astabilen Multivibrator keine gute Idee für eine Uhr ist, die wenigstens > die lausigsten Ansprüche an Genauigkeit erfüllen soll und es statt > dessen viel einfacher und sinnvoller ist, einen Quarz an den µC > anzuschliessen? Ja! Aber wenn ich es nicht überlesen habe, dann hat der TO noch nichts geschrieben, woher das 1Hz Signal kommt.
:
Bearbeitet durch User
Hallo Leute, hier ist die Uhr bereits fertig: http://www.instructables.com/id/LED-Binary-Clock/ Gruss
Karl Heinz schrieb: >> Eine Uhr ist wie oben gezeigt relativ trivial. > > Wenn man weiß, wies geht, ist alles trivial. > Sogar eine Uhr, die nach 2 Monaten immer noch auf 3 Sekunden genau geht. > Oder eine Blinddarmoperation. In einem Schulprojekt nehme ich an, dass es relativ gleichgueltig ist, wie genau diese Uhr ist. Ausserdem koennte ja der TO erst einmal die Hardware zusammenstellen und eine 1. Version basteln. So Sachen wie Genauigkeit, perfekte Programmierung, Schlaefenstecker oder Gedankeninterface lassen sich auch spaeter noch leicht hinzufuegen.
Max H. schrieb: > Daniel A. schrieb: >> low drop leds > Was sind das für LEDs? Sorry, ich meinte low current leds... Karl Heinz schrieb: > Im Ernst: Ich denke, gerade für einen Neuling, ist eine Uhr mit 3 > Variablen Stunde, Minute, Sekunde leichter zu durchschauen Ja, stimmt, aber die umrechnung könte trozdem nützlich werden. Lothar Miller schrieb: > spess53 schrieb: >>> und, ist die Uhr damit schneller? >> Nö. Aber der erzeugte Code ist um einiges kleiner. > Und schneller. Dann bleibt mehr Zeit, um auf die nächste Sekunde zu > warten. Oder was anderes zu tun... Das Modulo und division so langsam sind wusste ich zu dem Zeitpunkt noch nicht, ich bin mir intel x64 gewohnt :). Mit meinem vorschlag währe jedoch die ISR kleiner, und wenn man time noch auf veränderung prüft fällt die geschwindigkeit nichtmehr ins gewicht, oder?
Hi ich möchte auch noch mal zur Schule gehen... Ich mein, früher musste ich wirklich noch alles richtig abschreiben, nix C&P Das ist ja hier auch nicht gefragt, Aber, wenn die Uhr nicht genau gehen soll, dann hat ein ATmega immer noch einen internen Takt, also würde das zur Präsentation ja erst mal reichen. Von den IO her müsste es auch reichen. Auch von der Belastung bei 10 bis 15 mA für die LED dürfte es auch ohne Treiber gehen. 3 Taster zum Zeit einstellen sind 20 IO. Der Atmega8 hat 23 IO. Einer geht für Reset weg und zwei weitere weden bei Verwendung eines Quarzes gebraucht. Also reicht er aus. Sowas solltet ihr dem TO mitteilen, denn er ist ein unwissender, aber interessierter Schüler. Die Diskussion nach genauem Takt ist da noch zu früh. Und ob er 20 oder 100 Variablen benutzt ist auch völlig wurscht. Also, lass dir nix einreden, von wegen zu kompliziert für einen SChüler. Man wächst mit der Aufgabe. Gruß oldmax
Sry, in meinem Schaltplan von oben war ein Fehler :-( In Anhang der richtige. Zusätzlich im Anhang eine minimal Version einer Firmware, die Funktionieren sollte. Geschrieben in C für den XC8 Compiler für den PIC18F25k22 P.S. Ich weiß, Entprellen mit Delay ist nicht optimal, aber in diesem Fall ist es eine einfache und funktionierende Lösung. Der µC hat je Zeit genug um mal 10ms lange nur zu entprellen.
:
Bearbeitet durch User
Nen AVR liesse sich auch in Java programmieren, mit der NanoVM. http://www.mikrocontroller.net/articles/NanoVM
Daniel A. schrieb: > jedoch die ISR kleiner, ist ziemlich irrelevant. Ein
1 | volatile uint8_t sekunde, minute, stunde; |
2 | |
3 | ISR( ... ) |
4 | {
|
5 | sekunde++; |
6 | if( sekunde == 60 ) |
7 | {
|
8 | sekunde = 0; |
9 | minute++; |
10 | |
11 | if( minute == 60 ) |
12 | {
|
13 | minute = 0; |
14 | stunde++; |
15 | |
16 | if( stunde == 24 ) |
17 | stunde = 0; |
18 | }
|
19 | }
|
20 | }
|
sieht nur auf dem Papier langatmig aus. Da das alles 8 Bit Operationen sind, sind das auf CPU Ebene keine Handvoll Operationen. > und wenn man time noch auf veränderung prüft fällt > die geschwindigkeit nichtmehr ins gewicht, oder? Dafür musst du im Gegenzug zur Ausgabe die time erst wieder in die Komponenten zerlegen. Hat halt alles sein für und wider.
:
Bearbeitet durch User
Lustig, habe als Fingerübung und zum besseren Verständnis/Lernen grade eine Uhr auf Arduino Pro Mini-Basis gebastelt. Also 4-Stellen-7-Segment-LED ansteuern, dann erst "interne Eieruhr", seit gestern dann mit DS1302 als "richtige" Uhr (Bitbang des Protokolls bauen ... ). Das Eieruhr-Modell basiert auf dem internen Timer, der einfach nur jede ms den Zeitzähler hochzählt; bei 4 Stellen dann Rücksetzen nach 3599 (=1 Stunde). Die Umrechnung in Dezimal und Anzeige würde wegfallen, kann man dann direkt auf die LED-Leisten ausgeben. Löten wäre dann noch für die LEDs nötig. Ich habe beispielsweise bei dem 7-Segment ein kleines Huckepack-Platinchen gebastelt, das einmal die Pins a-g und den Dezimalpunkt ordentlich sortiert und die gemeinsame Kathode jeweils mit 330 Ohm Vorwiderstand versehen. Ging einiges an Kupferlackdraht bei drauf. Aber soll ja binär sein, also schon eine Leiste mit LEDs basteln. Im Anhang mal das ganze Programm. Es ist fürchterlich ineffizient, aber läuft. Die Interrupts sollte man nicht so machen, vor allem lange Funktionsaufrufe gehören da nicht rein - hier klappt das zufälligerweise jedoch. Falls du mit einer RTC (einem Uhrenchip) arbeiten willst, passt der Code soweit schon recht gut. Die Umrechnung in "curtime" am Ende und die Anzeige in der ISR (Interrupt-Routine) musst du umbasteln. Vielleicht hilft das ja auch weiter, um einen Überblick an weiteren Möglichkeiten zu bekommen. Als "Eieruhr" nur mit internem Timer des ATmega328 sieht das so aus: https://www.youtube.com/watch?v=kHkaq8GFvZ8 Mit dem ausgelesenen RTC DS1302 so: https://www.youtube.com/watch?v=qeXI6cmGSB8 Im Anhang auch ein Foto der Lötübung.
Max H. schrieb: > Woher kommt dieser Takt eigentlich? Würde spontan sagen, dass ich dazu einen Quearz mit 1 Hz Frequenz nutzen werde. > Und jetzt mal ein paar ganz wichtige Fragen, die ehrliche Antworten > brauchen: > Welche Erfahrung hast du schon mit Elektronik? Wie sicher ist dein > Umgang mit Lötkolben und Seitenschneider? Welche Schaltungen hast du > bisher aufgebaut? Wie schon angedeutet, habe ich kaum Erfahrungen mit praktischer (Mikro)Elektronik. Als Einleitung in's Seminarfach baute ich mit 2 Kollegen einen astabilen Multivibrator, welcher letztendlich auch funktionierte (!). Dies war sogleich meine erste, ernstzunehmende Erfahrung mit dem Lötkolben und dem Seitenschneider. 'Mussten unseren Schaltkreis auch oftmals umlöten. Schaltkreise haben wir im Phsyikunterricht schon mehrmals "zusammengesteckt", jedoch habe ich trotz Interesse kaum etwas dabei gelernt, da unser Physiklehrer nicht unbedingt der Beste war.. Aus dem was ihr in meiner Abwesenheit geschrieben habt, habe ich entnommen, dass PIC's (+PICkit), der ATmega und auch der Arduino für meine Zwecke geeignet wäre. An diesem Punkt schonmal Danke an die vielen Antworten! Aufgrund der vielen Fachbegriffe musste ich oft im Netz über deren Bedeutung nachlesen, was mein Verständnis für diesen Themanbereich immens erweitert hat!
Tom M. schrieb: > Würde spontan sagen, dass ich dazu einen Quearz mit 1 Hz Frequenz nutzen > werde. Wenn du mit "Quearz" Quarz meinst, dann gibt es so etwas nicht. Die 1Hz Taktquelle ist also noch gar nicht vorhanden? Dann würde ich einen Uhrenquarz (2^15Hz = 32.678Hz) an den Oszillator des µCs hängen. Das würde dann so wie im Anhang aussehen. Der Code müsste dann aber anders aussehen…
Hallo ich bin derzeit immer noch auf der Suche nach einem passendem µC für meine Binäruhr und seh bei den ganze PICs & Co einfach nicht durch. Ich habe keine Lust ewig lange µC-Listen mit Betracht auf Vor- und Nachteilen, von denen ich keine Ahnung habe, durchzuforsten, daher bin ich wieder Faul und frage in die Runde, was Ihr mir empfehlen könnt. Kurzfassung sowie Kriterien: - ich benötige einen Mikrokontroller sowie + Programmer. - µC sollte wiederbeschreibbar/korrigierbar sein (?) - Programmiersprache ist egal, da ich noch kein Programm habe (hab kleine Kenntnisse von Java, hab aber kein Problem mit einer anderen Sprache) (- einsteigerfreudlich) - halbwegs preisgünstig zusätzlich würde ich mich über - einen konkreten (seriösen) Kauflink - Software zum Beschreiben des µC - Binäruhrprogramm freuen MfG
Tom M. schrieb: > - ich benötige einen Mikrokontroller sowie + Programmer. > - µC sollte wiederbeschreibbar/korrigierbar sein (?) > - Programmiersprache ist egal, da ich noch kein Programm habe (hab > kleine Kenntnisse von Java, hab aber kein Problem mit einer anderen > Sprache) > (- einsteigerfreudlich) > - halbwegs preisgünstig Der PIC18F25k22 + PICkit3 ist für dein Projekt geeignet sein, Programmiersprache C oder PIC-ASM. Möglicher Schaltplan: https://www.mikrocontroller.net/attachment/preview/214613/page_snapshots/001.png Mögliche Bezugsquellen: - microchipDIRECT - Reichelt - TME -Conrad > - Software zum Beschreiben des µC MPLAB X IDE + XC8 Compiler
:
Bearbeitet durch User
Tom M. schrieb: > - ich benötige einen Mikrokontroller sowie + Programmer. > - µC sollte wiederbeschreibbar/korrigierbar sein (?) > - Programmiersprache ist egal, da ich noch kein Programm habe (hab > kleine Kenntnisse von Java, hab aber kein Problem mit einer anderen > Sprache) > (- einsteigerfreudlich) - halbwegs preisgünstig Probiers mit einem Arduino... Aber verwende nicht die Funktion delay(). Sondern machs gleich richtig mir millis()...
Och, für eine Uhr? ATtiny13 - klein und billig. Mit AVR-GCC und Eclipse (grad gesehen, gibt's hier sogar eine Anleitung: http://www.mikrocontroller.net/articles/AVR_Eclipse ) hervorragend zu programmieren. Dazu einen USBasp für wenig Geld. Für mehr Ausgänge dann vielleicht ein paar 10-Cent-Bausteine Marke 74HC595, mit 3 Pins anzusteuern. Bleiben Sogar noch 2 für I2C mit RTC-IC übrig. Mit nur einem Timer sogar etwas sportlich und ein wenig Gedanken nötig, wie man die Zeit vom RTC-IC abholt und die Ausgabe dann regelt - _delay_ms() und so etwas fällt damit ja aus. 10 ATtiny13 DIP-8: http://www.ebay.de/itm/161001100561 - 4,40 Eur 10 74HC959: http://www.ebay.de/itm/300665865738 - 1,48 Eur DS3231 I2C RTC: http://www.ebay.de/itm/400503978923 - 1,44 Eur (schön präzises Ding laut Werbe-Datenblatt. Meines dürfte auch bald ankommen.) USBASP: http://www.ebay.de/itm/261495070781 - 2,29 Eur Dazu vielleicht noch ein paar Pfostenleisten und Lochraster-Platinchen, um sich Adapter zu basteln. Da ist man sehr billig und angemessen dabei. Der Lern-Umgehungs-Wünsche bezüglich fertigen Programms ignoriere ich an dieser Stelle mal.
:
Bearbeitet durch User
Ich würde auch MSP430 Launchpad oder Arduino empfehlen. Beides hat Vor- und Nachteile. Das Launchpad bringt gleich den Uhrenquarz mit (was sicherlich nicht ausschlaggebend ist) und lässt sich auch ganz einfach als eigenständiger Programmer verwenden. Um den MSP430 dann ohne Launchpad als eigene Schaltung zum laufen zu bringen, braucht es nur einen Kondensator zwischen VCC und GND und einen Pullup-Widerstand an Reset. Leider reichen die Portpins nicht für die Uhr und du müsstest auf Schieberegister ausweichen. Der Arduino kann über den Bootloader programmiert werden, und wenn du ein Modell mit DIP-Version des uC nimmst, kannst du den auch in eine eigene Schaltung einbauen. Wenn du dir allerdings den Bootloader zerschießt oder dich durch setzen der falschen Fuses aussperrst, kommst du ohne separaten (HV-) Programmer nicht mehr weiter. Die IDE ist für beide kostenlos und Programmier-Beispiele gibt es für beide auch zuhauf im Netz.
Tom M. schrieb: > - ich benötige einen Mikrokontroller sowie + Programmer. Z.B. AT89C51RB2 http://www.csd-electronics.de/200/cgi-bin/shop.dll?SESSIONID=0859534265007824&AnbieterID=2 Programmer braucht man nicht, nur einen MAX202 zum Anschluß an die RS-232 des PC oder des USB-RS232 Wandlers. Schaltplan: Beitrag "8051 Entwicklungsboard" Tom M. schrieb: > - Programmiersprache ist egal Assembler oder C: http://www.wickenhaeuser.de/ Tom M. schrieb: > - Software zum Beschreiben des µC Atmel Flip: http://www.atmel.com/tools/flip.aspx
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.