Шаги, чтобы светодиод мигал из программы C/С++?
Каковы наиболее простые шаги для создания небольшой схемы со светодиодной вспышкой из программы C/С++?
Я предпочел бы наименьшее количество зависимостей и пакетов.
- В каком порту я должен что-то подключить?
- Какой компилятор я использовал?
- Как отправить данные на этот порт?
- Нужен ли мне микропроцессор? Если нет, я не хочу использовать его для этого простого проекта.
EDIT: Заинтересованы в каких-либо конкретных решениях для ОС.
Ответы
Ответ 1
Вот учебник по этому вопросу с параллельный порт.
Хотя я бы рекомендовал Arduino, который можно купить очень дешево и будет включать только следующий код:
/* Blinking LED
* ------------
*
* turns on and off a light emitting diode(LED) connected to a digital
* pin, in intervals of 2 seconds. Ideally we use pin 13 on the Arduino
* board because it has a resistor attached to it, needing only an LED
*
* Created 1 June 2005
* copyleft 2005 DojoDave <http://www.0j0.org>
* http://arduino.berlios.de
*
* based on an orginal by H. Barragan for the Wiring i/o board
*/
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
![alt text]()
http://www.arduino.cc/en/Tutorial/BlinkingLED
Ответ 2
Какой порт? Параллельный порт - мой любимый выбор, так как он выводит + 5В (логический уровень TTL) и очень прост в программировании. Большинство параллельных портов имеют достаточную мощность для управления светодиодом. Важно помнить, что компьютерные порты в целом предназначены только для вывода сигнальных напряжений, а не для создания достаточного тока для питания большинства устройств.
Какой компилятор? Не имеет значения. Тем не менее, этот вид аппаратного взлома является более увлекательным и легким в Linux, поэтому GCC - хороший выбор.
Как отправить данные? Зависит от порта и операционной системы. USB ужасно сложный для простого проекта, поэтому забудьте об этом. Последовательный и параллельный порты могут управляться с помощью различных интерфейсов. Я предпочитаю использовать системный вызов ioctl()
под Linux для непосредственного управления контактами параллельного порта. Здесь информация о том, как это сделать: http://www.linuxfocus.org/common/src/article205/ppdev.html
Нужен ли мне микропроцессор? Нет, вам не нужен микропроцессор на внешнем устройстве (очевидно, ваш компьютер имеет микропроцессор: -P). Если вы используете параллельные или последовательные порты, вы можете просто использовать светодиод и резистор или два, а также необходимые части для непосредственного подключения светодиода.
(Также: книга драйверов устройств Linux, доступная бесплатно в Интернете, содержит информацию о взаимодействии простых электронных устройств с параллельными портами и написании драйверов ядра для них.)
РЕДАКТИРОВАТЬ: В этой теме, похоже, есть большая путаница в отношении того, что означает OP: "Нужен ли мне микропроцессор?" Символически, только параллельный порт может управлять светодиодом на основе программного обеспечения на компьютере. Микропроцессор не требуется в устройстве. Однако, если вы хотите, чтобы устройство могло управлять собой без подключения к компьютеру, требуется микропроцессор или другая цифровая логика .
Ответ 3
Если вы хотите мигать светодиодом без микропроцессора (что не означает C/С++), простая схема с использованием таймера 555 таймера будет делать трюк. Это обычные проекты в книгах или наборах для начинающих любителей книг, потому что они очень просты, и вы можете получить детали в любом месте Radio Shack:
Если вы хотите сделать это в программном обеспечении, как Vlion упоминает, все зависит от используемого оборудования и дизайна схемы, которая подключает светодиод.
Если вы хотите попробовать что-то на своем ПК, вот статья о том, как мигать светодиоды, подключенные к контактам на параллельном порту ПК:
Ответ 4
Вы можете попытаться поставить светодиод и резистор 300 Ом на передачу последовательного порта (контакт 3) на землю (контакт 5). Затем отправьте данные, чтобы включить их.
В последовательном порту может быть только источник 10 мА.
Удачи.
Ответ 5
для быстрых и грязных операций у вас есть 2 простых варианта: последовательный или параллельный порт.
Последовательный порт проще, но ограничен количеством светодиодов.
Чтобы подключить светодиоды, вам нужен разъем оболочки (DB25/DB9) правильного пола, светодиод и резистор. Вам придется искать значение для своего резистора самостоятельно.
Последовательный порт имеет управляющие сигналы, которые находятся под контролем программиста. Это простой вопрос вывода правильных бит в регистр MCR (после открытия последовательного порта).
Параллельный порт немного сложнее, потому что есть немного больше рукопожатия, но обычно это тот же принцип записи в регистр.
Вам может понадобиться бороться с вашей ОС, чтобы получить контроль над портом.
Использование линии Tx несколько сложнее, так как сигнал выходит из последовательного битового потока данных, записанных в регистр передачи. Я бы придерживался сигналов CTS и DSR.
Для быстрой и грязной отладки я только что записал в регистры и наблюдал, как модем загорается.
Ответ 6
Это также зависит от ОС. В Linux вы можете подключить светодиод непосредственно к параллельному порту (с соответствующим токоограничивающим резистором, конечно) и просто использовать функцию C "outb()" для включения и выключения.
В Windows это намного сложнее, потому что ОС не позволяет пользовательским приложениям напрямую разговаривать с портами.
Ответ 7
Самый простой порт для этого будет серийным или параллельным. Всегда помните о том, чтобы последовательно поставить резистор со светодиодом или вы сожжете его.