2009-08-29 37 views
10

Come progetto per hobby per tenermi fuori dai guai, mi piacerebbe costruire un piccolo programmatore programmatore. Fondamentalmente accetterà un programma che è un elenco di volte e poi eseguirà il conto alla rovescia ogni volta.Quale microcontrollore (e altri componenti) avrei bisogno di creare un dispositivo timer?

Mi piacerebbe utilizzare un microcontrollore C o Java. In passato ho usato BASIC per creare un robot autonomo, quindi questa volta mi piacerebbe qualcosa di diverso.

Quale microcontrollore e display consiglieresti? Sto cercando di mantenerlo semplice, quindi il programma verrà caricato in memoria tramite computer (seriale è ok, ma USB renderebbe più semplice)

+0

Come si inserisce la lista? Porta seriale? Dispositivo di memoria? Brutalmente? Tastierino numerico? –

+0

Memoria, Ho aggiornato la domanda – Bob

+0

aggiunto ulteriori informazioni alla risposta –

risposta

10

Basta usare un PIC come 16F84 o 16F877 per questo. È più che sufficiente.

Come LCD utilizzare un LCD 16 x 2. È facile da usare + darà un aspetto gradevole al tuo progetto.

LCD

La lingua non è un problema. Puoi usare PIC C, Micro C o qualsiasi cosa ti piaccia. L'interfaccia LCD è veramente facile da guidare.

Come altri componenti avrete solo bisogno del cristallo e di 2 condensatori come oscillatore + resistore di pull up. Il resto dei componenti dipende dal metodo di input che si intende utilizzare per impostare le ore.

Se si utilizza un computer per caricare l'elenco, è necessario un circuito aggiuntivo per modificare i protocolli. Usa MAX 232 per farlo. Se si desidera utilizzare l'USB, è necessario andare avanti e utilizzare un PIC con supporto USB. (Serie 18F)

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

Questo è un insieme di nice tutorials è possibile utilizzare. Puoi anche acquistare i prodotti da loro. Ho acquistato una volta da loro.

+1

Grazie per l'insieme di tutorial, grande risorsa! – Bob

+0

È possibile utilizzare invece un adattatore USB-to-UART, eliminando la necessità di un MAX232; vedi la mia risposta qui sotto. –

+0

Perché ci sono così tante risposte che sostengono il PIC e nemmeno menzionano l'AVR (che sono abbastanza simili riguardo alla domanda)? È come una religione? – ziggystar

2

Ci sono diversi modi per farlo e ci sono molte informazioni sulla rete. Se si utilizzano microcontrollori, potrebbe essere necessario investire in alcune apparecchiature di programmazione. Questo non ti costerà molto però.

Il modo più semplice è utilizzare l'onda sinusoidale dalla rete elettrica. In Europa, l'alimentazione CA ha una frequenza di 50 Hz e puoi utilizzarla come base per il segnale del tuo orologio.

Ho usato ATtiny e ATmega di Atmel, che sono ottimi per la programmazione di progetti semplici e avanzati. Puoi programmarlo con C o Assembly, ci sono molti grandi progetti per questo in rete, ei programmatori disponibili sono molto economici.

Ecco un project trovato in Googling AVR 7 segment clock.

+0

La frequenza di alimentazione CA può essere considerata un oscillatore ad alta sicurezza? Io non la penso così .. :) –

+2

Sì, può. La TV utilizza la frequenza AC per mantenere il tempo (motivo per cui l'America ha TV a 60 Hz e l'Europa ha TV a 50 Hz). http://leapsecond.com/pages/mains/ – Marius

+0

Grazie ... :) Una nuova cosa per me .. –

1

Un secondo voto per PIC. Inoltre, raccomando la rivista Circuit Cellar Ink. Alcuni bookstore tecnici lo portano, oppure puoi iscriverti: http://www.circellar.com/

5

Vorrei andare con msp430. Un ez430 costa $ 20 e puoi ottenerli a digikey o direttamente da ti, quindi set di 3 schede per microcontrollori per $ 10 dopo. Supporto del compilatore llvm e gcc (e binutils). Super semplice da programmare, estremamente piccola ed estremamente bassa potenza.

+0

Ho creato una proposta di stackexchange per il kit eZ430-Chronos: http://area51.stackexchange.com/proposals/13122/ti-ez430-chronos-development-tool?referrer= YppEIivQP8lCxT7Iq4t4JA2 – lImbus

+0

www.ti.com/launchpadwiki, è possibile ottenere un kit msp430 per $ 4,30 –

