Какие самые простые шаги сделать небольшую схему со светодиодной вспышкой из программы C / C++?
Я бы предпочел наименьшее количество необходимых зависимостей и пакетов.
Обновлено: Заинтересованы в любых решениях для ОС.





Это тоже зависит от ОС. В Linux вы можете подключить светодиод непосредственно к параллельному порту (конечно, с подходящим токоограничивающим резистором) и просто использовать функцию C «outb ()» для его включения и выключения.
В Windows это намного сложнее, потому что ОС не позволяет пользовательским приложениям напрямую взаимодействовать с портами.
Вы можете попробовать поставить светодиод и резистор 300 Ом на передачу последовательного порта (контакт 3) на землю (контакт 5). Затем отправьте данные, чтобы включить его.
Последовательный порт, вероятно, может подавать только 10 мА.
Удачи.
Самый простой порт для этого - последовательный или параллельный. Всегда не забывайте ставить резистор последовательно со светодиодом, иначе вы его сожжете.
Вот учебник, как это сделать с параллельный порт.
Хотя я бы порекомендовал Ардуино, который можно купить очень дешево и включать только следующий код:
/* 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
}

http://www.arduino.cc/en/Tutorial/BlinkingLED
Хорошие ссылки! Arduino выглядит круто. Я спаял свои собственные макетные платы Atmel / PIC, и это своего рода боль. Но плата на основе микроконтроллера - это перебор, если OP действительно Только хочет подключить несколько светодиодов!
Arduino - довольно фантастическое устройство, к тому же дешевое - 35 долларов. Но ссылка над моей Arduino упоминает ссылки на использование параллельного порта, что является очевидным и гораздо более дешевым решением.
Arduino определенно хорош.
@ Дэн ОП не сказал, что у них есть ПК. Вы могли бы сказать, что покупка ПК и установка операционной системы и компилятора излишни, если они просто хотят мигать светодиодом.
Какой порт? Параллельный порт - мой любимый выбор, поскольку он выдает + 5 В (логический уровень TTL) и очень прост в программировании. У большинства параллельных портов достаточно мощности для включения светодиода. Важно помнить, что порты компьютеров в целом предназначены только для вывода сигнальных напряжений, а не для выработки тока, достаточного для питания большинства устройств.
Какой компилятор? Неважно. Однако этот вид взлома оборудования более интересен и прост в Linux, поэтому GCC - хороший выбор.
Как отправить данные? Зависит от порта и операционной системы. USB ужасно сложен для простого проекта, так что забудьте об этом. Последовательными и параллельными портами можно управлять через множество различных интерфейсов. Я предпочитаю использовать системный вызов ioctl() под Linux для прямого управления выводами параллельного порта. Вот информация о том, как это сделать: http://www.linuxfocus.org/common/src/article205/ppdev.html
Мне нужен микропроцессор? Нет, вам не нужен микропроцессор во внешнем устройстве (очевидно, ваш компьютер имеет микропроцессор :-P). Если вы используете параллельный или последовательный порты, вы можете просто использовать светодиод и резистор или два, а также необходимые детали для прямого подключения светодиода.
(Также: Книга драйверов устройств Linux, доступный бесплатно в Интернете, содержит информацию о взаимодействии простых электронных устройств с параллельными портами и написании для них драйверов ядра.)
Обновлено: Похоже, в этой теме существует большая путаница относительно того, что означает OP, говоря: «Нужен ли мне микропроцессор?» Подчеркнем, что один только параллельный порт может управлять светодиодом на основе программного обеспечения в компьютере. В устройстве не требуется микропроцессор. Однако, если вы хотите, чтобы устройство могло управлять самим без подключения к компьютеру, потребуется микропроцессор или другая цифровая логика является.
для быстрых и грязных операций у вас есть 2 простых варианта: последовательный или параллельный порт. Последовательный порт проще, но количество светодиодов ограничено.
Для подключения светодиодов необходим коннектор (DB25 / DB9) правильного пола, светодиоды и резистор. Вам придется самостоятельно искать значение резистора.
Последовательный порт имеет сигналы потока управления, которые контролируются программистом. Это простой вопрос вывода правильных битов в регистр MCR (после открытия последовательного порта).
Параллельный порт немного сложнее, так как требуется немного больше квитирования, но, как правило, это тот же принцип записи в регистр.
Возможно, вам придется бороться с вашей ОС, чтобы получить контроль над портом.
Использование линии Tx несколько сложно, поскольку исходящий сигнал представляет собой последовательный поток битов данных, записанных в регистр передачи. Я бы придерживался сигналов CTS и DSR.
Для быстрой и грязной отладки я только что записал в регистры и посмотрел на индикаторы модема.
Я бы не согласился с последовательным и параллельным портом: вы можете просто использовать параллельный порт как необработанное устройство вывода TTL без квитирования или чего-то еще. И он имеет преимущество в виде большего количества доступных контактов и уровней TTL (+ 5V / 0V), а не уровней RS-232 последовательного порта (нестандартные, но часто + -12V).
Если вы хотите мигать светодиодом без микропроцессора (что подразумевает отсутствие C / C++), простая схема с использованием микросхемы таймера 555 сделает свое дело. Это обычные проекты в книгах или наборах по электронике для начинающих любителей, потому что они очень простые, и вы можете получить детали в любом месте Radio Shack:
Если вы хотите сделать это программно, как Влион упоминает, все зависит от используемого оборудования и конструкции схемы, которая подключает светодиод.
Если вы хотите попробовать что-то на своем ПК, вот статья о том, как мигать светодиоды, подключенные к контактам параллельного порта ПК:
@Vlion, Linux не имеет системных вызовов, специфичных для параллельного порта. Но у него есть универсальный системный вызов ioctl (). И есть ioctl, специально предназначенные для работы с параллельными портами: linuxfocus.org/common/src/article205/ppdev.html