programar programación programacion pic16f84a mplab microcontroladores microcontrolador lenguaje ejemplos desde curso compiler como cero c arduino microcontroller electronics

programación - programacion en pic c compiler ejemplos



¿Cómo comenzar a programar un microcontrolador? (14)

Bueno, el campo de los microcontroladores es bastante grande. Usted tiene varias marcas, cada una con una gama completa de controladores, con diversos grados de capacidad, complejidad y capacidad.

Dicho esto, la forma de comenzar con la mayoría de los microcontroladores es leyendo el manual del fabricante. A diferencia de la programación "normal", donde la mayoría de los programadores siguen estándares y reglas y mejores prácticas y marcos, etc., la programación de microcontroladores todavía se hace de manera similar a la programación a principios de los años ochenta: leyendo el manual de un controlador, reproduciendo ejemplos y extendiéndose desde allí.

Los manuals de Microchip, por ejemplo, son excelentes. También tienen una community muy buena y proporcionan algunas bibliotecas con funciones "estándar" que le gustaría usar (como matemática, E / S, hacer E / S en serie con dos pines, etc.). Muchas de las personas que trabajan con PIC son bastante abiertas y normalmente comparten su código fuente si creen que podría ser útil para otra persona.

Hay algunas opciones que debe tomar antes de comenzar. El primero es qué idioma vas a usar. Tienes tres opciones:

  1. Montaje: la mayoría de los fabricantes ofrecen kits de desarrollo gratuitos o bastante baratos para sus microcontroladores (MCU, por sus siglas en inglés). Esta es la opción más poderosa, y la que debe usar si se siente cómodo. También le enseñará mucho sobre computadoras en general.
  2. Algo más: si prefiere usar algo como C, tendrá que pagar bastante dinero por el compilador (aunque hay al menos una opción de código abierto para algunos de los dispositivos), y debe considerar el el código producido por los lenguajes de alto nivel normalmente requiere mucho espacio / memoria en el dispositivo. Además, dependiendo de la biblioteca estándar, de todos modos terminarás programando una buena cantidad de la funcionalidad.
  3. Lenguaje básico / similar a Pascal: algunos MCU vienen con un intérprete básico / similar a Pascal. Estos son excelentes para comenzar a hacer algunos proyectos de "juguetes", y tener la sensación de cómo funcionan estas cosas.

Luego, debe decidir qué tipo de dispositivo desea usar. Los precios por unidad varían mucho según el fabricante, ya sea PROM, EPROM, EEPROM, cuánta memoria tiene, cuánto espacio de almacenamiento tiene, cuántos pines programables, etc.

Mi recomendación, para empezar, sería:

  1. Trate de encontrar un "quemador" gratis en Internet si desea experimentar la emoción de programar sus MCU usando algo que haya construido . Hay muchos disponibles, solo google para "simple grabadora de PIC" o similar. Si eso no es un requisito, entonces puede comprar un quemador, pero le costará un poco de dinero.
  2. Obtenga una versión de EEPROM de la MCU que crea que va a usar más. Esto le ahorrará el problema de tener que tirar un hardware de $ 5 solo porque tiene un error en su código.
  3. Compre un montón de la versión PROM de la MCU. Son baratos, y los necesitarás. Y una vez que comience, querrá poner un MCU en todas partes .
  4. Aprende a usar The Emulator. La mayoría de los SDK vienen con un emulador que puede usar para probar sus ideas antes de enviarlas a PROM.
  5. Búscate un primer proyecto simple e interesante. Debo enfatizar el SIMPLE allí. Si intentas encontrar la manera de controlar tu horno de microondas con un control remoto, prepárate para un largo período de aprendizaje.

Bueno, espero que esto te ayude Si quieres más información, estoy a la vuelta de la esquina, ¡solo pito! :)

He desarrollado software en C ++, Java, PHP, .NET y ahora soy interesante para aprender a programar cosas materiales. Me gustaría programar un sistema que podría interactuar con IR, LCD y poder reutilizar los motores viejos de la impresora para usarlo, etc.

Mi problema es, ¿por dónde empezar? He buscado en la web y he encontrado una placa de código abierto llamada Arduino, pero ¿cómo reunir otros componentes electrónicos? ¿Qué libro o tutorial debería hacer para poder crear un proyecto pequeño?


Cada microcontrolador es diferente. El sello BASIC es muy popular entre los aficionados, ya que puedes programarlo en un lenguaje de alto nivel.

Para trabajos de nivel inferior, una opción extremadamente común es el PIC , un chip barato (<$ 4) y rápido (~ 20 MHz) con casi ninguna memoria incorporada. Puede encontrar una lista de entornos de desarrollo en Wikipedia.

Si necesita comprar componentes electrónicos para su microcontrolador, DigiKey es un excelente lugar para comenzar.


