programacion practicos para ejemplos codigos c++ c circuit

practicos - ¿Pasos para hacer que un LED parpadee desde un programa C/C++?



codigos para arduino uno (7)

¿Cuáles son los pasos más fáciles para hacer un pequeño circuito con un flash LED de un programa C / C ++?

Preferiría la menor cantidad de dependencias y paquetes necesarios.

  • ¿A qué puerto conectaría algo?
  • ¿Qué compilador usaría?
  • ¿Cómo envío datos a ese puerto?
  • ¿Necesito tener un microprocesador? Si no, no quiero usar uno para este proyecto simple.

EDITAR: interesado en cualquier solución específica del sistema operativo.


Podría tratar de poner un LED y una resistencia de 300 Ohm en la transmisión del puerto serie (pin 3) a tierra (pin 5). Luego envíe datos para activarlo.

El puerto serie probablemente solo puede obtener 10mA.

Buena suerte.


También depende del sistema operativo. En Linux, puede conectar un LED directamente al puerto paralelo (con una resistencia de limitación de corriente apropiada, por supuesto) y simplemente usar la función C "outb ()" para encenderlo y apagarlo.

En Windows, es mucho más complicado porque el sistema operativo no permite que las aplicaciones de usuario hablen directamente con los puertos.


para operaciones rápidas y sucias, tiene 2 opciones fáciles: puerto en serie o paralelo. El puerto serie es más fácil, pero está limitado en el número de LED.

Para conectar los LED, necesita un conector de shell (DB25 / DB9) del sexo correcto, los LED y una resistencia. Tendría que buscar el valor de su resistencia usted mismo.

El puerto serie tiene señales de flujo de control que están bajo el control del programador. Es una simple cuestión de enviar los bits correctos al registro MCR (después de abrir el puerto serie).

El puerto paralelo es un poco más difícil, ya que hay un poco más de apretón de manos que hacer, pero generalmente es el mismo principio de escribir en un registro.

Puede que tenga que luchar contra su sistema operativo para obtener el control del puerto.

El uso de la línea Tx es algo complejo, ya que la señal que sale es el flujo de bits en serie de los datos escritos en el registro de transmisión. Me quedaría con las señales CTS y DSR.

Para la depuración rápida y sucia, acabo de escribir en los registros y vi las luces del módem.


¿Qué puerto? El puerto paralelo es mi elección favorita ya que produce + 5V (nivel lógico TTL) y es muy fácil de programar. La mayoría de los puertos paralelos tienen suficiente potencia para conducir un LED. Es importante recordar que los puertos de computadora en general están diseñados para emitir solo voltajes de señalización, y no para producir suficiente corriente para alimentar la mayoría de los dispositivos.

¿Qué compilador? No importa Sin embargo, este tipo de piratería de hardware es más divertido y fácil en Linux, por lo que GCC es una buena opción.

¿Cómo envío datos? Depende del puerto y del sistema operativo. USB es espantosamente complicado para un proyecto simple, así que olvídalo. Los puertos seriales y paralelos se pueden controlar a través de una variedad de interfaces diferentes. Mi preferencia es usar la ioctl() sistema ioctl() bajo Linux para controlar directamente los pines del puerto paralelo. Aquí hay información sobre cómo hacer eso: http://www.linuxfocus.org/common/src/article205/ppdev.html

¿Necesito un microprocesador? No, no necesita un microprocesador en el dispositivo externo (obviamente su computadora tiene un microprocesador :-P). Si usa los puertos paralelo o serie, puede usar el LED y una o dos resistencias y las partes necesarias para conectar el LED directamente.

(También: el libro Controladores de dispositivo de Linux , disponible de forma gratuita en línea, tiene información sobre la conexión de dispositivos electrónicos simples a puertos paralelos y la escritura de controladores de núcleo para ellos).

EDITAR: Parece que hay una confusión masiva en este hilo acerca de lo que significa el OP, "¿Necesito un microprocesador?" Enfáticamente, el puerto paralelo solo puede conducir un LED basado en el software de la computadora . No se necesita un microprocesador en el dispositivo. Sin embargo, si desea que el dispositivo pueda controlarse sin estar conectado a la computadora , se requiere un microprocesador u otra lógica digital.


El puerto más fácil para hacer esto sería serial o paralelo. Recuerde siempre poner una resistencia en serie con el LED o la quemará.


Aquí hay un tutorial sobre cómo hacerlo con un puerto paralelo .

Aunque recomendaría un Arduino que se puede comprar a muy bajo costo y solo incluiría el siguiente código:

/* 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


Si desea parpadear un LED sin un microprocesador (lo que implica que no hay C / C ++), un simple circuito que utiliza un 555 IC del temporizador hará el truco. Estos son proyectos comunes en libros o kits de electrónica para principiantes aficionados porque son muy simples y puede obtener las piezas en cualquier tipo de lugar de Radio Shack:

Si quieres hacerlo en software, como menciona Vlion , todo depende del hardware que se use y del diseño del circuito que conecta el LED.

Si desea probar y perder algo con su PC, aquí hay un artículo sobre cómo hacer parpadear los LED que están conectados a los pines en el puerto paralelo de la PC: