2009-08-29 3 views
10

Als ein Hobby-Projekt, um mich aus Schwierigkeiten zu halten, würde ich gerne ein kleines Programmier-Timer-Gerät bauen. Es wird grundsätzlich ein Programm akzeptieren, das eine Liste von Zeiten ist und dann von jedem Mal herunter zählt.Welchen Mikrocontroller (und andere Komponenten) brauche ich, um ein Timer-Gerät zu erstellen?

Ich möchte einen C oder Java Mikrocontroller verwenden. Ich habe BASIC in der Vergangenheit benutzt, um einen kleinen autonomen Roboter zu machen, also möchte ich dieses Mal etwas anderes.

Welchen Mikrocontroller und welches Display würden Sie empfehlen? Ich versuche, es einfach zu halten, also würde das Programm über Computer in den Speicher geladen werden (seriell ist ok, aber USB würde es einfacher machen)

+0

Wie geben Sie die Liste ein? Serielle Schnittstelle? Speichergerät? Hardcodierung? Nummernblock? –

+0

Speicher, ich habe die Frage aktualisiert – Bob

+0

hinzugefügt mehr Infos zur Antwort –

Antwort

10

Verwenden Sie einfach einen PIC wie 16F84 oder 16F877 dafür. Es ist mehr als genug.

Als LCD ein 16 x 2 LCD verwenden. Es ist einfach zu bedienen + wird Ihrem Projekt einen schönen Look verleihen.

LCD

Die Sprache ist keine Frage. Sie können PIC C, Micro C oder etwas, das Sie mögen, verwenden. Die LCD-Schnittstelle ist sehr einfach zu bedienen.

Als andere Komponenten benötigen Sie nur den Kristall und 2 Kondensatoren als Oszillator + Pull-up-Widerstand. Der Rest der Komponenten hängt von der Eingabemethode ab, mit der Sie die Zeiten festlegen.

Wenn Sie einen Computer zum Laden der Liste verwenden, benötigen Sie eine zusätzliche Schaltung, um die Protokolle zu ändern. Verwenden Sie dazu MAX 232. Wenn Sie USB verwenden möchten, müssen Sie einen PIC mit USB-Unterstützung verwenden. (18F-Serie)

alt text http://sodoityourself.com/wp-content/uploads/2007/02/circuit_232.jpg

Dies ist ein Satz von nice tutorials Sie verwenden können. Sie können die Produkte auch von ihnen kaufen. Ich habe einmal von ihnen gekauft.

+1

Vielen Dank für die Reihe von Tutorials, große Ressource! – Bob

+0

Ein USB-zu-UART-Adapter könnte stattdessen verwendet werden, wodurch die Notwendigkeit eines MAX232 entfällt; Siehe meine Antwort unten. –

+0

Warum gibt es so viele Antworten, die PIC befürworten und nicht einmal AVR erwähnen (die in Bezug auf die Frage ziemlich ähnlich sind)? Ist das wie eine Religion? – ziggystar

2

Es gibt mehrere Möglichkeiten, dies zu tun, und es gibt viele Informationen im Netz. Wenn Sie Mikrocontroller verwenden, müssen Sie möglicherweise in einige Programmiergeräte für sie investieren. Das kostet dich allerdings nicht viel.

Der einfachste Weg ist die Sinuswelle aus dem Stromnetz zu verwenden. In Europa hat der Wechselstrom eine Frequenz von 50 Hz, und Sie können dies als Grundlage für Ihr Taktsignal verwenden.

Ich habe Atmels ATtiny und ATmega verwendet, die sich hervorragend für die Programmierung einfacher und fortgeschrittener Projekte eignen. Sie können es mit C oder Assembly programmieren, es gibt viele großartige Projekte dafür im Netz und die verfügbaren Programmierer sind sehr billig.

Hier ist ein project Ich fand von Googling AVR 7 segment clock.

+0

Kann die Netzfrequenz als Hochsicherheits-Oszillator betrachtet werden? Ich glaube nicht .. :) –

+2

Ja kann es. Ihr Fernsehgerät verwendet die Wechselstromfrequenz, um die Zeit zu halten (weshalb Amerika 60-Hz-Fernseher und Europa 50-Hz-Fernseher hat). http://leapsecond.com/pages/mains/ – Marius

+0

Danke ... :) Eine neue Sache für mich .. –

1

Eine zweite Stimme für PIC. Außerdem empfehle ich das Magazin Circuit Cellar Ink. Einige technische Buchhandlungen tragen es, oder Sie können abonnieren: http://www.circellar.com/

5

Ich würde mit dem MSP430 gehen. Ein ez430 ist 20 $ und Sie können sie bei Digikey oder von Ti direkt, dann Sätze von 3 Mikrocontroller Boards für $ 10 danach bekommen. llvm und gcc (und binutils) Compiler-Unterstützung. Super einfach zu programmieren, extrem klein und extrem leise.

+0

Ich habe einen Stapelaustausch-Vorschlag für das eZ430-Chronos Kit erstellt: http://area51.stackexchange.com/proposals/13122/ti-ez430-chronos-development-tool?referrer= YppEiivQP8lCxT7Iq4t4JA2 – lImbus

+0

www.ti.com/launchpadwiki, Sie können ein MSP430-Kit für 4,30 $ erhalten –

4

Ich stimme den anderen Antworten über die Verwendung eines PIC zu.

Die PIC16F Familie tut C-Compiler zur Verfügung haben, aber es ist nicht ideal für C-Code geeignet ist. Wenn Leistung ein Problem ist, wäre die 18F-Familie besser.

Beachten Sie auch, dass einige PICs internen RC-Oszillatoren. Diese sind nicht so genau wie externe Kristalle, aber wenn das egal ist, dann ist es eine Komponente weniger (oder drei mit seinen Kondensatoren), um auf Ihrem Board zu setzen.

Microchip's ICD PIC-Programmiergerät (zum Herunterladen und Debuggen Ihrer PIC-Software) wird an den USB-Anschluss des PCs angeschlossen und über einen RJ-11-Anschluss mit dem Mikrocontroller verbunden.

Wenn Sie möchten, dass die Software auf dem Mikrocontroller Daten an den PC sendet (z. B. um Nachrichten in HyperTerminal zu drucken), können Sie einen USB zu RS232/TTL-Konverter verwenden. Ein Ende geht in die USB-Buchse Ihres PCs und erscheint als normale serielle Schnittstelle. der andere kommt auf 5 V- oder 3,3 V-Signale, die direkt an den UART Ihres Prozessors angeschlossen werden können, ohne dass eine Pegelverschiebung erforderlich ist.

haben wir TTL-232R-3V3 von FDTI Chip verwendet, die sich perfekt für diese Art von Anwendung funktioniert.

5

Es gibt viele Möglichkeiten, dies zu tun, und eine Reihe von Leuten hat bereits ziemlich gute Vorschläge AVR oder PIC sind gute Ausgangspunkte für einen Mikrocontroller gegeben mit, dass die Arbeit nicht zu viel verlangt im Weg komplizierten Setup (Hardware & Software) oder Kosten (diese Mikros sind sehr billig). Ehrlich gesagt bin ich etwas überrascht, dass hier noch niemand Arduino erwähnt hat, was den Vorteil hat, ziemlich einfach zu sein mit dem Start, bietet eine USB-Verbindung (USB-> Seriell, wirklich), und wenn Sie nicht mögen Auf der Platine, an die die ATMega MCU angeschlossen ist, können Sie sie später anschließen, wo immer Sie möchten. Während die mitgelieferte Programmierumgebung einige Tools zur Verfügung stellt, mit denen Sie Dinge leicht protestieren können, können Sie die Register auf dem Gerät optimieren und C-Code schreiben, den Sie eventuell ausführen möchten.

Wie für eine LCD-Display zu verwenden, würde ich die Suche nach etwas empfehlen, die entweder auf einer HD44780 basierten emuliert oder das Verhalten eines. Diese verwenden normalerweise eine Reihe von parallelen Zeilen, um mit dem Display zu sprechen, aber es gibt Tonnencodebeispiele für die Verbindung mit diesen. In Arduino Fall finden Sie Beispiele für diese Art von Anzeige, und viele andere, auf dem Arduino Playground hier: http://www.arduino.cc/playground/Code/LCD

Soweit eine Uhr betroffen ist, können Sie die eingebaute Uhr verwenden, die viele 8-Bit Mikros in diesen Tagen bieten, obwohl sie nicht immer in Bezug auf Präzision ideal sind. Sie können ein Beispiel für Arduino finden, wenn Sie so etwas tun: http://www.arduino.cc/playground/Code/DateTime. Wenn Sie etwas genaueres möchten, können Sie eine DS1307 (Arduino-Beispiel: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057/0) bekommen.

meine ich nicht unbedingt Sie zu einem Arduino rammen, da es eine sehr große Anzahl von Möglichkeiten gibt, diese Art der Sache zu tun. In letzter Zeit habe ich mit 32-Bit-ARM-Mikros gearbeitet (mach diese Route nicht zuerst, viel steilere Lernkurve, aber sie haben viele Vorteile) und ich könnte etwas in diesem Ökosystem in diesen Tagen verwenden, aber das Arduino ist einfach zu empfehlen Weil es relativ preiswert ist, gibt es eine große Gemeinschaft von Leuten, die es benutzen, und die Chancen stehen gut, dass Sie zumindest für einen Teil von dem, was Sie versuchen, ein Codebeispiel finden. Wenn Sie etwas benötigen, das mehr Leistung, Konfigurationsoptionen oder RAM bietet, gibt es Optionen.

Hier sind ein paar Orte, wo man einige nette Hardware (Arduino bezogene und andere) für Projekte wie die Sie beschreiben, finden Sie unter:

Es gibt sicherlich Tonnen mehr, obwohl :-)

0

PIC-Serie wird gut sein, da Sie einen Timer erstellen, empfehle ich C oder Assembly (Assembly ist gut), und MPLAB als Entwicklungsumgebung verwenden. Sie können überprüfen, wie genau Ihr Timer mit "Stoppuhr" in MPLAB ist. Auch der PIC16F877 verfügt über einen eingebauten seriellen Hardware-Port. Auch PIC16F628 hat einen eingebauten seriellen Hardware-Port. Aber PIC16F877 hat mehr Ports. Für genauere Timer wird die Verwendung von Oszillatoren mit höherer Frequenz empfohlen.

Verwandte Themen