Consulte Computación física por Dan O''Sullivan: http://itp.nyu.edu/~dbo3/physical/physical.html También tiene enlaces a Basic Stamp, BX24, Basic Atom y PIC "Quick References".

Arduino es una gran plataforma con una gran comunidad de apoyo. Lo recomiendo.


Definitivamente apoyaría la sugerencia de Arduino. Son baratos, hay varios proveedores ya que el hardware es de código abierto (aunque el nombre no lo es), el IDE es gratuito, usted los programa en C, y son fáciles de conectar a casi cualquier cosa. La placa tiene 12 pines de E / S digitales (dos de los cuales son pines de comunicación en serie) y seis pines de E / S del convertidor A / D de 12 bits (que también se pueden configurar como pines digitales). Puede manejar modulación de ancho de pulso (PWM) para control de motor y servo, interrupciones, interfaces I2C, y la mayoría de las placas pueden funcionar independientemente o fuera del puerto USB. La comunicación a la computadora es manejada por un controlador USB serie FTDI.

Además de Sparkfun.com, también echa un vistazo a www.adafruit.com para encontrar algunas placas pequeñas y baratas de "Boarduino" USB y varios escudos de prototipos agradables para el Arduino de tamaño completo.

El sitio principal de Arduino ( Arduino.cc ) tiene prácticamente todas las referencias y tutoriales que necesita para comenzar.

Aquí está el "¡Hola mundo!" de la programación de Arduino como un ejemplo de lo fácil que es. El programa parpadea un LED conectado al pin digital 13:

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 }

Básicamente, cada programa Arduino tiene una función de configuración () que se ejecuta cuando se aplica energía o se reinicia la placa y una función de bucle () que se ejecuta para siempre. Por supuesto, también tiene temporizadores y funciones de interrupción, o puede usar el bucle () para sondear las entradas y luego llamar a otras funciones. Arduino IDE se encuentra en la parte superior de GCC y utiliza las mismas bibliotecas e incluye lo que utilizarías si estuvieras escribiendo un programa barebones para el microcontrolador Atmega. Esto significa que (a) oculta las partes duras tanto tiempo como lo desee (cargadores de arranque, fusibles, etc.), (b) puede acceder a las partes internas del programa si lo desea, y (c) puede utilice una gran selección de bibliotecas que están disponibles para esta familia de microcontroladores.


En otros comentarios:
Si no quiere ensuciarse las manos soldando muchas cosas o no está inclinado eléctricamente a hacerlo (como yo), intente investigar los PLC''s .
Son controladores de hardware industrial con módulos para casi todas las tareas, como E / S digitales, E / S analógicas, controladores de motor paso a paso, E / S en serie, Ethernet, etc. Puede programarlos de diferentes maneras, como ensamblador, gráfico y editor de texto con código que parece una mezcla de Pascal y Basic. Tienen multitarea incorporada y generalmente funcionan bastante bien, pero son un poco más caros que un microcontrolador regular. Siempre recomiendo Wago y su controlador 750-841.


Esto probablemente sea excesivo para lo que intenta hacer, pero programar un sistema basado en FPGA puede ser divertido. El lenguaje VHDL es más parecido a cablear circuitos que escribir código C. Se puede comprar una placa Nexys-2 por $ 130.


La serie de sellos BASIC es muy interesante. Tienen muchos tableros de control sencillos y bonitos para que comiences y la programación es muy simple. El controlador realmente ejecuta BASIC. Si bien eso puede no entusiasmar a mucha gente, escribir código de microcontrolador toma tiempo para entenderlo. Este sistema es ideal para mojarse los pies. Luego, cuando tenga un buen proyecto agradable (y simple), puede pasar a otros controladores más desafiantes. Estos probablemente sean ensamblados o C programados. La depuración será su mayor desafío.

Parallax BASIC Stamp


Otro voto para el Arduino que es genial. Con una placa Arduino, un sensor de temperatura de un solo cable y Hyperterminal, puede comenzar a registrar datos sobre el mundo que lo rodea. Conecte el procesamiento y podrá registrar los datos, graficarlos, analizarlos en Excel, lo que sea. Ordenado.


Parallax es notoriamente caro. Se salen con la suya porque venden sus cosas a instituciones educativas que no conocen nada mejor.

El Arduino es un buen comienzo, repase algunos de sus ejemplos (haga clic en "Aprendizaje" en el sitio Arduino) y vea qué partes necesitan. Mi tienda de electrónica de hobby favorita es sparkfun.com . Tienen toneladas de piezas diseñadas para interactuar con cosas como el Arduino.

Puede programarlos en ensamble C, C ++ o AVR. Personalmente, yo diría que evite los BÁSICOS, son mucho más lentos y si ya está en la programación, no vale la pena la molestia.