4

Sono d'accordo con le altre risposte sull'utilizzo di un PIC.

La famiglia PIC16F dispone di compilatori C, sebbene non sia adatto per il codice C. Se la prestazione è un problema, la famiglia 18F sarebbe migliore.

Nota anche che alcuni PIC hanno oscillatori RC interni. Questi non sono precisi come i cristalli esterni, ma se ciò non conta, allora è un componente in meno (o tre con i suoi condensatori) da mettere sulla tua tavola.

Microchip's ICD Il programmatore PIC (per il download e il debug del software PIC) si collega alla porta USB del PC e si collega al microcontrollore tramite un connettore RJ-11.

Separatamente, se si desidera che il software sul microcontrollore invii i dati al PC (ad esempio per stampare messaggi in HyperTerminal), è possibile utilizzare un convertitore da USB a RS232/TTL. Un'estremità va nella presa USB del PC e appare come una normale porta seriale; l'altro esce a 5 V o 3,3 V segnali che possono essere collegati direttamente al UART del processore, senza necessità di spostare il livello.

Abbiamo usato TTL-232R-3V3 da FDTI Chip, che funziona perfettamente per questo tipo di applicazione.

5

Ci sono molti modi per farlo, e un certo numero di persone ha già dato dei buoni consigli. AVR o PIC sono buoni punti di partenza per un microcontrollore con cui lavorare non richiede troppe complicazioni nell'installazione (hardware &) o spese (questi micros sono molto economici). Onestamente sono un po 'sorpresa che nessuno abbia menzionato lo Arduino qui, che ha il vantaggio di essere abbastanza facile da usare, fornisce una connessione USB (USB-> Seriale, davvero), e se non ti piace il scheda a cui è collegato l'MCU ATMega, è possibile collegarlo in un secondo momento ovunque lo si desideri. Inoltre, mentre l'ambiente di programmazione fornito fornisce alcuni strumenti di alto livello per proteggere facilmente le cose, sei ancora libero di modificare i registri sul dispositivo e scrivere qualsiasi codice C che potresti voler eseguire su di esso.

Per quanto riguarda un display LCD da utilizzare, è consigliabile cercare qualsiasi cosa sia basata su un HD44780 o che ne emuli il comportamento. Questi in genere usano un insieme di linee parallele per parlare con lo schermo, ma ci sono tonnellate di esempi di codice per l'interfacciamento con questi. Nel caso di Arduino, puoi trovare esempi per questo tipo di display, e molti altri, sul Arduino Playground qui: http://www.arduino.cc/playground/Code/LCD

Per quanto riguarda un orologio, puoi usare l'orologio incorporato che molti 8 bit micros in questi giorni forniscono, anche se non sono sempre ideali in termini di precisione. Puoi trovare un esempio per Arduino facendo questo tipo di cose qui: http://www.arduino.cc/playground/Code/DateTime. Se vuoi qualcosa che potrebbe essere un po 'più preciso puoi ottenere un DS1307 (esempio Arduino: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057/0).

Non voglio necessariamente dirvi verso un Arduino, dal momento che ci sono un gran numero di modi per fare questo genere di cose. Ultimamente ho lavorato con i micros ARM a 32-bit (non faccio prima quella rotta, ho una curva di apprendimento molto più ripida, ma hanno molti vantaggi) e potrei usare qualcosa in quell'ecosistema in questi giorni, ma l'Arduino è facile da consigliare perché è relativamente economico, c'è una grande comunità di persone che la usano e ci sono buone probabilità che tu possa trovare un esempio di codice per almeno una parte di ciò che stai cercando di fare. Quando hai bisogno di qualcosa che ha più potenza, opzioni di configurazione o RAM, ci sono opzioni là fuori.

Qui ci sono pochi posti dove si possono trovare alcuni hardware ordinata (Arduino-correlato e non) per progetti come quello che stai descrivendo:

Ce ne sono sicuramente di più, però :-)

0

Le serie PIC sono buone, poiché si sta creando un timer, si consiglia C o Assembly (l'assembly è buono) e si utilizza MPLAB come ambiente di sviluppo. È possibile verificare l'accuratezza del timer con "Cronometro" in MPLAB. Anche PIC16F877 ha una porta seriale hardware integrata. Anche PIC16F628 ha una porta seriale Hardware integrata. Ma PIC16F877 ha più porte. Per i timer più accurati, si consiglia di utilizzare oscillatori a frequenza più elevata.