Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARIA TECNOLOGIA
CARRERA INGENIERIA
ELECTROMECANICA
SUBSEDE TELAMAYU
TRABAJO DE
INBESTIGASION
Parte Frontal
Características
Microcontrolador: ATmega328
Voltaje Operativo: 5v
Voltaje de Entrada (Recomendado): 7 – 12 v
Pines de Entradas/Salidas Digital: 14 (De las cuales 6 son salidas
PWM)
Pines de Entradas Análogas: 6
Memoria Flash: 32 KB (ATmega328) de los cuales 0,5 KB es usado
por Bootloader.
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad del Reloj: 16 MHZ.
Arduino es una plataforma de hardware libre, por lo que es posible
obtener su esquemático y su diseño, con el fin de hacerlo nosotros
mismos, si así lo deseamos. A continuación, encontrara lo necesario para
montar nuestro propio Arduino:
Entradas y salidas:
Cada uno de los 14 pines digitales se puede usar como entrada o como salida. Funcionan a 5V, cada
pin puede suministrar hasta 40 mA. La intensidad máxima de entrada también es de 40 mA.
Cada uno de los pines digitales dispone de una resistencia de pull-up interna de entre 20KΩ y 50 KΩ
que está desconectada, salvo que nosotros indiquemos lo contrario.
Arduino también dispone de 6 pines de entrada analógicos que trasladan las señales a un conversor
analógico/digital de 10 bits. Versión 11-10-18
Interrupciones externas: Los pines 2 y 3 están configurados para generar una interrupción en el
atmega. Las interrupciones pueden dispararse cuando se encuentra un valor bajo en estas entradas
y con flancos de subida o bajada de la entrada.
PWM: Arduino dispone de 6 salidas destinadas a la generación de señales PWM de hasta 8 bits.
SPI: Los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo comunicaciones SPI, que
permiten trasladar información full dúplex en un entorno Maestro/Esclavo.
Alimentación de un Arduino
Puede alimentarse directamente a través del propio cable USB o mediante una fuente de
alimentación externa, como puede ser un pequeño transformador o, por ejemplo una pila de 9V. Los
límites están entre los 6 y los 12 V. Como única restricción hay que saber que si la placa se alimenta
con menos de 7V, la salida del regulador de tensión a 5V puede dar menos que este voltaje y si
sobrepasamos los 12V, probablemente dañaremos la placa.
}La alimentación puede conectarse mediante un conector de 2,1mm con el positivo en el centro o
directamente a los pines Vin y GND marcados sobre la placa.
Hay que tener en cuenta que podemos medir el voltaje presente en el jack directamente desde Vin.
En el caso de que el Arduino esté siendo alimentado mediante el cable USB, ese voltaje no podrá
monitorizarse desde aquí.
Para mi un pin GPIO, pin digital o pin a secas, es una forma de poder controlar y
reaccionar a otros circuitos eléctricos desde un microcontrolador. Gracias a estas
entradas y salidas vas a poder leer y enviar información.
Por ejemplo, un pin digital de Arduino es útil cuando quieres encender un LED al
apretar un pulsador. Un circuito muy sencillo que puedes ver a continuación.
Los pines digitales de Arduino son esos agujeros de plástico que tiene la placa. Ahí
es donde se conectan los componentes a través de cables como los que vienen en
cualquier kit de Arduino.
con
exión cables de Arduino
Una posible conexión sería conectar el pulsador al pin 6 y el LED al pin 7. Aunque
puedes utilizar cualquier pin del 0 al 13 si estás trabajando con Arduino UNO.
Otras placas como Arduino MEGA o Arduino Nano tienen otra disposición de
pines.
Lo que importa viene ahora. Si conectas Arduino al puerto USB verás que no
sucede nada. Incluso apretando el pulsador. Pero, ¿qué pasa si cargamos este
código con el IDE de Arduino?
1 void setup() {
2 // Iniciar comunicación serie
3 Serial.begin(9600);
4 // Establecer el pin del pulsador en modo entrada
5 pinMode(6, INPUT);
6 // Establecer el pin del LED en modo salida
7 pinMode(7, OUTPUT);
8 }
9
10void loop() {
11// Leer pin digital donde está el pulsador
12bool estadoPulsador = digitalRead(6);
13
14Serial.print("Valor pulsador: ");
15Serial.println(estadoPulsador);
16
17// Comprobar si está pulsado o no
18if(estadoPulsador == HIGH){
19// Encender el LED
20digitalWrite(7, HIGH);
21Serial.println("LED encendido");
22}else{
23// Apagar el LED
24digitalWrite(7, LOW);
25Serial.println("LED apagado");
26}
27}
Que de repente podemos controlar el LED con el pulsador. ¿Magia?, no. Estamos
diciendo al hardware que se comporte de una manera determinada utilizando
la programación con Arduino.
A ver, en este tutorial no voy a explicar cuál es el camino que hace un código
desde que lo programas hasta que se ejecuta en el microcontrolador, pero es
necesario entender, a grandes rasgos, qué es lo que sucede dentro de Arduino.
El camino que hace desde el IDE a la memoria se conoce como toolchain o cadena
de herramientas (traducción ofrecida por Mario Vaquerizo).
Partimos del código que hemos visto antes que se traduce a código máquina por
el compilador y, luego, el AVRDUDE (programita que nos evita una avería mental
seria) lo carga a la memoria del microcontrolador.
1 :100000000C9434000C944F000C944F000C944F004F
2 :100010000C944F000C944F000C944F000C944F0024
3 :100020000C944F000C944F000C944F000C944F0014
4 :100030000C944F000C944F000C944F000C944F0004
5 :100040000C944F000C944F000C944F000C944F00F4
6 :100050000C944F000C944F000C944F000C944F00E4
7 :100060000C944F000C944F0011241FBECFEFD4E02E
8 :10007000DEBFCDBF11E0A0E0B1E0E8EFF0E002C0EC
9 :1000800005900D92A030B107D9F711E0A0E0B1E0E2
10:1000900001C01D92A030B107E1F70C9467000C94E9
11:1000A00000008FEF84B987B98EEF8AB9089501C037
12:1000B0000197009759F020E00000000000000000C8
13:1000C000000000002F5F2A3599F3F6CF08958FEFD7
14:1000D00084B987B98EEF8AB98FEF88B985B98BB9A2
15:1000E00084EF91E00E94570018B815B81BB884EF50
16:0800F00091E00E945700F0CFDF
17:00000001FF
Que para nosotros es Klingon pero para un microcontrolador es su lengua
materna.
Si nos centramos en los pines digitales de Arduino, que es lo que nos interesa, en
alguna parte del código en ensamblador estará diciendo a los pines 6 y 7 dos
cosas:
Más o menos puedes intuir cuales son las sentencias del código anterior que
indican estas funciones. Esa es una de las ventajas de los lenguajes de alto nivel
como el que utiliza Arduino (C/C++), que es amigable para los humanoides.
Pero antes, vamos a ver cuántos pines digitales tiene Arduino que lo mismo te
llevas una chorprecha.
A ver, lo primero tengo que dejar claro que todo ese plástico y pistas que ves en
una placa de Arduino está puesto ahí para que podamos utilizar y programar un
microcontrolador sin volvernos locos.
Por lo tanto, esos pines donde conectas tus componentes no es más que una
extensión de los pines que tiene el microcontrolador.
Lo que pasa es que es mucho más sencillo conectar cables al pin hembra de la
placa de Arduino que al propio microcontrolador. Además, algunos pines
requieren de electrónica extra para funcionar.
Si nos centramos en Arduino UNO (la placa más popular) el microcontrolador que
utiliza es el ATMega328P que tiene esta disposición de pines o pineado.
Para que al final se distribuyan los pines digitales de Arduino de esta forma.
Y no solo hay pines digitales de entrada y salida, también hay otro tipo de pines
como PWM, analógicos, alimentación, comunicación I2C y SPI. Vamos, el pack
completo del microcontrolador.
Por lo tanto, el número de pines que tiene un Arduino dependerá del tipo de
microcontrolador que utilice. Si es el ATMega328P como el que lleva Arduino
UNO, ya has visto cómo se distribuyen. Si se trata de otra placa tendrás que
acudir a la documentación técnica de la misma.
Por último, también es importante destacar algo que no todo el mundo sabe. Los
pines analógicos que se numeran del PC0 al PC5 en el ATMega328P y del A0 al A5
en la placa de Arduino, son pines analógicos pero también se pueden utilizar
como pines digitales.
Y ahora toca ver cómo accedemos y configuramos los pines digitales de Arduino a
través del código.
4:PIN ANALOGUICO
Nuestro Arduino no sólo puede enviar señales sino que también puede recibirlas
con dos propósitos principales como son leer datos de sensores y recibir mensajes
de otros dispositivos (shield, otro Arduino, PC, etc.). Las entradas las
clasificaremos en analógicas y digitales.
Entradas analógicas
Las entradas analógicas del modelo Uno son las correspondientes a los pines de
A0 a A5. Se caracterizan por leer valores de tensión de 0 a 5 Voltios con una
resolución de 1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser capaz de
detectar variaciones en el nivel de la señal de entrada de casi 5 mV.
lectura = analogRead(pinentrada);
Entradas digitales
Las entradas digitales son las mismas que las salidas digitales, es decir, los pines
que van del 1 al 13. Se diferencian de las analógicas porque éstas son capaces de
“entender” sólo dos niveles de señal, LOW o valores cercanos a 0 V y HIGH o
valores cercanos a 5 V. Puede parecer una desventaja pero en realidad puede ser
todo lo contrario. Y no sólo porque a veces únicamente necesitemos saber dos
estados (interruptor, pulsador, sensor de presencia, final de carrera....) sino
porque así es capaz de leer señales de pulsos digitales. Esto significa que
puede comunicarse .
Aunque los pines digitales por defecto vienen configurados como entradas, si
queremos hacerlo manualmente escribimos en nuestro código
pinMode(pinentrada,INPUT);
Para almacenar los dos valores posibles LOW o HIGH en una variable llamada
“lectura” escribimos
5:PINES DE ALIMENTASION
Alimentar el Arduino: La guía definitiva
Resumen: Podemos alimentar el arduino a través del conector USB cuando se utilizan cargas pequeñas y
no se requieran voltajes mayores a 5 volts. En este caso no debemos preocuparnos de la polaridad /
voltaje, ya que es estándar en todos los dispositivos USB.
De igual forma que VIN, el pin de 5 volts se puede usar de dos formas:
Este pin funciona como una salida de 5 volts para otros circuitos. El pin de 5 volts se
conecta directamente a la salida del regulador en la placa. Cuando alimentamos el
arduino a través de USB o el jack de alimentación, la salida de 5 volts del regulador o
USB está presente en este pin.
Podemos utilizar el pin de 5 volts para alimentar directamente el arduino con una
fuente de poder estabilizada y regulada a 5 volts cuando no hay un cable USB
conectado o un adaptador de corriente conectado al jack.
Resumen: Al alimentar el arduino a través del pin 5V no tenemos protección contra inversiones de
polaridad, sobre voltaje o corto circuito, pues todos los mecanismos de protección en la placa se
encuentran antes llegar a este punto del circuito. Solo se debe usar este método de alimentación si
planeamos tener una fuente de salida fija (5V) y una conexión permanente con el arduino (para evitar
errores).
7 :MICROCONTROLADORES
Un microcontrolador (abreviado µC, UC o mCU) es un circuito integrado programable, capaz de ejecutar
las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales que cumplen una
tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de
una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con
frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microwatts). Por lo general,
tendrá la capacidad de mantenerse a la espera de un evento como pulsar un botón o de otra
interrupción; así, el consumo de energía durante el estado de reposo (reloj de la CPU y los periféricos de
la mayoría) puede ser solo de nanowatts, lo que hace que muchos de ellos sean muy adecuados para
aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de
rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con
velocidades de reloj y consumo de energía más altos.
Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda
controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del
microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje
para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del
microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema
que hace trabajar al microcontrolador cuando este es alimentado con el voltaje adecuado y asociado a
dispositivos analógicos y discretos para su funcionamiento.1
Historia[editar]
El primer microprocesador fue el Intel 4004 de 4 bits, lanzado en 1971, seguido por el Intel
8008 y otros más capaces. Sin embargo, ambos procesadores requieren circuitos adicionales
para implementar un sistema de trabajo, elevando el costo del sistema total.
El Instituto Smithsoniano dice que los ingenieros de Texas Instruments Gary
Boone y Michael Cochran lograron crear el primer microcontrolador, TMS 1000, en 1971;
fue comercializado en 1974. Combina memoria ROM, memoria RAM, microprocesador y
reloj en un chip y estaba destinada a los sistemas embebidos.2
Debido en parte a la existencia del TMS 1000, 3 Intel desarrolló un sistema de ordenador en
un chip optimizado para aplicaciones de control, el Intel 8048, que comenzó a
comercializarse en 1977.3 Combina memoria RAM y ROM en el mismo chip y puede
encontrarse en más de mil millones de teclados de compatible IBM PC, y otras numerosas
aplicaciones. El en ese momento presidente de Intel, Luke J. Valenter, declaró que el
microcontrolador es uno de los productos más exitosos en la historia de la compañía, y
amplió el presupuesto de la división en más del 25%.
La mayoría de los microcontroladores en aquel momento tenían dos variantes. Unos tenían
una memoria EPROM reprogramable, significativamente más caros que la
variante PROM que era solo una vez programable. Para borrar la EPROM necesita exponer a
la luz ultravioleta la tapa de cuarzo transparente. Los chips con todo opaco representaban
un coste menor.
En 1993, el lanzamiento de la EEPROM en los microcontroladores (comenzando con el
Microchip PIC16x84)4 permite borrarla eléctrica y rápidamente sin necesidad de un paquete
costoso como se requiere en EPROM, lo que permite tanto la creación rápida de prototipos
y la programación en el sistema. El mismo año, Atmel lanza el primer microcontrolador que
utiliza memoria flash.5 Otras compañías rápidamente siguieron el ejemplo, con los dos tipos
de memoria.
El costo se ha desplomado en el tiempo, con el más barato microcontrolador de 8 bits
disponible por menos de 0,25 dólares para miles de unidades en 2009, y algunos
microcontroladores de 32 bits a 1 dólar por cantidades similares. En la actualidad los
microcontroladores son baratos y fácilmente disponibles para los aficionados, con grandes
comunidades en línea para ciertos procesadores.
En el futuro, la MRAM podría ser utilizada en microcontroladores, ya que tiene resistencia
infinita y el coste de su oblea semiconductora es relativamente
CARACTERISTICAS
PUBLICIDAD
Por ende, para detallar más en que consiste una placa Arduino, vale la pena saber
cuáles son sus partes y de que tratan, aquí:
8:COMPONENTES EN LA PLACA
Microcontrolador
Es un circuito integrado que se define como la parte que tiene la potestad
de procesar toda la información y, por ende, es el área donde se graba el código que
se conoce como “Sketch” en el software de Arduino. Por lo que, se estima como el
cerebro de una placa Arduino y se caracteriza por ser un elemento de color negro
con patas de metal.
Pines digitales
Son aquellos que se ocupan de detectar si hay un CERO o un UNO lógico y se
emplean tanto para la entrada digital como también para la salida digital. Ya sea, por
ejemplo, para oprimir un botón y para encender un LED, respectivamente. Lo que
significa que, los pines digitales son usados para pulsaciones de botones o
dispositivos que envían y/o reciben información de tipo digital. Estos pines, van del 0
al 13.
Pines analógicos
Corresponden al área de pines en el marco de la “analógica” y gracias a ello, son
capaces de detectar señales análogas (la temperatura o la luz, por ejemplo). Para
ello, cuentan con un segmento de voltaje de funcionamiento que fluctúa entre 0 y 5
voltios. Como consecuencia, los pines analógicos son pines que pueden leer la señal
de un sensor analógico y transformarlo en un valor digital que se logra visualizar. Lo
que significa que, por medio de los pines analógicos, es posible medir cosas del
mundo real.
Pines PWM
Son unos pines específicos que actúan como pines digitales normales y, al mismo
tiempo, se pueden utilizar para “Modulación por ancho de pulsos” o lo que se
conoce como “PWM” en inglés. Físicamente, estos pines se distinguen por contener
una tilde (~) al lado de algunos de los pines digitales, tales como: 3, 5, 6, 9, 10 y 11.
Pin AREF
Es un único pin que, la mayoría de las veces, se puede dejar solo en su lugar.
Básicamente, se refiere a un elemento que cuenta con soporte de referencia
analógica y, en ocasiones, se emplea para poder establecer una tensión de referencia
externa entre 0 y 5 voltios. La cual, funciona como el límite superior de los pines de
entrada analógica.
Pin GND
En una placa de Arduino, siempre hay varios pines GND y cualquier de ellos, se puede
usar para conectar el circuito a tierra. De allí, su nombre que es la abreviatura
de “tierra” en inglés. Por su parte, a la hora de localizarlo, se encuentra justo al lado
del pin AREF.
Botón reset
Hace referencia al botón de reinicio que está conectado al pin número uno del
microcontrolador, directamente. El cual, es más conocido como “Clear” o “Master
Clear”. Ahora bien, una vez se empuja este botón, se conecta el pin de reset a tierra
temporalmente, para así poder reiniciar cualquier código que se carga en la placa de
Arduino.
Cabe acotar que, este requiere de 5 voltios para hacer correr el programa, mientras
que, el botón interrumpe el voltaje a 0 voltios para lograr detener el mismo
programa que Arduino está ejecutando, con el fin de iniciarlo nuevamente.
Puerto USB
Es un componente que también se identifica como “Conector USB” y es aquel que
permite conectar la placa Arduino a un determinado ordenador. De ese modo,
ofrece la posibilidad de cargar el código requerido y alimentar la tarjeta de manera
correcta.
Control de USB
Básicamente, el control de USB consiste en un moderador que opera entre el
microcontrolador y el software. Razón por la que, este se centra en convertir la
información transmitida por el microcontrolador a los datos que van hacia el equipo
usado.
Conector de alimentación
Tal y como su nombre lo indica, se trata de un elemento que brinda la posibilidad
de alimentar la tarjeta con voltaje de corriente continua que puede ser de 7 a 12
voltios. Valorando que, cada vez que se conecte la placa de Arduino a una toma
eléctrica, tendrá que encenderse el indicador LED de alimentación. En caso contrario,
es probable que algo esté funcionando incorrectamente.
Regulador de voltaje
En una placa Arduino, el regulador de voltaje se encarga de controlar la cantidad de
tensión que se deja en dicha placa. Es decir que, prácticamente, actúa como un
vigilante que impedirá el ingreso de una tensión adicional con la cual se podría
causar daños al circuito. Generalmente, este regulador de voltaje admite una salida
estable de 5 voltios sin depender del voltaje de entrada.
IDE – entorno de desarrollo integrado, llamado IDE (sigla en inglés de integrated development
environment), es un programa informático compuesto por un conjunto de herramientas de
programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse
para varios.
Anuncio publicitario
Anteriormente a la versión 1.x de Arduino se usaba la extensión “pde”. Cuando se pasó a la versión 1.x
hubo grandes cambios, que deben tenerse en cuenta si se usa código antiguo.
La última versión del IDE de Arduino es la 1.6.8. Los grandes cambio del IDE Arduino se produjo en el
cambio de la versión 0.22 a la 1.0 y posteriormente en el cambio de la versión 1.0.6 a la 1.6.0 con grandes
mejoras en el IDE de Arduino.
El el caso de la versión 1.6.0 los cambios han sido principalmente internos más que en el aspecto de la
herramienta. También es destacable desde la aparición de la versión 1.6.2 la incorporación de la gestión
de librerías y la gestión de placas, muy mejoradas respecto a la versiones anteriores y avisos de
actualización de versiones de librerías y cores.
10:COFIGURASION DE IDE
11:ESTRUCTURA EKETCH
COPILSION Y CARGA