(Para su información, el Arduino es básicamente una biblioteca de tablero y software diseñada alrededor del maravilloso microcontrolador AVR)


Recientemente comencé a aprender la programación de microcontroladores usando Arduino. Compré el Arduino Starter Pack de adafruit.com y seguí sus tutoriales introductorios . Su kit viene con algunos componentes electrónicos básicos (LED, botones, fotorresistencia) que le dan algunas cosas para experimentar desde el principio.

Si ya conoce C / C ++, podrá comenzar a crear proyectos útiles e interesantes en cuestión de horas.

El Arduino también es genial porque una vez que te familiarizas con él puedes expandir y escribir con facilidad C en cualquiera de las líneas de microcontroladores Atmel AVR con facilidad.

También recomiendo The Electronics Goldmine, donde puedes comprar surtidos de productos electrónicos bastante baratos para obtener un buen set de inicio con el que trabajar.


Si eres un entusiasta de la electrónica, podrías construir tu propio sistema de desarrollo. Podría ser más complicado, pero es mucho más divertido.

Vea aquí un sistema de desarrollo simple para microncontroladores PIC16F628A, que incluye esquemas completos y PCB: http://www.bobtech.ro/proiecte/microcontrolere/1-bobdemo-sistem-pentru-dezvoltare-aplicatii-cu-microcontroler

caracteristicas:

  • 12 E / S con botones para entradas y LED para salidas
  • Interfaz de puerto serie RS232 para PC
  • sensor de control remoto infrarrojo
  • conector de programación ICSP a bordo
  • batería opcional de 9V incorporada (para demostraciones)
  • fuente de alimentación + 5V a bordo para microcontrolador y periféricos externos

Para la programación, puede usar el programador BobProg - ICSP PIC
Siga el enlace para esquemas del programador y PCB.

Software:

  • (gratis) MPLAB IDE de Microchip para desarrollo en lenguaje C o ASM
  • (gratis) software de programación flash IC-Prog para usar con el programador ICSP

También tengo la impresión de que debe comenzar desde la arquitectura básica de microcontroladores. El PIC es bueno para empezar, porque los modelos básicos y las primeras series pueden ser muy útiles; no tienen demasiada funcionalidad adicional, así que no te perderás con los extras concentrándote en lo básico, que es bueno.

Después de esto, debe comprender muchas cosas sobre la organización de la memoria y la ejecución del programa en el contexto del ciclo de vida del microcontrolador y los modelos de temporización. Después de esto, puede continuar con el análisis inicial de ejemplos básicos de ensamblador para un microcontrolador de concreto y avanzar con técnicas más avanzadas. Luego puede pasar a series más avanzadas de PIC con DAC y otros módulos que son comunes para la mayoría de los microcontroladores modernos, pero en el PIC puede obtener muchos elementos básicos sin dolor adicional que funcionarán de manera similar para todos los demás chips.


Tengo dos sugerencias.

  1. Los microcontroladores de sello son excelentes chips introductorios. Puede recoger los kits en eBay baratos (<$ 30 por lo general). También puedo recomendar el libro Proyectos de control y comunicaciones de Stamp2 por Tom Petruzzellis http://www.amazon.com/STAMP-2-Communications-Control-Projects/dp/0071411976/ref=sr_11_1?ie=UTF8&qid=1221613350&sr=11-1

  2. Microchip (www.microship.com) fabrica el microcontrolador Stamp. También ofrecen muestras gratuitas de su sitio web, incluido el envío. Recogí un par de micros con radios integradas para hacer algunas comunicaciones de RF bidireccionales (no WIFI). Otro gran fabricante de microcontroladores es Dallas Semiconductor http://www.maxim-ic.com/ y también envían muestras gratuitas. Dallas / Maxim también tiene un Journal de Ingeniería que enviarán por correo gratis a su dirección y la revista tiene toneladas de implementaciones de muestra, usando sus chips, por supuesto, de los cuales también puede obtener gran cantidad de buena información.


Todo lo que necesitas para iniciar en Arduino y electrónica se puede encontrar aquí: http://www.smileymicros.com . Si recuerdo bien, el autor del libro tiene / tenía una columna para Arduino newbies en una de las revistas electrónicas. Además de eso, en general debes aprender I2C, SPI, 1wire y tratar de conectar sensores con tales interfaces. Lea muchas hojas de datos de tales sensores y trate de comprender todo lo que contiene. Haga preguntas cuando esté atascado. Aprenda MODBUS (RTU / ASCII / TCP) o un protocolo similar que pueda abrir su dispositivo al mundo una vez que lo incruste en el dispositivo. Aprenda electrónica general e intente interconectar relés, triacs, motores paso a paso, servos, qué es pull up y pull down, qué es sourcing y hundimiento, cómo dibujar esquemas y conectar controladores básicos a su MCU.