Какой микроконтроллер (и другие компоненты) мне понадобится для создания устройства таймера? - PullRequest
10 голосов
/ 29 августа 2009

В качестве хобби-проекта, чтобы уберечь себя от неприятностей, я хотел бы создать небольшое устройство для программирования таймера. Он в основном примет программу, которая является списком раз, а затем будет отсчитывать каждый раз.

Я бы хотел использовать микроконтроллер C или Java. В прошлом я использовал BASIC для создания маленького автономного робота, поэтому на этот раз мне бы хотелось чего-то другого.

Какой микроконтроллер и дисплей вы бы порекомендовали? Я хочу, чтобы все было просто, чтобы программа загружалась в память через компьютер (с последовательным интерфейсом все в порядке, но с USB все было бы проще)

Ответы [ 7 ]

10 голосов
/ 29 августа 2009

Просто используйте для этого PIC, например 16F84 или 16F877. Этого более чем достаточно.

В качестве ЖК-дисплея используйте ЖК-дисплей 16 x 2. Он прост в использовании + придаст красивый вид вашему проекту.

LCD

Язык не имеет значения. Вы можете использовать PIC C, Micro C или любую другую вещь, которая вам нравится. Интерфейс ЖК-дисплея очень прост в управлении.

В качестве других компонентов вам просто понадобятся кристалл и 2 конденсатора в качестве генератора + резистор подтягивания. Остальные компоненты зависят от метода ввода, который вы собираетесь использовать для установки времени.

Если вы используете компьютер для загрузки списка, вам потребуется дополнительная схема для изменения протоколов. Используйте MAX 232, чтобы сделать это. Если вы хотите использовать USB, вам нужно пойти дальше и использовать PIC с поддержкой USB. (Серия 18F)

alt text
(источник: sodoityourself.com )

Это набор хороших учебников , которые вы можете использовать. Вы также можете приобрести продукты у них. Я купил у них один раз.

5 голосов
/ 31 августа 2009

Есть много способов сделать это, и многие люди уже дали довольно хорошие предложения AVR или PIC являются хорошими отправными точками для работы микроконтроллера, который не требует слишком большого количества сложных настроек (аппаратное обеспечение). и программное обеспечение) или расходы (эти микро очень дешево). Честно говоря, я несколько удивлен тем, что никто еще не упомянул здесь Arduino , который имеет преимущество в том, что с ним довольно легко начать работу, обеспечивает USB-соединение (USB-> Serial, действительно), и если вам не нравится плата, к которой подключен микроконтроллер ATMega, вы можете подключить ее позже, где бы вы ни захотели. Кроме того, хотя предоставляемая среда программирования предоставляет некоторые инструменты высокого уровня для простого создания прототипов, вы все равно можете настраивать регистры на устройстве и писать любой код C, который вы можете захотеть запустить на нем.

Что касается использования ЖК-дисплея, я бы порекомендовал искать все, что либо основано на HD44780, либо имитирует его поведение. Обычно они используют набор параллельных линий для общения с дисплеем, но существует множество примеров кода для взаимодействия с ними. В случае Arduino вы можете найти примеры для этого типа дисплея и многих других на игровой площадке Arduino здесь: http://www.arduino.cc/playground/Code/LCD

Что касается часов, вы можете использовать встроенные часы, которые сегодня предоставляют многие 8-битные микро, хотя они не всегда идеальны с точки зрения точности. Пример для Arduino вы можете найти здесь: http://www.arduino.cc/playground/Code/DateTime. Если вы хотите что-то более точное, вы можете получить DS1307 (пример Arduino: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057/0).

Я не обязательно хотел бы тащить вас к Arduino, поскольку существует множество способов сделать подобные вещи. В последнее время я работаю с 32-битными ARM-микросхемами (сначала не делайте этот маршрут, гораздо более крутая кривая обучения, но у них много преимуществ), и в эти дни я мог бы что-то использовать в этой экосистеме, но Arduino легко рекомендовать потому что это относительно недорого, существует большое сообщество людей, использующих его, и есть вероятность, что вы сможете найти пример кода, по крайней мере, для части того, что вы пытаетесь сделать. Когда вам нужно что-то более мощное, параметры конфигурации или оперативной памяти, есть варианты.

Вот несколько мест, где вы можете найти некоторые аккуратные аппаратные средства (связанные с Arduino и другие) для проектов, подобных описываемому вами:

Есть, конечно, еще тонны: -)

5 голосов
/ 29 августа 2009

Я бы пошел с msp430. Ez430 стоит 20 долларов, и вы можете получить их у digikey или напрямую, а затем установить 3 платы микроконтроллеров за 10 долларов. Поддержка компилятора llvm и gcc (и binutils). Супер простой в программировании, очень маленький и очень низкий уровень энергопотребления.

4 голосов
/ 30 августа 2009

Я согласен с другими ответами об использовании PIC.

В семействе PIC16F есть доступные C-компиляторы, хотя он не идеально подходит для C-кода. Если производительность является проблемой, семья 18F будет лучше.

Обратите внимание, что некоторые PIC имеют внутренние RC-генераторы. Они не так точны, как внешние кристаллы, но если это не имеет значения, тогда их на плату нужно разместить на один компонент меньше (или три с конденсаторами).

Микрочип ICD Программатор PIC (для загрузки и отладки программного обеспечения PIC) подключается к USB-порту ПК и подключается к микроконтроллеру через разъем RJ-11.

Отдельно, если вы хотите, чтобы программное обеспечение на микроконтроллере отправляло данные на ПК (например, для печати сообщений в HyperTerminal), вы можете использовать конвертер USB в RS232 / TTL. Один конец входит в USB-разъем вашего ПК и выглядит как обычный последовательный порт; другой поступает на сигналы 5 В или 3,3 В, которые могут быть подключены непосредственно к UART вашего процессора без смещения уровня.

Мы использовали TTL-232R-3V3 от FDTI Chip, который идеально подходит для такого рода приложений.

2 голосов
/ 29 августа 2009

Есть несколько способов сделать это, и в сети много информации. Если вы собираетесь использовать микроконтроллеры, то вам, возможно, придется инвестировать в какое-то программное обеспечение для них. Это не будет стоить вам много.

Простейшим способом является использование синусоидальной волны от электросети. В Европе сеть переменного тока имеет частоту 50 Гц, и вы можете использовать ее в качестве основы для тактового сигнала.

Я использовал ATtiny и ATmega от Atmel, которые отлично подходят для программирования простых и сложных проектов. Вы можете запрограммировать его с помощью C или Assembly, в сети есть множество отличных проектов, а программисты доступны очень дешево.

Вот проект Я нашел Поиск в Google AVR 7-сегментных часов .

1 голос
/ 29 августа 2009

Второй голос за ПОС. Также рекомендую журнал Circuit Cellar Ink. Некоторые технические книжные магазины несут его, или вы можете подписаться: http://www.circellar.com/

0 голосов
/ 25 сентября 2012

Серия PIC подойдет, так как вы создаете таймер, я рекомендую C или Assembly (сборка хорошая) и используете MPLAB в качестве среды разработки. Вы можете проверить точность своего таймера с помощью «Секундомера» в MPLAB. Также PIC16F877 имеет встроенный аппаратный последовательный порт. Также PIC16F628 имеет встроенный аппаратный последовательный порт. Но у PIC16F877 больше портов. Для более точных таймеров рекомендуется использовать высокочастотные генераторы.

...