tinyAVR Microcontroladores Proyectos para Genio Maligno ®
™
Evil Genius™ Serie Bicicleta, patineta, y Chopper Proyectos para el Genio Maligno Bionics para el Genio Maligno: 25 Build-It-Yourself Proyectos Circuitos Electrónicos para el genio malvado, Segunda edición: 64 lecciones con Proyectos Gadgets electrónicos para el Genio Maligno: 28 Build-it-yourself proyectos Sensores electrónicos para el Genio Maligno: 54 Proyectos Electrifying 50 impresionantes Proyectos Auto para el Genio Maligno 50 Proyectos verdes para el Genio Maligno 50 Proyectos modelo de cohete para el Genio Maligno 51 de alta tecnología Cámara oculta para el Genio Maligno 46 Feria de Ciencias Proyectos para el Genio Maligno Proyectos de Celdas de Combustible para el Genio Maligno Proyectos Holografía para el Genio Maligno Mecatrónica para el Genio Maligno: 25 Build-It-Yourself Proyectos Mind Proyectos de rendimiento para el Genio Maligno: 19 Cerebro-Doblado Bio Hacks MÁS Gadgets electrónicos para el Genio Maligno: 40 NUEVO Build-it-yourself proyectos 101 Proyectos del Espacio Ultraterrestre por Genio Maligno 101 Spy Gadgets para el Genio Maligno 125 Proyectos Física para el Genio Maligno 123 experimentos PIC®Microcontroller para el Genio Maligno 123 experimentos de robótica para el Genio Maligno PC Mods para el Genio Maligno: 25 Custom Builds a Turbocharge ordenador Microcontroladores PICAXE Proyectos para el Genio Maligno Programación de Juegos de Video en Genio Maligno Proyectos de reciclaje para el Genio Maligno Proyectos de energía solar para el Genio Maligno Proyectos de teléfono para el Genio Maligno 30 Proyectos Arduino para el Genio Maligno 25 Domótica Proyectos para el Genio Maligno 22 y receptor de radio Proyectos para el Genio Maligno
tinyAVR Microcontroladores Proyectos para Genio Maligno ®
™
Dhananjay V. Gadre y Nehul Malhotra
Nueva York Chicago San Francisco Lisboa Londres Madrid Ciudad de México Milán Nueva Delhi San Juan Seúl Singapur Sydney Toronto
Copyright © 2011 por McGraw-Hill. Reservados todos los derechos. A excepción de lo permitido por la Ley de Derechos de Autor de Estados Unidos de 1976, ninguna parte de esta publicación puede ser reproducida o distribuida en cualquier forma o por cualquier medio, o almacenados en un sistema de base de datos o de recuperación, sin la previa escrita
autorización de la editorial. ISBN: 978-0-07-174455-3 MHID: 0-07-174455-X El material de este libro electrónico también aparece en la versión impresa de este título: ISBN: 978-0-07-174454-6, MHID: 0-07-174454-1. Todas las marcas registradas son propiedad de sus respectivos dueños. En lugar de poner un símbolo de marca después de cada ocurrencia de un nombre de marca registrada, que
utilizar nombres de forma editorial solamente, y para el beneficio del propietario de la marca, sin intención alguna de infracción de la marca. Cuando tal designaciones aparecen en este libro, se han impreso con mayúsculas iniciales. EBooks McGraw-Hill están disponibles en los descuentos especiales de cantidad de usar como las primas y las promociones de ventas, o para su uso en programas de formación de las empresas. A
póngase en contacto con un representante por favor envíenos un correo electrónico a
[email protected]. La información ha sido obtenida por McGraw-Hill de fuentes que se consideran confiables. Sin embargo, debido a la posibilidad de humanos o mecánicos error de nuestras fuentes, McGraw-Hill, u otros, McGraw-Hill, no garantiza la exactitud, adecuación o integridad de cualquier información y no es
responsable de los errores u omisiones o de los resultados obtenidos por el uso de dicha información. CONDICIONES DE USO Se trata de una obra con derechos de autor y de The McGraw-Hill Companies, Inc. ("McGraw") y sus licenciantes se reservan todos los derechos sobre la obra. El uso de este obra está sujeta a estos términos. A excepción de lo permitido por la Ley de Derecho de Autor de 1976 y el derecho de almacenar y recuperar una copia de la obra, es posible que no descompilar, desensamblar, realizar ingeniería inversa, reproducir, modificar, crear trabajos derivados basados en, transmitir, distribuir, difundir, vender, publicar o sublicenciar la obra o parte de ella sin el consentimiento previo de McGraw-Hill. Usted puede utilizar la obra para su propio uso no comercial y personal; cualquier otro uso de la obra está terminantemente prohibida. Su derecho a utilizar el trabajo puede terminar si usted no cumple con estos términos.
LA OBRA SE PROPORCIONA "TAL CUAL". McGraw-Hill Y SUS LICENCIAS NO GARANTIZA NI GARANTIZA EN CUANTO A LA EXACTITUD, ADECUACIÓN O INTEGRIDAD DE O LOS RESULTADOS A OBTENER DEL USO DE LA OBRA, INCLUYENDO CUALQUIER Información que se puede acceder a través del trabajo a través HYPERLINK O DE OTRA MANERA, Y EXPRESAMENTE RECHAZAN NINGUNA GARANTÍA, expresa o implícita, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIALIZACIÓN O
IDONEIDAD PARA UN PROPÓSITO PARTICULAR. McGraw-Hill y sus licenciantes no garantizan ni aseguran que las funciones contenidas en el trabajo lo hará satisfacer sus requerimientos o que su funcionamiento será ininterrumpido o sin errores. Ni McGraw-Hill ni sus licenciantes serán responsables ante usted o cualquier persona otra persona por cualquier inexactitud, error u omisión, independientemente de la causa, en el trabajo o por cualquier daño que resulte de ella. McGraw-Hill no tiene responsabilidad por el contenido de cualquier información accesible a través del trabajo. En ningún caso se McGraw-Hill y / o sus licenciantes serán responsables por daños indirectos, daños incidentales, especiales, punitivos, emergentes o similares que resulten del uso o la imposibilidad de usar el trabajo, incluso si alguno de ellos ha sido advertido de la posibilidad de tales daños. Esta limitación de responsabilidad se aplicará a cualquier reclamación o causa alguna si dicha reclamación o causa surge por contrato, agravio o de otra manera.
Este libro está dedicado al profesor Shailaja M. Karandikar (1920-1995), en cuya casa espaciosa, con una pequeña biblioteca que siempre era bienvenido a buscar y pedir prestado cualquier libro. Y el profesor Neil Gershenfeld, que hizo posible la escritura de este! -Dhananjay V. Gadre A mis padres, que me han dado mi identidad. Y a mi hermana, Neha, que es mi identidad! -Nehul Malhotra
Acerca de los autores Dhananjay V. Gadre (Nueva Delhi, India) completó su Maestría (ciencia electrónica) de la Universidad de Delhi y MEng (Ingeniería Informática) de la Universidad de Idaho. En su trayectoria profesional de más de 21 años, ha impartido clases en la SGTB Khalsa College, Universidad de Delhi, trabajó como oficial científico en el Centro de la Universidad Interamericana para Astronomía y Astrofísica (IUCAA), de Pune, y desde 2001, ha estado con la Electrónica y Comunicación División de Ingeniería, Netaji Subhas Institute of Technology, Nueva Delhi, en la actualidad como profesor asociado. También está asociado con el FabLab mundial red y es un miembro del cuerpo docente en la Academia Fab. Profesor Gadre es el autor de varios artículos profesionales y tres libros. Uno de sus libros han sido traducidos a China y otro en griego. Él es un radioaficionado con licencia con el VU2NOX distintivo de llamada y espera para diseñar y construir un satélite de radioaficionados algún día. Nehul Malhotra (Nueva Delhi, India) completó su licenciatura en electrónica y ingeniería de la comunicación del Instituto de Tecnología de Netaji Subhas, Nueva Delhi. Él trabajado en el laboratorio del profesor Gadre, colaborando ampliamente en los proyectos en curso. Él también fue el CEO fundador de una empresa llamada LearnMicros. Nehul una vez liberado un genio de una botella que encontró en una playa. Como recompensa, se le ha concedido 30 horas en un día. Actualmente, Nehul es un estudiante graduado en el Instituto Indio de Gestión, Ahmedabad, India.
Mapa de contenidos 1 Tour de Tiny. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
Proyectos LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3
Proyectos LED avanzadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
4
Proyectos LCD gráfica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5
Proyectos sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6
Proyectos de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7 P ro y e ct o s
energéticos alternativos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
La Programación C para microcontroladores AVR. . . . . . . . . . . . . . . . . . . . 213 B
Diseño y fabricación de PCBs. . . . . . . . . . . . . . . . . . . . . . . . . . . 225
C
LED iluminado lupa Ojo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
vii
Esta página se dejó en blanco intencionalmente
Contenido Agradecimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 Tour de Tiny. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiii xv
1
Acerca de este libro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 TinyAVR microcontroladores de Atmel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Dispositivos tinyAVR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Arquitectura tinyAVR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Elementos de un proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Fuentes de alimentación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Herramientas de desarrollo de hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desarrollo de Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hacer su propio PCB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 1 Hola Mundo! de microcontroladores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Proyectos LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El control de LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 2 El parpadeo del LED Vela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 3 RGB mezclador de colores LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 4 Color al azar y Music Generator. . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 5 Pen LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Proyectos LED avanzadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 20 24 26 28
29 29 31 32 35 41 45 49 54
55
LEDs de multiplexación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Charlieplexing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Proyecto 6 Lámpara de estado de ánimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Proyecto 7 Medidor VU con 20 LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Proyecto 8 Voltímetro. ............................................... 76 Proyecto 9 Celsius y Fahrenheit termómetro. . . . . . . . . . . . . . . . . . . . . . . . . . 80 Proyecto 10 Regulación automática del contador de frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Proyecto 11 Reloj Geek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Proyecto 12 RGB
da .. .. .. .. .. .. .. 90 Pr o RG Ti To .. .. .. .. .. .. 93 Co ió .. .. .. .. .. .. .. .. 97
Download de Wow! eBook
ix x
tinyAVR Microcontrolador Proyectos para el Genio Maligno
4
Proyectos LCD gráfica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
Principio de funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nokia 3310 GLCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 14 Plotter temperatura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 15 Tengu en Gráficos Pantalla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 16 Juego de la Vida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 17 Tic-Tac-Toe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 18 Reloj Zany. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 19 Rise and Shine Bell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
101 105 109 113 117 119 123 128
Proyectos sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 LED como sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Termistor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 LDR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Inductor como sensor de campo magnético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Proyecto 20 LED como sensor e indicador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Proyecto 21 Display Corazón de San Valentín LED con sensor de proximidad. . . . . . . . . . . 136 Proyecto 22 Matchstick Electronic-fuego libre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Proyecto 23 Spinning Top LED con pantalla de mensajes. . . . . . . . . . . . . . . . . . . . . . 144 Proyecto 24 Sin contacto tacómetro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Proyecto 25 Bucle inductivo basado en Detector de coches y Contador. . . . . . . . . . . . . . . . 153 Proyecto 26 Electronic cumpleaños Velas reventón. . . . . . . . . . . . . . . . . . . . . . . . . 159 Proyecto 27 Alarma Nevera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6
Proyectos de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Proyecto 28 Reproductor de tono. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 29 Redux Alarma Nevera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 30 RTTTL Player. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 31 Juguete Musical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Proyectos energéticos alternativos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
171 176 178 185 189
99
El eg ir el re gu la do La r de vo lta je
Derecho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 La construcción del generador de Faraday. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Resultados y Discusión experimentales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Proyecto 32 Sin Alimentación remoto por infrarrojos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proyecto 33 Sin Alimentación dados electrónicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Proyecto 34 Sin Alimentación Persistencia-de-Vision juguete. . . . . . . . . . . . . . . . . . . . . . . . . 206 Conclusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Programación C para microcontroladores AVR. . . . . . . . . . . . . . . 213 Diferencias entre ANSI C y Embedded C. . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de datos y operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestión eficiente de los puertos de E / S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A pocos Cabecera Importante Archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214 214 217 220 220
196
Contenido xi
Manejo de interrupciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Más Utilidades C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
B
221
Diseño y fabricación de PCBs. . . . . . . . . . . . . . . . . . . . . . . 225 EAGLE Light Edition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 EAGLE Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 EAGLE Tutorial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Añadir nuevas bibliotecas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 La colocación de los componentes y de enrutamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Modela Roland MDX-20 PCB fresadora. . . . . . . . . . . . . . . . . . . . . . . . . . 228
C
LED iluminado lupa Ojo. . . . . . . . . . . . . . . . . . . . . . . . . . . 239 La versión 2 de la lupa del ojo iluminado LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 La versión 3 de la lupa del ojo iluminado LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
247
xi
Esta página se dejó en blanco intencionalmente
Agradecimientos COMENZAMOS PROYECTOS DE CONSTRUCCIÓN con microcontroladores tinyAVR hace varios años.
Diseño de proyectos que utilizan los microcontroladores cuentan con limitaciones fue una emoción. Poco a poco, la número de proyectos mantiene acumulando, y pensamos que de la documentación con la idea ellas compartiendo con los demás. El resultado es este libro. Muchos estudiantes ayudaron con el desarrollo de los proyectos descritos en este libro. Son Anurag Chugh, Saurabh Gupta, Gaurav Minocha, Mayank Jain, Harshit Jain, Hashim Khan, Nipun Jindal, Prateek Gupta, Nikhil Kautilya, Kritika Garg, y Lalit Kumar. Como siempre, Satya Prakash en el Centro de Diseño Electrónico y Tecnología (CEDT) en NSIT era una gran ayuda en la fabricación de muchos de los proyectos. Inicialmente, las placas de circuito del proyecto se realizaron en una placa de circuito de propósito general, o tarjetas de circuitos personalizados se ordenó a través de los fabricantes de PCB. Desde 2008,
c u a n d o N ei l G er s h e n fe ld , p r o fe s
or en el Centro de Bits y Átomos, Media Labs, Instituto de Tecnología de Massachusetts, me presentó con una fresadora MDX20, la velocidad y la facilidad de fabricación de PCB en la casa aumentaron significativamente. Con el MDX20 fresadora, somos capaces de crear prototipos de un circuito en un par de horas en contraste a nuestro ritmo anterior de un circuito de una semana. La generosa ayuda de Neil Gershenfeld y
sus muchas sugerencias se agradecen. Gracias también a Sherry Lassiter, director del programa del Centro de Bits y Átomos, para apoyar nuestras actividades. Lars Thore Aarrestaad, Marco Martin Joaquim, y Imran Shariff de Atmel ayudado con muestras de dispositivos y herramientas. Doy las gracias a Roger Stewart, director editorial de McGraw-Hill, por tener una gran fe en la idea de este libro y Joya Anthony, coordinador de adquisiciones, por ser persuasivo pero suave, incluso cuando se cumplieron todos los plazos. Vaishnavi Sundararajan hizo un gran trabajo de edición del manuscrito en nuestro extremo antes de que enviáramos cada capítulo a la editores. Gracias, chicos! Nehul Malhotra, un estudiante de colaborar en varios de los proyectos, hecho significativo contribuciones para convertirse en un co-autor. Su persistencia y capacidad de trabajar duro y largo
horario es digno de emulación por los demás estudiantes. Este libro no habría sido posible sin Sangeeta y Chaitanya, que son mi familia y las personas más importantes en mi vida. Gracias por su paciencia y perseverancia!
xiii
Esta página se dejó en blanco intencionalmente
Introducción MÁS DE DIEZ AÑOS, cuando escribí un libro en los microcontroladores AVR, AVR eran los nuevos niños en el bloque y no mucha gente había oído hablar de estos chips. Tuve que probar estos nuevos dispositivos desde que era enfermo de utilizar microcontroladores 8051, que no ofrecen suficientes características para complejo requisitos. A pesar de que los AVR eran nuevos, el herramientas de software ofrecidos por Atmel eran bastante robusto, y pude leer todo acerca de estos chips y programa mi primera aplicación en cuestión de días. Desde estos dispositivos sólo habían debutado, lenguaje de alto nivel herramientas no eran fáciles de conseguir, o eran demasiado con errores, o producido demasiado voluminosa un código incluso para programas sencillos. Así, todos los proyectos en que AVR libro se programaron en lenguaje ensamblador. Sin embargo, las cosas son muy diferentes ahora. El AVR familia de microcontroladores se ha estabilizado y actualmente es el segundo de mayor venta de ocho bits familia de microcontroladores en todo el mundo! Mucho de calidad de los compiladores de C están disponibles, también, por la Familia AVR. AVR también es apoyado por GCC (GNU C Compiler) como AVRGCC, lo que significa una
no es necesario gastar dinero para el compilador de C al elegir utilizar AVRGCC. Cuando empecé a usar el AVR más de diez Hace años, varios dispositivos de ocho pines llamaron mi atención. Hasta ese momento, un niño de ocho pines integrado circuito significó un chip 741 op-amp o 555 temporizador. Pero
aquí era una computadora completa en un niño de ocho pines paquete. Fue fascinante ver tan pequeña computadoras, y aún más fascinante para diseñar con ellos. La fascinación ha continuado durante el año. También, Atmel no estaba sentado todavía con su pequeño serie microcontrolador. Se expandió la serie y le dio un nuevo nombre, microcontroladores tinyAVR, y añadido muchos dispositivos, que van desde una parte de seis pines para
28 pines AVR, el microcontrolador ATMega8, y cuesta hacia arriba de $ 12. Sin embargo, si quieres controlar unos LEDs o necesita sólo un par de E / S un dispositivo de 28 pines. Estos dispositivos son de bajo pines para su proyecto, usted podría preguntarse por qué necesitará un dispositivo de 28 pines. Bienvenido al costo ofertas y, en volumen, cuestan tan poco como 25 centavos mundo de microcontroladores tinyAVR! de dólar Este libro ilustra 34 completa, trabajo proyectos. Todos estos proyectos han sido Hoy en día, los microcontroladores están en todas implementado con la serie de tinyAVR partes, desde microcontroladores y están dispuestos en siete Controles remotos de TV a los hornos de microondas a capítulos. El primer capítulo es una gira relámpago de los teléfonos móviles. AVR, específicamente, el microcontrolador tinyAVR Con el fin de aprender a programar y arquitectura, los elementos de un microcontrollerutilizar estos dispositivos, la gente ha creado una variedad proyecto basado, las consideraciones de suministro de de energía, etc. herramientas y equipos y entornos de aprendizaje. Uno de Los 34 proyectos abarcan seis temas revestimiento LED tales proyectos, proyectos de LED avanzados, LCD gráficos ambiente popular es el Arduino. Arduino es proyectos, proyectos basados en sensores, los proyectos sobre la base de la familia de microcontroladores AVR, y de audio, y en lugar de tener que aprender un lenguaje ensamblador o proyectos impulsados por energía finalmente alternativos. C para programar, Arduino tiene su propio lenguaje que Algunos es de estos proyectos ya se han hecho populares y fácil de aprender y uno puede empezar a utilizar un están disponibles como productos. Dado que todos los Arduino detalles de dispositivo en un solo día. Se promociona como una "baja aprendizaje umbral sistema microcontrolador ". La utiliza la plataforma más simple y más pequeño Arduino un xv cada uno.
xvi
tinyAVR Microcontrolador Proyectos para el Genio Maligno
tinyavr1. estos proyectos se describen en este libro, estos proyectos hacen una gran fuente de ideas para los hackers y los aficionados al bricolaje para jugar. Las ideas presentado en estos proyectos pueden, por supuesto, ser utilizado y mejorado. Los diagramas esquemáticos y archivos de mesa para todos los proyectos están disponibles y se puede utilizar para ordenar los PCB de PCB fabricantes. La mayoría de los componentes se puede ordenado a través de Digikey o Farnell.
Capítulo 1: Tour de Tiny ■
■
tinyAVR arquitectura, características importantes de microcontroladores tinyAVR, diseñando con microcontroladores, el diseño de una fuente de alimentación para aplicaciones portátiles Herramientas necesarias para los proyectos de
construcción, por lo que placas de circuitos, el Hola Mundo! de microcontroladores
Los archivos de proyecto tales como esquema y la placa archivos para todos los proyectos, vídeos y fotografías están disponibles en nuestra web: www.avrgenius.com/
Capítulo 2: LED Proyectos ■
Tipos de LEDs, sus características, control de LEDs
Cuatro proyectos: vela del LED, color del LED RGB mezclador, color al azar y generador de la música, Capítulo 4: Proyectos LCD gráficos Pluma LED ■ El funcionamiento de las pantallas LCD, los tipos de las pantallas LCD, Capítulo 3: Proyectos Avanzados LED Nokia 3310 gráficos LCD ■
■
■
El control de un gran número de LEDs utilizando diversas técnicas de multiplexación
■
Ocho proyectos: Lámpara de estado de ánimo, VU
metros con 20-LED de visualización, voltímetro, rango automático contador de frecuencia, Celsius y Fahrenheit termómetro, reloj friki, RGB dados, RGB tic-tac-toe
Seis proyectos: trazador de temperatura, Tengu en visualización de gráficos, Juego de la Vida, tic-tac-toe, reloj surrealista, campana de la escuela
Capítulo 5: Proyectos de sensores ■
■
Varios tipos de sensores para la luz, la temperatura, campo magnético, etc., y de su operación Ocho proyectos: LED como sensor y el indicador, Pantalla LED de corazón de San Valentín con la proximidad sensor, fósforo libre de incendios electrónico, spinning LED superior con pantalla de mensajes, sin contacto tacómetro, detector de automóviles con sede en bucle inductivo y el contador, reventón de cumpleaños electrónica velas, alarma nevera
Capítulo 6: Proyectos de Audio ■
■
Generación de música y sonido usando un microcontrolador Cuatro proyectos: Reproductor de tono, alarma nevera revisitado, jugador RTTTL, juguete musical
Capítulo 7: Proyectos energéticos alternos ■
■
Tensión de generación que utilicen la ley de Faraday y usarlo para alimentar aplicaciones portátiles Tres proyectos: sin pilas a distancia del televisor, dados electrónicas sin pilas, juguetes sin pilas POV
Apéndice A: C Programación para AVR Microcontroladores A-salto de inicio que permite a los lectores a rápidamente adaptarse a los comandos utilizados en C embebido aplicaciones y usar C para programar el microcontroladores tinyAVR ■
Apéndice B: Diseño y La fabricación de PCB
Introducción xvii
■
Captura esquemática EAGLE y enrutamiento bordo programa. Todos los PCB en los proyectos de este Apéndice C: sistema de iluminación LED lupa Ojo libro se realizan utilizando la versión gratuita de EAGLE. Las placas se pueden hacer de PCB ■ La construcción de un LED fresco basado en vendedores o utilizando el Modela (u otro) PCB microcontrolador fresadora. Construcción alternativa lupa ojo métodos también se discuten. Esperamos que se diviertan tanto la construcción de estos proyectos a medida que han disfrutado de compartir con ustedes.
Esta página se dejó en blanco intencionalmente
C APÍ T U L1
Tour de Tiny
GRACIAS A LEY, capacidad de silicio de Moore sigue siendo duplicando (bueno, casi) cada 18 meses. Qué que esto significa es que después de cada año y medio, circuitos integrados de semiconductores (IC) los fabricantes pueden exprimir en dos veces el número de transistores y otros componentes en la misma zona de silicio. Esta hipótesis importante fue colocada primero
por Gordon Moore, cofundador de Intel, a mediados de la década de 1960, y, sorprendentemente, todavía mantiene cierto, más o menos. El tamaño del escritorio las computadoras personales (PC) se ha ido reduciendo. Desde escritorios para computadoras delgadas, a los cubos y ordenadores portátiles, los tenemos todos. Últimamente, otra forma de incluso ordenadores más pequeños ha estado haciendo las rondas: factor de forma pequeño (SFF) PCs. El concepto SFF muestra la disponibilidad de, de uso general pequeño sistemas informáticos disponibles a individuo consumidores, y éstos no tienen por qué ser especializados sistemas embebidos basados en software a medida. El impacto de la ley de Moore se deja sentir no sólo en la tamaño de los ordenadores personales, sino también de la cotidianos dispositivos electrónicos que utilizamos; mi actual teléfono móvil, que me ofrece muchos más características que mi anterior, es mucho más pequeño que su predecesor! Cuando usamos el término "computadora", que con
mayor frecuencia significa que el dispositivo informático habitual que usamos para realizar el procesamiento de textos, navegación por la web, etc. Pero casi todos los dispositivos electrónicos en estos días es equipado con algunas capacidades de computación en el interior. Estas computadoras se llaman ordenadores integrados, ya que están "incrustados" dentro de un dispositivo más grande,
interfaz circuito. El tiro en el software a la medida, y usted tener su propio pequeño aparato personal que puede ser tan único como tú quieres que sea. ¿Qué pueden hacer estos pequeños ordenadores integrados? haciendo que el dispositivo más inteligente y más capaz ¿Pueden ser de alguna utilidad? Mostramos cómo es que pequeño que habría sido sin este "equipo". que pueden ser y lo único que pueden hacer. En nuestra búsqueda de aún más pequeño y más elegante sistemas informáticos y aparatos electrónicos, que Acerca del libro extraemos El libro consta de seis capítulos del proyecto. Los nuestra atención hacia los ordenadores con una aún proyectos en una huella más pequeña: los ordenadores de factor de cada capítulo se organizan en torno a un particular, forma Diminuto. tema, tales como diodos emisores de luz (LEDs) o A diferencia del resto, estos son informático especializado sensores. No hay ninguna secuencia particular de estos sistemas, lo suficientemente pequeño como para caber en capítulos, y que puedan ser leídos en orden aleatorio. un bolsillo de la camisa. Si es así, sin embargo, un principiante, entonces es Muchos fabricantes ofrecen el esqueleto de recomienda que siga los capítulos tales computadoras, y Microchip y Atmel son secuencialmente. Capítulo 1 tiene introductoria pilotos de cabeza. Con huellas tan pequeñas como las de información sobre el proceso de desarrollo del proyecto, dispositivos de seis pines, no más grandes que un grano de arroz, todas 1 que necesitan es una fuente de alimentación adecuada y la 2
tinyAVR Microcontrolador Proyectos para el Genio Maligno
herramientas, fuentes de alimentación, etc., y es muy recomendado incluso si usted es un lector avanzado, para que pueda seguir fácilmente el estilo y proceso de desarrollo que empleamos en adelante capítulos.
TinyAVR de Atmel Microcontroladores La serie tinyAVR de microcontroladores viene en muchos sabores ahora. El número de entrada / salida (I / O) pasadores oscila entre 4 en la serie más pequeña, ATtiny4 / 5/9/10, de 28 en ATTINY48 / 88. Algunos paquetes de ATTINY48 / 88 series tienen 24 pins E / S solamente. Un dispositivo utilizado es ATtiny13, que tiene un total de ocho pines, con dos pasadores obligatorias para fuente de alimentación, la deja con seis pins E / S. Que no parece mucho, pero resulta que una gran cantidad
se puede hacer incluso con estas seis pines I / O, incluso sin tener que utilizar la expansión adicional de E / S circuitos. De la tabla de dispositivos tinyAVR presentado más adelante en este capítulo, hemos seleccionado ATtiny13, ATtiny25 / 45/85, y ATtiny261 / 461/861 para la mayoría de los proyectos. Ellos representan todo el espectro dispositivos de Tiny. Todos estos dispositivos tienen una situ memoria de acceso aleatorio estática chip (SRAM), una requisito importante para la programación de estos chips usando C. Tiny13 tiene sólo 1 K de memoria de programa, mientras Tiny861 y Tiny85 tienen 8K. Tiny13 y Tiny25 / 45/85 son compatibles pines, pero los dispositivos de esta última serie tiene más memoria y características. Cada vez que el código no cabe en Tiny13, puede ser reemplazado con Tiny25 / 45/85, dependiendo de requisitos de memoria. Los proyectos que se han programado para este libro
tienen una característica distintiva: Casi todos ellos tienen fascinante atractivo visual en forma de gran Pantallas basadas en LED. Una nueva técnica de la conexión de un gran número de LEDs utilizando una relativamente pequeño número de pines de E / S, llamado
Charlieplexing, hace posible interconectar hasta 20 LEDs utilizando sólo cinco pines I / O. Esta técnica se ha utilizado para crear gráfica atractiva pantallas o añadir un tipo de siete segmentos de lectura a los proyectos. Otros proyectos que no tienen Pantallas LED cuentan con pantallas LCD gráficas. Cada proyecto puede ser construido sobre un fin de semana y se puede usar ventajosamente en la forma de un juguete o una instrumento.
Dispositivos tinyAVR dispositivos tinyAVR varían entre sí en varios maneras, tales como el número de pines de E / S, la memoria tamaños, tipo de paquete como paquete dual en línea (DIP), pequeño circuito integrado esquema (SOIC) o marco del plomo micro (FML), características periféricas, interfaces de comunicación, etc. Figura 1-1 muestra algunas tinyAVRs en envases DIP, mientras La Figura 1-2 muestra algunos tinyAVRs en montaje superficial dispositivo de envasado (SMD) SOIC. La lista completa
Figura 1-1
microcontroladores tinyAVR en DIP embalaje
Capítulo 1 TABLA 1-1
■
Tour de Tiny
3
Algunos Serie Mayor / Dispositivos de la Familia tinyAVR
S. No.
Serie / Dispositivo
Características
1
ATtiny4 / 5/9/10
Máximo 4 I / O pins, 1.8-5.5V operación, 32B SRAM, hasta 12 MIPS el rendimiento a 12 MHz, Flash de 1 KB de memoria de programa en ATTINY9 / 10 y 512B en ATtiny4 / 5, convertidor de analógico a digital (ADC) presente en ATtiny5 / 10
2
ATtiny13
Máximo 6 I / O pins, 1.8-5.5V operación, 64B SRAM, EEPROM 64B, hasta a 20 rendimiento MIPS a 20 MHz, la memoria del programa 1 KB Flash, ADC
3
ATtiny24 / 44/84
Máximo 12 pins E / S, 1.8-5.5V operación, 128/256 / 512B y SRAM 128/256 / EEPROM 512B en ATtiny24 / 44/84, respectivamente, hasta 20 MIPS el rendimiento a 20 MHz, Flash 2 KB de memoria de programa en ATtiny24, 4KB en ATtiny44, y 8 KB en ATtiny84, sensor de temperatura ADC, en el chip, interfaz serie universal (USI)
4
ATtiny25 / 45/85
Máximo 6 I / O pins, 1.8-5.5V operación, 128/256 / 512B y SRAM 128/256 / EEPROM 512B en ATtiny25 / 45/85, respectivamente, hasta 20 MIPS el rendimiento a 20 MHz, Flash 2 KB de memoria de programa en ATtiny25, 4KB en ATtiny45, y 8 KB en ATtiny85, ADC, USI
5
ATtiny261 / 461/861
Máximo 16 pines I / O, 1,8Operación -5.5V, 128/256 / 512B y SRAM 128/256 / EEPROM 512B en ATtiny261 / 461/861, respectivamente, hasta el 20 Rendimiento MIPS a 20 MHz, Flash 2 KB de memoria de programa en ATtiny261, 4KB en ATtiny461, y 8 KB en ATtiny861, ADC, USI
6
ATTINY48 / 88
24/28 pines máximo de E / S (dependiendo del paquete), 1.8-5.5V funcionamiento, 256 / SRAM 512B en ATTINY48 / 88, respectivamente, 64B EEPROM, hasta 12 MIPS de rendimiento a 12 MHz, 4 KB de memoria de destello del programa en ATTINY48 y 8 KB en ATtiny88, ADC, interfaz periférica serie (SPI)
7
ATtiny43U
Máximo 16 pins E / S, 0.7-1.8V operación, 256B SRAM, EEPROM 64B, hasta 1 MIPS de rendimiento por MHz, memoria de programa 4KB Flash, ADC, en el chip sensor de temperatura, USI y ultra dispositivo de baja tensión, integrado convertidor elevador automáticamente genera un voltaje estable de suministro de 3V desde una entrada de bajo voltaje de la batería hasta 0.7V
de estos dispositivos es altamente dinámico, como mantiene Atmel añadiendo nuevos dispositivos para reemplazar los de mayor edad regularmente. Los últimos cambios siempre pueden ser rastreados en www.avrgenius.com/tinyavr1. La mayoría de estos dispositivos están organizados de tal
Si usted ve la hoja de datos de cualquier dispositivo y encontrar que su nombre es el sufijo "A", que implica que pertenece a la tecnología AVR picoPower clase microcontrolador e incorpora características a reducir el consumo de energía en movimiento.
tinyAVR Arquitectura
Esta sección se ocupa de los detalles internos de la otros sólo en algunas características, como el tamaño de Pequeños dispositivos. Cabe señalar que esta sección sigue un enfoque genérico para resumir la la memoria, etc. Algunas de las principales series y dispositivos de la características comunes de la serie Tiny. Cierto tinyAVR familia que son el foco principal de este libro tiene han resumido en la Tabla 1-1, y se muestran en Las figuras 1-1 y 1-2. de manera que cada miembro de la serie varía de la
4
tinyAVR Microcontrolador Proyectos para el Genio Maligno
almacenamiento de datos no volátil temporal. La siguiente ilustración muestra el mapa de memoria de Tiny controladores.
I Puertos de E / S Figura 1-2
microcontroladores tinyAVR en SMD embalaje
características pueden estar ausentes en algunos dispositivos, mientras que algunos adicionales pueden estar presentes. Para obtener más información sobre estas funciones, consulte la ficha técnica de los dispositivos individuales.
Memoria La arquitectura AVR tiene dos memoria principal espacios: la memoria de datos y la memoria de programa espacio. Además, estos dispositivos presentan una de sólo lectura programable y borrable eléctricamente memoria (EEPROM) de memoria para el almacenamiento de datos. La Memoria de destello del programa se organiza como un lineal serie de puntos situados 16 bits de ancho, porque todos los AVR instrucciones son o bien 16 bits o 32 bits de ancho. La SRAM memoria interna utiliza la misma dirección espacio que el utilizado por el archivo de registro y de
Entrada / Salida (E / S) de dispositivos AVR son compuesta de pines de E / S individuo, que puede ser configurado de forma individual, ya sea de entrada o salida. Aparte de esto, cuando el pasador se declara como una E / S de registros. Los más inferiores 32 direcciones son tomadas por los registros, los próximos 64 ubicaciones son tomadas por los registros de E / S, y luego la SRAM abordar continúa desde ubicación 0x60. El EEPROM interno se utiliza para
Download de Wow! eBook
de entrada, hay una opción para activar o desactivar la pull-up en él. Habilitación del pull-up es necesario leer los sensores que no dan una señal eléctrica, microinterruptores similares. Cada búfer de salida tiene un fregadero y la capacidad de fuente de 40 mA. Así, el conductor pin
es lo suficientemente fuerte como para controlar directamente los indicadores LED. Todos los pines I / O también tienen diodos de protección a ambos VCC y tierra. La siguiente figura muestra el diagrama de bloques de los puertos AVR de E / S.
fuentes. Estas interrupciones tienen vector separado lugares en el espacio de memoria de programa. La direcciones más bajas en el espacio de memoria del Timers programa son, por defecto, definida como los vectores de tinyAVR dispositivos generalmente tienen temporizadores de ocho bits interrupción. que puede ser ajustado de forma sincrónica o La ubicación de la dirección más baja (0x0000) se asigna de forma asíncrona. Las fuentes de reloj síncronas a incluir el reloj del dispositivo o de sus factores (el reloj el vector de reset, que no es exactamente una dividido por un prescaler adecuado), mientras interrupción fuentes de reloj asíncronos incluyen la externa fuente. La dirección de una interrupción también reloj o bucle de enganche de fase (PLL) de reloj, que va determina hasta 64 MHz. Algunos dispositivos también incluyen 10 su prioridad. Cuanto menor sea la dirección, mayor es su nivel de prioridad. Así, reinicio tiene la máxima bits o Temporizadores de 16 bits. Además de contar, estos prioridad. temporizadores también Cuando dos o más interrupciones ocurren al mismo tener unidades comparar, que generan ancho de pulso modulación en los pines de E / S. Estos temporizadores se pueden ejecutar en
varios modos, como el modo normal, modo de captura, modulación de ancho de pulso de modo (PWM), temporizador claro en partido comparar, etc. Cada temporizador tiene varios fuentes de interrupción asociados con él, que son se describe en la siguiente sección sobre las interrupciones. La siguiente ilustración muestra el diagrama de bloques de el temporizador AVR.
Interrupciones El AVR ofrece varios interrupción diferente
Capítulo 1
■
Tour de Tiny
5
Todas las interrupciones se asignan liberación individual tiempo, la interrupción con la mayor prioridad es bits, lo que deberá ser fijado a uno lógico (como es el ejecutado primero, seguido de la interrupción con una mundial de habilitación de interrupción bit en el registro menor de estado) en prioridad. Las interrupciones se utilizan para suspender la Para permitir la interrupción. Cuando un ISR es normal de ejecución, la interrupción mundial desactiva dicho bit la ejecución del programa principal y tomar la por defecto, y por lo tanto, no promueve las interrupciones contador de programa a la subrutina conocido como el están rutina de servicio de interrupción (ISR). Después de la posible, a menos que el programa de usuario tiene ISR es expresamente ejecutado, el contador de programa vuelve a la principal Activado el mundial de interrupción bit de habilitación bucle. La siguiente ilustración muestra cómo el para permitir se ejecuta código en un ISR. interrupciones anidados, es decir, una interrupción dentro de otra interrupción. Varios periféricos de AVR dispositivos como temporizadores, USI, comparador de ADC, analógico, etc., tienen diferentes fuentes de interrupción para diferentes estados de sus valores o de estado.
USI: Interfaz serie universal La interfaz serial universal o USI, proporciona los recursos de hardware básicos necesarios para la serie la comunicación. Esta interfaz se puede configurar a seguir ya sea un protocolo de tres hilos, que es 6
tinyAVR Microcontrolador Proyectos para el Genio Maligno
compatible con la interfaz periférica serie (SPI), o un protocolo de dos hilos, que es compatible con la interfaz de dos hilos (TWI). Combinado con una mínima del software de control, la USI permite significativamente más altas tasas de transferencia y utiliza menos espacio de código de soluciones basadas en software solamente. Las interrupciones se incluyen para minimizar el procesador carga.
terminal es alto o que en el terminal negativo es alta. Los terminales positivo y negativo pueden ser seleccionado de diferentes pines de E / S. El cambio en la salida del comparador puede ser utilizado como una fuente de interrupción. La salida del comparador es disponible en la salida del comparador analógico (ACO) pin. La siguiente ilustración muestra el bloque diagrama del comparador analógico.
Comparador analógico Dispositivos AVR proporcionan un comparador, el cual mide la tensión de entrada analógica en dos de sus terminales y da lógica de salida digital (0 o 1), dependiendo de si el voltaje en el positivo
Convertidor analógico a digital Estos dispositivos tienen un diez bits, sucesiva
aproximación ADC de tipo múltiple con una sola canales de entrada de carácter financiero. Algunos configurado para ser tomado del pin AREF, VCC, dispositivos también tienen y las referencias internas de banda prohibida. La siguiente diferencial canales para convertir voltaje analógico la ilustración muestra el diagrama de bloques del ADC. diferencias entre dos puntos en un valor digital. En algunos dispositivos, para aumentar la resolución de medición, existe una disposición para amplificar la tensión de entrada antes de que ocurra la conversión. La tensión de referencia para la medición puede ser
Opciones del reloj Las fuentes de reloj del sistema en los dispositivos AVR incluir el condensador resistor calibrado (RC) oscilador, el reloj externo, oscilador de cristal, oscilador de vigilancia, cristal de baja frecuencia oscilador, y el bucle de bloqueo de fase (PLL) del oscilador. El reloj principal puede ser seleccionado para ser uno cualquiera de estos a través de los bits fusibles. El principal seleccionado reloj puede ser preescalado más estableciendo adecuado bits en el registro de reloj durante el prescaler inicialización parte del software del usuario. El seleccionado reloj principal se distribuye a los diversos módulos como CPU, I / O, Flash, y ADC. ■
■
■
■
CLK_CPU Se dirige a partes del sistema de de que se trate con la operación del núcleo AVR, como archivo de registro, registro de estado, etc. CLK_I / S Es utilizado por la mayoría de la Módulos E / S, como temporizador / contador, USI y interrupciones externas síncronos, etc. CLK_FLASH Los controles de reloj de Flash funcionamiento de la interfaz de Flash. CLK_ADC A diferencia de otros módulos de E / S,
la ADC está provisto de un reloj dedicado para que otros relojes pueden detenerse para reducir el ruido generado por los circuitos digitales mientras se ejecuta el ADC. Esto da ADC más precisa resultados de la conversión. La siguiente ilustración
muestra las distintas opciones del reloj. Capítulo 1
■
Tour de Tiny
7
Además, cada modo tiene un conjunto diferente de fuentes de activación para salir de ese modo y se van al estado de funcionamiento completo.
Restablecimiento del sistema Dispositivos AVR se pueden restablecer por varias fuentes, resumen aquí: ■
■
Power-On Reset La unidad de microcontrolador (MCU) se restablece cuando la tensión de alimentación es por debajo del umbral de reinicio de encendido. Reset externo
El MCU se restablece cuando una baja
nivel está presente en el pin RESET. ■
Administración de energía y modos de espera
Reinicio Watchdog El MCU se restablece cuando el organismo de control está habilitado y el temporizador de vigilancia plazo expira.
Es necesario para la generación moderna de controladores para gestionar sus recursos de poder en el ■ Reinicio Brown-fuera El MCU se restablece de manera eficiente todo lo posible, y AVR dispositivos cuando el no pueden detector marrón de salida está activada y el suministro darse el lujo de quedarse atrás en esta carrera de la voltaje VCC está por debajo del de reposición marrón optimización. de salida Apoyan a ciertos modos de suspensión, que puede ser umbral. configurado por software del usuario y permitir al Después del reinicio, la fuente se puede encontrar usuario cerrar los módulos no utilizados, con el consiguiente software ahorro de energía. comprobando los bits individuales del estado MCU registrarse. Durante reset, todos los registros de E / S se Los modos de suspensión soportados incluyen el establecen en poder sus valores iniciales, y el programa se inicia abajo, ahorro de energía, reducción de ruido ADC la ejecución del vector de reset. La siguiente inactivo, etc. ilustración muestra el diagrama de bloques de diferentes Cada dispositivo admite distintos modos, y la fuentes de restablecimiento. detalles siempre se pueden encontrar en las fichas técnicas. 8
tinyAVR Microcontrolador Proyectos para el Genio Maligno
Estos datos también se puede leer desde el controlador junto con la firma bytes para la identificación de la Programación de la memoria dispositivo. Pequeños dispositivos se pueden programar Programación del dispositivo AVR implica establecer la utilizando programación en serie o en paralelo de alto voltaje bloquear los bits, el establecimiento de los bytes de de programación. A menos que se indique lo contrario, fusibles, la programación de la a lo largo de este libro hemos utilizado en serie Flash, y la programación de la EEPROM interna.
programación de los microcontroladores Diminuto. Este método puede ser dividida en dos otra que no puede y no debe ser realizado por el usuario métodos: programación en sistema (ISP) y alta software. La siguiente ilustración muestra la programación en serie de tensión (HVSP). HVSP es sólo señales para la programación serial del ISP. aplicable a los microcontroladores de ocho pines como un alternativa a la programación paralela, ya que estos dispositivos tienen muy pocos alfileres para uso paralelo de programación. Programación en el sistema utiliza el AVR interna interfaz periférica serie (SPI) para descargar código en los segmentos de memoria Flash y EEPROM de AVR. También los programas de los bits de bloqueo y portafusibles bytes. Programación ISP requiere sólo VCC, GND, RESET, y tres líneas de señal para la programación. Hay ciertos casos cuando el pin de RESET debe ser utilizado para I / O u otros fines. Si RESET pin está configurado para ser I / O (a través de la RSTDISBL poco fusible), la programación ISP es disponible y el dispositivo tiene que ser programado a través de la programación paralela o de alto voltaje programación en serie, lo que sea aplicable.
DebugWIRE On-Chip Sistema de Depuración
El sistema de depuración debugWIRE en el chip es un uno interfaz de alambre para la depuración de hardware y la programación de las memorias flash y EEPROM. Esta interfaz se activa programando el debugWIRE habilitar (DWEN) fusible. Después de habilitar esta interfaz, el pin de RESET se convierte en el pasarela de comunicación entre el objetivo y Hay otro método para programar estos dispositivos para el sistema de depuración debugWIRE emulador. Por lo tanto, reset externo no funciona si esta interfaz está habilitada. Esta interfaz utiliza el mismo en el chip, protocolo que el utilizado por JTAG ICE mkII, un popular que se describe en la siguiente sección. La reciente herramienta de depuración de Atmel. La siguiente serie de dispositivos de seis pines de Atmel-ATtiny ilustración 4 de soporte / 5/9/10-Indiferente cualquiera de los muestra la interfaz de depuración ALAMBRE. anteriormente métodos de programación mencionado, pero tiene una nueva interfaz de programación pequeña (TPI) construido por de programación. Los bits de bloqueo se utilizan para la protección del usuario software a fin de evitar la duplicidad, y el fusible bytes se utilizan para la configuración inicial del controlador
Elementos de un proyecto Este libro muestra varios proyectos que abarcan una amplia espectro de ideas y la participación de varias aplicaciones dominios. Estos proyectos pueden ser construidos para la diversión como así como la educación. Sin embargo, es importante espaciarse en el proceso de diseño y desarrollo.
Capítulo 1
¿Cómo hace uno para hacer un sistema o una proyecto que nadie ha pensado antes? De Por supuesto, usted tiene que pensar en lo que necesita. A veces, el detonante de esta necesidad podría venir mirando a proyectos de otras personas. Es una proceso abstracto, sino un ejemplo podría ayudar a ilustrarlo. Supongamos que usted vio LEDs se utilizó en algún sistema: LEDs parpadeantes brillantes que captan su imaginación, y usted piensa, hey! ¿y si yo podrían tener estos LEDs bonitas en mi gorra de alguna patrón y hacer que parpadean o cambian de intensidad? Esta idea algo único es el más Lo importante. La ilustración de esta página muestra el proceso de diseño y desarrollo.
■
Tour de Tiny
9
ideas se aplican a los proyectos que están disponibles en el Internet bajo algún tipo de licencia "freeware". En otros casos, puede que tenga que comprobar en la Lo apropiado hacerlo. Sería bien en la mayoría de los casos, si la intención de utilizar el original o su adaptación para su uso personal. Si tiene intención de utilizarlo para aplicaciones comerciales, sin embargo, es absolutamente necesario comprobar con el original fuente para evitar problemas futuros.
Hay dos elementos distintos en un proyecto, como se ve en la ilustración, a saber, el hardware componentes y el software. La parte de hardware Una vez que una idea germina en su mente, usted se puede implementar de muchas maneras, pero utilizando una puede seguirá evolucionando él. Al mismo tiempo, un Internet microcontrolador es una opción fácil, y dado que este Se recomienda la búsqueda para asegurarse de que nadie libro es sobre el uso de microcontroladores en los proyectos, más eso es lo que vamos a concentrar. Aparte ya ha pensado en la misma idea. No existe desde el microcontrolador, el sistema necesita una punto de reinventar la rueda. Si la idea ha sido fuente de energía para funcionar. También necesitaría ya implementado, tal vez sería bueno componentes de hardware adicionales específicos del pensar cómo puede mejorarse aún más. Si lo hace proyecto a pesar de que los microcontroladores modernos de hecho tomar hasta la implementación y mejorar integrar una gran cantidad de características, como se ve sobre ella, un buen plan de acción sería compartirlo en la siguiente con la fuente original de la aplicación, por lo como para reconocer el trabajo y también para poner en ilustración. Por ejemplo, a pesar de una microcontrolador tiene pines de salida digitales para grabar su propia contribución. De esta manera, uno controlar un puede banco de pantallas de siete segmentos, que no tiene enriquecer el sistema, contribuyendo de nuevo a él. la capacidad de proporcionar la corriente lo Estos suficientemente grande que pueden ser necesarias, por lo que tendrá que proporcionar los conductores de corriente externa. Del mismo modo, si usted quiere
Gran idea!
Investigación
Firme hasta el Idea. Detallar Lista TODO
Software
Hardware Componentes, Software
Hardware
Desarrollo
Hardware + Software Integración
Desarrollo
PCB
Pruebas
Pruebas Fabricación
10
tinyAVR Microcontrolador Proyectos para el Genio Maligno
utilizar un sensor externo que proporciona un análogo tensión para medir un parámetro físico, la rango de voltaje del sensor puede no ser adecuada para su uso con el microcontrolador de a bordo ADC, por lo que tendría una externa amplificador para proporcionar ganancia a la salida del sensor voltaje. La ilustración de esta página muestra la elementos de un microcontrolador moderno.
código de software puede ser probado en el host PC para errores lógicos, etc. Algunas partes del código que requerir señales externas o la sincronización con otros eventos de hardware no pueden ser probados, y esto prueba debe posponerse hasta que el software es integrado con el hardware. Una vez que el hardware prototipo está listo, debe estar integrado con el parte de software y la versión integrada de la proyecto de prueba del cumplimiento de los requisitos. El componente de software se refiere a la aplicación La integración puede no ser lisa y puede requerir varios ciclos de desarrollo iterativo. programa que se ejecuta en el microcontrolador, pero Aparte de los componentes de hardware, que También puede referirse a un programa personalizado que se ejecuta en sería específica para un proyecto y lo dado un PC, por ejemplo, para comunicarse con el software, algunos componentes de hardware son comunes microcontrolador. en la mayoría de los proyectos. Estos están relacionados con la El proceso de desarrollo del proyecto requiere que el dos elementos del proyecto, los elementos de hardware fuente de alimentación y una fuente de reloj para la y los elementos de software, se desarrollarán en paralelo. microcontrolador. Estos elementos del proyecto son se muestra en la siguiente ilustración. La fuente de El componente de software que se ejecuta en el alimentación microcontrolador se desarrolla en un PC host y un fuente y la regulación de la tensión de alimentación son gran parte del código se puede desarrollar incluso discutido en detalle en una sección posterior. El reloj sin el hardware prototipo completado. La
Motor
LED
Siete segmentos Visualización
5x7 de matriz de puntos Interruptor Visualización
Ordenador personal
Puerto Serie Perro guardián Timer Reloj, Oscilador Reset, Brown-fuera
Digital I / O Puerto
RAM
UPC
Hora del día RTC
Timer Programa Memoria
detector
Analog I / Port O
Pantalla analógica
Sensor Salida de audio
Capítulo 1
fuente es crítica para el funcionamiento del proyecto. Afortunadamente, algún tipo de fuente de reloj es a menudo integrado en el propio microcontrolador. Es generalmente un oscilador RC que no es muy preciso y cuyo valor real depende de la operación tensión, pero es bastante adecuada para muchas aplicaciones. Sólo si la aplicación requiere tiempo crítico mediciones ¿Se necesita para conectar un oscilador de reloj externo. Todo el microcontroladores de la familia AVR tienen situ fuente de reloj de chip, y en la mayoría de los proyectos de este libro, utilizamos la misma. La tasa de programa ejecución depende directamente el reloj frecuencia; una alta frecuencia de reloj significa que su programa se ejecuta más rápido. Sin embargo, un alto reloj frecuencia también tiene un inconveniente: el sistema de consume más energía. Hay una lineal la dependencia de la energía y el reloj de frecuencia. Si se duplica la frecuencia de reloj, el poder el consumo también se duplicaría. Por lo tanto, no es muy conveniente elegir la frecuencia más alta disponible de operación, sino más bien para determinar la frecuencia basado en la exigencia de tasas de ejecución del programa. Como se ilustra en el Proyecto 1 más adelante en este capítulo, al optar por utilizar el reloj más baja disponible frecuencia, somos capaces de mantener la necesaria operativo energía a un nivel mínimo. La siguiente ilustración muestra los elementos de un proyecto.
Fuente de Energía Entrada Dispositivo
Voltaje Regulador s
MicroControlador
■
Tour de Tiny
11
Además de la fuente de reloj, fuente de alimentación fuente y regulador de voltaje, el proyecto requiere dispositivos de entrada y salida y un recinto adecuado para el alojamiento del proyecto, como se muestra en la ilustración.
Fuentes de alimentación Para cualquier sistema funcione, se necesita una fuente de alimentación. Sin la alimentación necesaria, el sistema es sólo tan bueno como un pisapapeles. Selección de la fuente derecha del poder es importante. Para un sistema portátil, de conectarlo a la red principal sería atarlo a una ubicación física, y sería difícilmente puede clasificar como un sistema portátil de entonces.
Baterías Las baterías son la fuente más común de la energía para aplicaciones de electrónica de portátiles. Ellos son disponible en una variedad de tipos, paquetes, y grados de la energía. El grado de la energía de una batería se refiere a la cantidad de energía almacenada en el mismo. Más baterías son de dos tipos: primaria y secundaria. Las baterías primarias son las pilas desechables. Estos baterías pueden proporcionar energía tan pronto como están montado y seguir proporcionando energía a través de su vida o hasta que sean dados de alta. Ellos no se puede recargar y debe desecharse. Las baterías secundarias, por otro lado, tienen que ser cargada antes de que puedan ser utilizados. Pueden ser recargado varias veces durante su vida útil y, por lo tanto, se prefieren sobre las baterías primarias, Aunque las baterías secundarias son más caros.
Salida Reloj Oscilador Dispositivos (Opcional)
Recinto adecuado!
12
Además, la densidad de energía de una batería primaria es mejor que la de una batería secundaria.
Energía la densidad se refiere a la cantidad de energía almacenada en una batería por unidad de peso. Así que una batería primaria con el mismo peso que una batería secundaria puede proporcionar la tensión de funcionamiento durante un tiempo más largo que la lata batería secundaria.
tinyAVR Microcontrolador Proyectos para el Genio Maligno
Una batería primaria popular es la de zinc-carbón Otras químicas de baterías primarias comunes incluir el óxido de plata y la variante de litio. La de la batería. En una batería de zinc-carbono, el pila de óxido de plata ofrece un rendimiento superior contenedor es en comparación con la batería de cloruro de cinc en hecha de zinc, que también sirve como el negativo términos de terminal de la batería. El recipiente se llena con densidad de energía. Cuenta con una terminal de circuito una pasta de cloruro de zinc y cloruro de amonio, abierto que sirve como electrolito. El positivo terminal de la batería es una varilla de carbono o grafito voltaje de 1,8 voltios. La batería de litio, en el Por otra parte, utiliza una variedad de compuestos rodeada por una mezcla de dióxido de manganeso y polvo de carbono. Como se utiliza la batería, el zinc químicos, recipiente se vuelve más delgada y más delgada debido a y dependiendo de estos compuestos, tiene una la abierto voltaje terminal del circuito de entre 1,5 y 3,7 reacción química (que conduce a la oxidación del zinc) voltios. La Figura 1-4 muestra el litio y alcalinas y, finalmente, el electrolito comienza a filtrarse de baterías en forma de cápsulas. el contenedor de zinc. Pilas de cinc-carbono son también El único problema con las baterías primarias es que las baterías de pilas más baratos. Otra populares una vez que se consume la carga de la batería, debe batería principal es la pila alcalina. Alcalino ser eliminados de manera segura. Aquí es donde el uso de baterías son similares a las baterías de zinc-carbón, pero baterías secundarias se ve muy atractiva: pueden la diferencia es que las pilas alcalinas usan recargarse varias veces antes de que necesite hidróxido de potasio como un electrolito en lugar de disponer de ellos. Las baterías recargables de cloruro de amonio o cloruro de zinc. Figura 1-3 disponible en estándar, así como los tamaños muestra algunas pilas alcalinas. El abierto nominal personalizados y voltaje del circuito de las baterías de zinc-carbono y alcalinas formas. Baterías recargables comunes son de plomo
es 1,5 voltios.
ácido, níquel-cadmio, NiMH y de iones de litio baterías. La Figura 1-5 muestra una batería de iones de litio. Carga estas baterías requiere un cargador especializada, y sólo un cargador adecuado debe ser utilizado con una batería particular. La carga de una batería de iones de litio con un cargador de batería significó para, digamos, NiMH pilas, no es recomendable y sin duda
Figura 1-4 Figura 1-3
La célula de LR44 más pequeño es un alcalino de la batería. La célula CR2032 más grande es una batería de litio.
Pila alcalina en 9V- y Paquetes de tamaño AAA
Capítulo 1
■
Tour de Tiny
13
Cuando se selecciona una batería para su aplicación, los siguientes aspectos deben ser considerados: ■
Contenido de energía o capacidad Es expresada en Ah (o mAh) (amperios hora o miliamperios hora). Este es un importante característica que indica el tiempo que el batería puede durar antes de que se descargue y se convierte en inútil. Para un tipo de batería dado, el la capacidad también dicta el tamaño de la batería. Una batería con una calificación mayor Ah será necesariamente más grande en volumen que una batería similar con una menor calificación Ah.
■
Voltaje
La tensión proporcionada por la batería.
■
Almacenamiento
Esto indica cómo las necesidades
de la batería para ser almacenada cuando no se utiliza. ■
Figura 1-5
Batería de litio-ion
dañar la batería, así como llevar a la posibilidad de incendio o explosión de la batería.
batería va a durar antes de que descargue por sí misma. Ya Está tiene sentido comprar un stock de baterías para el próximos diez años si la vida útil de las baterías es, por ejemplo, sólo un año. ■
Las pilas primarias y recargables están disponibles en muchos tamaños estándar. Algunos de los más los más comunes se enumeran en la Tabla 1-2.
■
TABLA 1-2
Nomenclatura de la batería y Dimensiones
Periodo de validez Esto indica la duración de la
Temperatura de funcionamiento Baterías havenida notoriamente pobres características de temperatura. Esto es porque las baterías dependen una reacción química para producir energía y la reacción química depende de la temperatura. Baterías funcionan bastante mal a baja temperaturas. Ciclo de trabajo
Algunos de napaerie realizan para
un período más largo si se usan de forma intermitente. El ciclo de trabajo de la batería indica si el batería se puede utilizar de forma continua o no,
sin pérdida de rendimiento. Nomenclatura
Forma
Longitud
Diámetro / Ancho
Altura
AAA
Cilindro
44,5 mm
12 mm
-
AA
Cilindro
50,5 mm
14,5 mm
-
9V
Paralelepípedo rectangular
17,5 mm
26,5 mm
C
Cilindro
50 mm
26,2 mm
-
D
Cilindro
61,5 mm
34,2 mm
-
14
48,5 mm
tinyAVR Microcontrolador Proyectos para el Genio Maligno
Batería de frutas Algunas de las frutas y verduras que comemos puede ser utilizado para producir electricidad. Los electrolitos en muchos frutas y verduras, junto con electrodos hecha de diferentes metales, puede ser utilizado para hacer células primarias. Uno de los más fácilmente disponibles frutas, el limón, pueden ser utilizados para hacer una célula de fruta junto con electrodos de cobre y zinc. La voltaje del terminal producida por una célula tal es de aproximadamente 0.9V. La cantidad de corriente producida por tal célula depende de la superficie de los electrodos en contacto con el electrolito, así como la calidad / tipo de electrolito. Preparación de la batería Para la batería, necesitamos unos limones para la electrolito y piezas de cobre y zinc para formar el electrodos. Para el cobre, sólo tiene que utilizar un desnudo impresa
placa de circuito (PCB), y para el zinc que elegimos para utilizar tiras de zinc extraídos de una batería de 1.5V. 1. Comience con un pedazo de desnudo PCB. El
tamaño de la PCB debe ser lo suficientemente grande como para que pueda crear tres o cuatro islas en él. Cada isla se utiliza para mantener un medio de corte de limón. 2. A continuación, abrir unas pocas células 1.5V AA
para las tiras de zinc y limpiarlos con papel de lija. Alambre de soldadura para cada tira.
En lugar de estas tiras de zinc, también se puede utilizar clavos del hogar. Las uñas son galvanizados con zinc y se puede utilizar fácilmente para la fabricación de la de la batería. 3. En el PCB de cobre desnudo, cortado islas con una
presentar o sierra para metales y soldar el otro extremo de la alambre de la tira de zinc para cada isla cobre. Para cada celda, necesita la mitad de un limón, una isla de cobre, y una tira de zinc. 4. Coloca los limones en cada isla con cobre
el corte hacia abajo como se ve en la Figura 1-6. Hacer
Figura 1-6
Batería de limón
(tales como 1N4001), o una unidad de rectificación completa podría ser utilizado. El rectificador deberán estar debidamente calificado, teniendo en cuenta las necesidades actuales. Si el fuente de alimentación es proporcionar 500mA de corriente, los diodos deben estar clasificados por lo menos 1A. El otro Valoración del diodo a considerar es el PIV (pico voltaje inverso). Esta es la inversa de pico máxima tensión de que el diodo puede soportar antes de descomponerse. Un diodo 1N4001 tiene un PIV de 50V, y 1N4007 tiene 1000V. + Vcc
Adaptador de CA Si utiliza una corriente alterna (AC) de salida adaptador, entonces el condensador rectificador y filtro circuito debe ser incorporado en el embebido aplicación, como se muestra en la Figura 1-7. El rectificador podría ser construido con diodos rectificadores discretos incisiones en los limones para insertar el zinc tiras. La fotografía de la Figura 1-6 muestra un batería de limón con cuatro células.
CA en
Filtro
O Polaridad DC prueba en
Rectificador
Figura 1-7
El voltaje rectificado pico que aparece en la condensador de filtro es 1,4 veces el voltaje de entrada AC (Voltaje de entrada de CA es una raíz cuadrada media [RMS] figura). A 10V AC generará alrededor de 14V directo corriente continua (CC) de tensión en el condensador de filtro. La condensador de filtro deberán ser de gran capacidad para proporcionar corriente sostenida. El filtro de condensador también debe estar clasificado para manejar la DC voltaje. Para un 14V DC, al menos una calificación de 25V capacitor debe ser empleado. El filtro rectificador circuito mostrado en la Figura 1-7 también se puede utilizar con una Tensión de entrada DC. Con esta disposición, sería
Rectificador y condensador de filtro de circuito: Puede usarse con la entrada de CA, así como tensión de entrada DC.
no importa lo que la polaridad de la tensión de CC es aplicada a la entrada del circuito. Una vez que la tensión DC prima está disponible, debe ser regulada antes de encender el embebido aplicación. Circuitos reguladores de voltaje integrado están disponibles. Los reguladores de tensión son ampliamente clasificado como lineal o de conmutación. La conmutación reguladores son de dos tipos: avanzar hacia arriba o dimita. Veremos algunos de los reguladores de voltaje, especialmente los llamados reguladores micropotencia. Es común utilizar el tipo de 78XX de tres regulador de terminal. Este regulador se realiza por
decenas de empresas y está disponible en muchos
Capítulo 1
■
Tour de Tiny 15
opciones de paquetes. Para alimentar el procesador AVR, que
elegiría el regulador 7805 para la salida de 5V voltaje. Puede proporcionar hasta la corriente de salida 1A y pueden ser alimentados con una tensión de entrada de CC entre 9V y 20V. También puede elegir una de tres LM317 terminal de regulador de voltaje variable y ajustar el voltaje de salida a 1.25V y por encima con la ayuda de
dos resistencias.
corriente de reposo (típico 75 mA.) y muy bajo voltaje deserción (típico 40mV con cargas ligeras. y 380mV a 100mA de corriente máxima). Ellos son ideal para su uso en con pilas aplicaciones. Además, la corriente de reposo de los LP2950 / LP2951 aumenta sólo ligeramente en altos voltajes de deserción. Estos son los más reguladores micropotencia de tres terminales populares, y los usamos en muchos de los proyectos.
Un regulador de voltaje es un componente activo, y cuando se utiliza esta información para proporcionar USB una salida estable tensión, que también consume algo de corriente. Este El Universal Serial Bus (USB) es un popular y corriente es del orden de decenas de miliamperios y interfaz ahora omnipresente. Está disponible en los PC se llama la corriente de reposo o sesgo. Microfuerza y los ordenadores portátiles. Se utiliza principalmente reguladores son reguladores de voltaje especiales que para la comunicación entre el PC como el anfitrión y tienen extremadamente baja corriente de reposo. El LP2950 dispositivos periféricos tales como una cámara, teclado, etc. y El USB es una interfaz de cuatro hilos con dos alambres LP2951 son, reguladores de voltaje microenergía para la fuente de alimentación y los otros dos para los lineales datos de National Semiconductor, con muy baja la comunicación. El suministro de energía en el USB es que posea la PC host (o portátil o netbook). La tensión nominal es + 5V, pero está en el intervalo de + 4.4V a + 5.25V para la especificaciones USB 2.0. El propósito de proporcionar una fuente de alimentación en el USB es proporcionar energía a los dispositivos externos que desea conectarse y comunicarse con el PC. Por ejemplo, un ratón requiere una fuente de alimentación para la operación y se puede usar el poder USB. Sin embargo, esta tensión se puede utilizar para poder dispositivos externos también, incluso si el dispositivo no está va a ser utilizado por el PC. Utilizamos alimentación USB a proporcionan voltaje de funcionamiento a una embebido aplicación, especialmente si va a ser operado en la vecindad de un PC u ordenador portátil. El incrustado circuito puede consumir hasta 100 mA de la USB conector; aunque el USB puede proporcionar mayor actual, no puede hacerlo sin la negociación (es decir, un
solicitud) por el dispositivo. Tabla 1-3 muestra los pasadores el puerto USB que proporciona alimentación y señal. de 16
tinyAVR Microcontrolador Proyectos para el Genio Maligno
Download de Wow! eBook
TABLA 1-3
Botones de la Mini-USB o Microconnector
Perno Nombre
Conexión Color del cable
Propósito
1
Vcc
Rojo
+ 5V
2
D
Blanco
Señal de datos -ve
3
D+
Verde
Señal de datos + ve
Ninguno
Dispositivo
4
identificación Identificación 5
Negro
Suelo
Gnd
Energía Solar La energía solar puede ser utilizada para alimentar electrónica circuitos mediante el uso de células fotovoltaicas. Proporcionan de energía siempre que la célula se expone a la luz solar. Las células solares proporcionan una gama de potencia, de menos de un vatio a cientos de vatios. La potencia de salida de una célula solar es directamente proporcional a la luz incidente e inversamente proporcional a la célula la temperatura. Para asegurarse de luz ambiente máxima, la célula solar debe mantenerse perpendicular a la luz incidente. Un circuito de conversión de frecuencia se utiliza para regular la salida de la célula. El más común uso de una célula solar es para cargar una batería de modo que potencia continua de la batería se puede derivar. Más detalles sobre el uso de células solares están cubiertos en un capítulo posterior.
Generador a base de Faraday La tensión de funcionamiento requerida para muchos
produce un voltaje de CA a través del cable de cobre, que puede ser rectificada y filtrada utilizando el circuito que se muestra En la Figura 1-7 para proporcionar una tensión de corriente continua. El único problema con este método es que hay que seguir sacudiendo el tubo por el tiempo que desea encender la circuito. Una vez que usted deja agitando el tubo, se detendrá la producción de la tensión y sólo la tensión residual en el condensador estará disponible. En muchos aplicaciones, esto puede no ser un problema. Uno posible solución es usar supercondensadores en vez de los condensadores normales. Sin embargo, se necesitaría un mucho tiempo y mucho esfuerzo para cargar la supercondensadores a la tensión requerida. El voltaje de corriente continua producida en el condensador pequeños proyectos portátiles embebidos pueden ser satisfechas por un interesante dispositivo que convierte la energía mecánica en energía eléctrica. Esto utiliza la famosa La ley de Faraday. El dispositivo basado en este principio se muestra en la Figura 1-8. El sistema utiliza un hueco Tubo de plexiglás de diámetro y longitud adecuada. Dentro del tubo se coloca un imán de tierras raras. La tubo se enrolla con varios cientos de vueltas de cobre alambre esmaltado. Los extremos del tubo están sellados. A generar la tensión, el tubo es simplemente sacudido. Como el imán atraviesa la longitud del tubo, se
terminales pueden requerir además un regulador de voltaje antes de que el voltaje está conectado a la aplicación circuito, y una caída baja y baja tensión de reposo Se recomienda regulador como la LP2950.
Por desgracia, este esquema requiere una gran la potencia transmitida desde la fuente, o una gran antena, o muy cerca de la fuente. En muchos Esmaltado Alambre de cobre
La fotografía en la Figura 1-9 muestra la salida de el generador de Faraday capturado en un osciloscopio. La salida es de más de 17 V pico a pico.
Imán
Scavenging RF Radiofrecuencia (RF) ondas son ubicuas, y por lo tanto, es posible recibir la radio energía de frecuencia utilizando una antena adecuada y convertir esto a la tensión de servicio DC.
Plexiglás Tubo Salida Voltaje ca
Figura 1-8
Generador de tensión basado en Faraday
señal radiada es recibida por un circuito sintonizado que consta de un inductor y un capacitor variable en paralelo que se sintoniza a la frecuencia de la transmisor. El circuito sintonizado se alimenta un diodo rectificador, filtro, y una tensión de baja potencia adecuada regulador. La salida del regulador proporciona la
+ Vcc
Figura 1-9
De salida de un generador de Faraday
aplicaciones comerciales, la energía RF es transmitido deliberadamente para su uso por este tipo de receptores. Una de estas aplicaciones es la frecuencia de radio dispositivo de identificación de sistemas (RFID). El bloque diagrama de un sistema de este tipo se muestra en la figura 1-10. El sistema consta de una radio no modulada transmisor de frecuencia de transmisión de potencia de RF a una frecuencia adecuada. La frecuencia de operación es determinada por el cristal de cuarzo utilizado. Un mayor frecuencia de operación requeriría una menor antena de transmisión. El transmisor es alimentado con una tensión de alimentación de CC de un valor adecuado. La
Capítulo 1
■
Tour de Tiny
no es obligatoria. Las ofertas de la estación de soldadura alimentación aislada al calentador de hierro de soldadura, por lo tanto la reducción de las corrientes de fuga de la punta de el hierro de soldadura.
17
Tensión de alimentación de funcionamiento al circuito deseado. Tal sistema puede proporcionar pocos milivatios de energía distancias a través de la gama de pocas decenas de centímetros. Un sistema práctico basado en este enfoque es se describe en la siguiente idea EDN Diseño: "Batería inalámbrica energiza dispositivos de baja potencia": www.edn.com/article/CA6501085.html.
Herramientas de desarrollo de Hardware Para desarrollar y hacer prototipos para los proyectos se describe en este libro, hemos utilizado alguna herramientas corrientes. Estas herramientas son:
■
Alambre de soldadura
Un alambre de soldadura
de calibre delgado es recomendada. Utilizamos 26 SWG alambre de soldadura. La fotografía de la Figura 1-11 muestra el alambre de soldadura y hierro. ■
■
Malla de cobre Esto es a menudo útil en componentes desoldar. Lupa Ojo
Para inspeccionar los PCB, juntas de
soldadura, etc. lupa Ojo y trenza de cobre se muestran en Figura 1-12.
Soldador, 35 vatios, con una punta de soldadura
■
Corriente continua Voltaje
fina Una estación de soldadura es muy recomendable, pero Cuarzo Cristal
RF Oscilador y Transmisor
L Antena
C
Rectificador y Low Power Regulador
Tuned Circuito Potencia de Difusión Circuito
Figura 1-10
18
Fuente de alimentación de una fuente de radiofrecuencia
tinyAVR Microcontrolador Proyectos para el Genio Maligno
Poder Judicial Circuit
Salida +
Figura 1-11
Alambre de soldadura y soldadura de hierro
Figura 1-12
Malla de cobre y la lupa del ojo
Figura 1-13
Multímetro
Capítulo 1
■
■
Figura 1-14
Más herramientas
■
Tour de Tiny
19
Multímetro Un multímetro digital con , corriente y resistencia de tensión instalaciones es útil para las pruebas y mediciones. Se muestra en la figura 1-13. Bellas pinzas
Para doblar terminales de
componentes. ■
Chiquillo
Para cortar los cables de componentes.
Esta es una nombre de fantasía para el cortador de plomo regular. Una pinza tiene bordes afilados que hacen que un corte limpio. ■
■
■
■
20
Alicates de punta fina aprieta los tornillos, etc.
Generalmente útil para
Juego de destornilladores Pinzas, alicates, agujas pinzas de punta, y juego de destornilladores se muestran en Figura 1-14. Tuercas y tornillos M3 Para soportes de sujeción en el PCB, así como para apoyar la PCB. Máquina de perforación (manuales va a hacer), con una variada colección de brocas Se utiliza para taladrar agujeros en el PCB, cerramientos, etc.
tinyAVR Microcontrolador Proyectos para el Genio Maligno
da un buen entorno de desarrollo integrado (IDE) para usar AVR-GCC en Windows. WinAVR, además de que le da buenos tutoriales en la biblioteca AVR C, proporciona los dos siguientes principales empresas de servicios públicos: ■
Figura 1-15 ■
Tornillo de banco
Tornillo de banco con una mandíbula de tres
pulgadas Para la celebración de la Junta de Coordinación constante,
Bloc de notas del programador
Ella'S una
generalización IDE propósito para la programación en numerosos idiomas. Este software viene integrado con el compilador WinAVR. Para ejecutar Programador de Bloc de notas, ir a Windows | Programas | WinAVR (Versión) | Programadores Bloc de notas. Figura 1-16 es la captura de pantalla de la libreta del programador. Como se puede ver, tiene varias fichas. La mayor parte la presentación de hardware o PCB, etc. Se muestra en la figura 1-15.
Desarrollo de Software
La ventaja de desarrollar una programable sistema no se puede realizar sin necesidad de escribir eficiente código de los dispositivos programables de su sistema, en este caso, los microcontroladores tinyAVR. A lo largo de este libro, vamos a utilizar el lenguaje C para la programación ellos. La sintaxis es en cumplimiento de GNU Compilador AVR-GCC.
pestaña importante, Herramientas, se muestra en pantalla. Como se puede ver, tiene tres comandos importantes: ■
■
para ser alimentado en bytes. Una forma común de almacenar una colección de bytes a transferir a la controlador es utilizar un archivo hexadecimal que contiene el bytes en forma de notación hexadecimal. Así que hay debe ser una herramienta que puede convertir código C en el hexagonal presentar. Muchas variedades de compiladores de C para AVR microcontroladores están disponibles, pero se han centrado
en el AVR-GCC por razones obvias. WinAVR
Haga Clean
Para eliminar todos los archivos
hexagonales y otras dependencias. Generalmente se usa antes de volver a compilar el programa.
C es un lenguaje de programación de alto nivel, y código escrito en lenguaje C tiene que ser convertido en lenguaje de máquina que su controlador de destino entiende y puede ejecutar. La herramienta que hace esta conversión se llama un compilador. El Tiny controladores entender único formato binario y tienen
Hacer Todo Para compilar el programa ejecutar el archivo MAKE y generar el archivo hexadecimal.
■
■
Haga Programa Esto puede ser usado para grabar el archivo hex en el microcontrolador, pero requiere un ISP de propósito especial programador.
Plantilla MAKEFILE La conversión de su C código en los archivos hexagonales implica numerosas tareas como procesamiento previo, compilar, enlazar y finalmente cargar. GCC (GNU C compilador) compiladores generalmente requieren comandos para ser dado para cada proceso a realizar. Si dará todas las órdenes cada vez, uno por uno, al compilar su código, su tarea sería convertido engorroso. En esta situación, una utilidad llamado MAKEFILE ayuda. Integra toda su comandos en un lugar y hace la completa trabajo por medio de instrucciones de una en una a la compilador. WinAVR le da la básica Plantilla MAKEFILE, que se puede modificar para sus propias necesidades. Para ejecutar esto, vaya a Ventanas | Programas | WinAVR (versión) | MFILE. Configure sus opciones y guardar el archivo. Nota
Figura 1-16
Capítulo 1
Bloc de notas del programador
■
Tour de Tiny
21
que hacer el MAKEFILE desde cero lata ser difícil para los principiantes. Por lo tanto, si usted no está cómodo con opciones Makefile, puede utilizar el MAKEFILE proporcionado en los códigos de este libro con ligeras modificaciones para adaptarse a su necesita. Trabajar con WinAVR y sus componentes pueden ser un poco difícil durante las etapas iniciales. Por Por otra parte, AVR Studio de Atmel permite un fácil gestión de proyectos de C con la administración automática de hacer comandos (necesarios para compilar el código escrito para el compilador GCC). Sin embargo, AVR Estudio todavía utiliza WinAVR GCC al final de nuevo a compilar el código de lenguaje C, ya que no tiene un integrada en el compilador C y sólo ofrece un built-in ensamblador para ejecutar programas en lenguaje ensamblador. Así necesita instalar tanto WinAVR GCC y AVR Estudio para empezar con la programación. La más reciente versión de AVR Studio se puede descargar desde http://www.atmel.com/dyn/Products/tools_card .asp? tool_id = 2725 y la de WinAVR de http://sourceforge.net/projects/winavr/files. La proyectos en este libro se han recopilado directamente Bloc de notas a través del programador de WinAVR, con manipulación manual de marca a través de los comandos MAKE. Sin embargo, puede utilizar cualquiera de los dos métodos. Una introducción de inicio rápido para Programación Embedded C para microcontroladores AVR se da en el Apéndice A. Las instrucciones para empezar con ambos métodos se dan a continuación.
Primeros pasos con un Proyecto sobre AVR Studio Para ejecutar AVR Studio, vaya a Windows | Programas | Herramientas Atmel AVR | AVR Studio 4. 22
tinyAVR Microcontrolador Proyectos para el Genio Maligno
en el menú Proyecto, como se muestra aquí: 1. Para crear un nuevo proyecto, seleccione Nuevo
proyecto
2. Después de hacer clic en Nuevo proyecto, un menú
emergente
aparece, como se muestra en la siguiente ilustración. 4. A menudo, es necesario romper el código en En secciones para la portabilidad y facilidad de lectura. el campo Tipo de proyecto, seleccione AVR GCC Así que usted o Atmel AVR ensamblador, dependiendo de la dividir el código en varios archivos de código. A idioma que se utilizará. Aquí, los ajustes se muestran incluir archivos de origen más adicionales, derecha para hacer un proyecto de lenguaje C. Seleccione haga clic en los archivos de origen en la sección AVR ambos GCC, Crear archivo inicial y verificación Crear carpeta y seleccione Agregar existente archivo de origen o cajas, y le dan al proyecto un nombre adecuado. Crear nuevo archivo de origen, dependiendo de su Haga clic en Siguiente. requisito. Si está utilizando fuente existente archivos, asegúrese de que se copian en el misma carpeta que el archivo fuente principal (el carpeta que creó en el paso 2). 5. Escriba su código en el archivo fuente principal. 6. En el menú Generar, seleccione el Build
comando (o presione F7) para iniciar la recopilación de su programa. Si ve "Build sucedió con
3. Después de hacer clic en Siguiente, aparecerá un
menú emergente, se muestra A continuación, aparece. Haga clic AVR Simulator, y desde la sección Device seleccionar el adecuado controlador. Haga clic en Finalizar y verá el archivo fuente principal abierta y se puede empezar escribir su código.
0 Advertencias "en la ventana Generar, que significa no hay error y el archivo hex ha sido creado. Si ve "Build sucedió" a lo largo de con algunas advertencias, significa que el archivo hex se ha creado, pero con algunas advertencias. Es recomendado que la fuente de las advertencias ser investigado para eliminarlos, si es posible. La archivo hexadecimal se encuentra dentro del subdirectorio "Default" en la carpeta principal del proyecto. 7. También puede seleccionar el generar y ejecutar
comando en el menú Generar para simular su programa (o presione CTRL-F7). El single instrucciones paso a lo largo se realiza utilizando el Tecla F11. Durante la simulación, el contenido de la
registro de controladores, I / O ports, y la memoria También pueden ser monitoreados después de cada instrucción
la ejecución. # Si hay más de un archivo de origen, # Añadirlos arriba, o modificar y
Primeros pasos con un Proyecto sobre WinAVR
# Descomente lo siguiente:
Para iniciar un nuevo proyecto utilizando WinAVR, la siguientes pasos se deben seguir:
SRC + = def.c
1. Hacer una nueva carpeta en cualquier lugar de tu
PC. 2. En esta carpeta, copie el MAKEFILE desde
cualquier proyecto de este libro (digamos el Capítulo 1). Los usuarios experimentados pueden hacer su propio MAKE. Este MAKEFILE coincidirá la mayor parte de sus necesidades. El crítico lugares en los que es posible que desee hacer una cambiar en el Makefile para diferentes proyectos se muestran aquí. Las líneas que comienzan con # Se tratan como comentarios en el Makefile. # Nombre MCU MCU = su dispositivo Ejemplo # Nombre MCU MCU = attiny861 (Esto le dice al compilador que el microcontrolador para el cual el aplicación tiene que ser compilado es Attiny861.) Formato #Output. (Puede ser srec, ihex, binario)
FORMATO = ihex (El archivo de salida final tiene estar en formato hexadecimal.) # Nombre del archivo de destino (Sin extensión) Target = principal (Este es el nombre de su archivo hex.) Fuente # Lista C presenta aquí. (C dependencias se generan automáticamente.) SRC = $ (TARGET) .c (Esta línea muestra la nombre del archivo fuente. El comando $ (TARGET) se sustituye por el valor de Objetivo que es principal. Por lo tanto, usted tiene que mantener el nombre del archivo fuente como main.c.)
#SRC + = Abc.c
Capítulo 1
■
Tour de Tiny
tratar de eliminar las advertencias si es posible. A veces, las advertencias durante el código compilación de plomo para el funcionamiento del proyecto erráticamente.
23
Como se explicó anteriormente, a menudo hay que romper el código en varios archivos de código. Para incluir archivos de origen adicionales, añadirlos como se muestra aquí. En el ejemplo anterior, no es abc.c incluido, como la línea SRC + = abc.c es comentada y def.c está incluido. Usted puede crear sus propios archivos de origen y añadirlos aquí.
ANSI C vs. Embedded C
ANSI C es el estándar publicado por la American National Standards Institute (ANSI) para el C lenguaje de programación. Los desarrolladores de software generalmente siguen este estándar para escribir portátil 3. Siguiente crear un documento de texto vacío y el códigos que se ejecutan en varios sistemas operativos. nombre Incluso el creador original de C, Dennis Ritchie, tiene MAIN.C que, como se explicó anteriormente. conforméis a este estándar en la segunda edición de 4. Modifique la MAKEFILE según sus necesidades. su famoso libro, Lenguaje de Programación C 5. Escriba su código en el archivo main.c. (Prentice Hall, 1988). Cuando los desarrolladores de 6. En la ficha Herramientas, haga clic en Crear Todos. software escribir un programa en C para un ordenador personal, es Si ve el código de salida del proceso como 0, que significa ejecutarse en un sistema operativo. Cuando el programa tiene que hay terminado, el sistema operativo toma de nuevo el control Se ha creado ningún error y el archivo hex. Si ver a cualquier otro código de salida, significa que de la CPU y ejecuta otros programas en ella que son en la cola. En caso de multiprocesamiento (o hay un error y hay que quitarlo. Si el código de salida es 0 y ves algunas advertencias, multithreading) sistemas operativos, muchos diferente programas se ejecutan simultáneamente en un personal Todavía se crea el archivo hex. Como se dijo computadora. Esto se logra mediante segmentación de anteriormente, tiempo, es decir, 24
tinyAVR Microcontrolador Proyectos para el Genio Maligno
permitiendo que cada programa en el acceso a la cola de CPU, memoria y E / S, uno por uno, para fijo o duraciones variables. Cuando un programa se completa, se elimina de la cola. Esto da la impresión de que estos programas se ejecutan simultáneamente, pero en realidad, la CPU ejecuta sólo una secuencia de instrucciones (un programa) en un momento dado. Este "Programación" es controlada por el sistema operativo, que mantiene la CPU principal ocupada todo el tiempo. En contraste con el enfoque anterior, cuando uno escribe el código C para microcontroladores de gama
baja (Aunque el procesador AVR ha avanzado arquitectura, estamos comparando con el estándar Procesadores de PC aquí), son los únicos programas que se ejecuta en el hardware y tienen completa el control de todos los recursos. El uso de la operación sistema no es común en los sistemas embebidos. Estos programas funcionan generalmente en bucles infinitos y no terminar. Por lo tanto, es evidente que los enfoques de de programación tiene que diferir (hasta cierto punto) en los dos casos. A pesar de este hecho, cierta básica características de programación C, al igual que los tipos de datos, loops,
sentencias de control, funciones, matrices, etc., son similar en los compiladores de C ANSI e incrustado C problemas en lugar de probar el diseño de hardware compiladores. idea y software compatible. La otra corriente de el diseño de circuito implica aumentar su proyectos con las placas de circuito impreso (PCB). Hacer su propio PCB Circuitos desarrollados sobre los PCB son más duraderas y Decidir sobre el software y hardware menos propenso a fallos en comparación con circuitos requisitos para su proyecto es todo muy bien, pero realizados a aplicar en la práctica su proyecto, usted necesita obtener los circuitos lista, con todos los componentes en placas universales. Una vez fabricado y soldado correctamente, usted puede estar seguro de que todas en sus lugares apropiados para la programación y las conexiones la prueba. Más allá de un cierto número de y centrarse en las áreas más importantes del sistema componentes, diseño y desarrollo de software. El proceso de prototipos en un circuito restos ya no factible. Circuitos realizados en un circuito tienen más El diseño y la fabricación de PCB se pueden dividir en dos grandes categorías, descritos en la siguiente probabilidades de comportarse de forma errática secciones. debido a la cortocircuitos indeseables, conexiones sueltas, o no conexiones. Estos problemas pueden ser difíciles de El uso de un propósito general depurar y usted pasa tiempo extra resolverlos Tarjeta de circuitos Este enfoque es generalmente utilizado por los aficionados y estudiantes universitarios para soldar rápidamente sus circuitos. El diseño y la fabricación de un PCB personalizado ocupa una considerable cantidad de tiempo y recursos, lo que no están disponibles para todos. Una idea viable en tales casos es colocar los componentes en una generalización placa de circuito propósito y luego hacer la conexiones por soldadura cables aislados de cobre. La hebra única, alambre de cobre estañado, con teflón aislamiento, es bastante resistente y flexible, y es una opción recomendada. El circuito de propósito general placa tiene orificios dispuestos en un paso de 0.1 pulgadas con contactos de soldadura en un lado. Estas placas son de varios tipos, y dos tipos populares son sintéticos tableros unidos resina (llamada FR2) y vidrio epoxi tableros (FR4). Los primeros son más baratos pero menos durable que el segundo. Por lo tanto, es siempre una mejor idea de utilizar la tabla de epoxy de cristal. Figura 1-17 muestra un circuito de propósito general epoxi de vidrio desnudo de mesa, y Figuras 1-18 y 1-19 muestran dos lados
de un tablero de propósito general con un circuito de soldadura en ella. A veces, es una buena idea para poner a prueba y verificar pequeños módulos de sus diseños en este foro antes de continuar hacia el diseño de PCB personalizado
de todo el circuito. Los errores de cableado en un tablero de tales puede ser fácilmente corregido, ya que las conexiones son
Download de Wow! eBook
hay algún problema en el diseño. El primer paso en hacer una PCB costumbre es usar software personalizado en un PC para el diseño esquemático, el diseño y enrutamiento del tablero. Existen muchos tipos de diseño de PCB
Figura 1-17
Placa de circuito de propósito general
Figura 1-18
Bordo- de propósito general vista lateral componente
realizadas con cables que siempre se pueden cambiar de un punto a otro. Pero en un PCB personalizado, una vez las pistas están establecidas, es muy difícil cambiar las conexiones del circuito.
Creación de un PCB personalizado Este es el método más avanzado para el diseño circuitos. Circuitos realizados en PCB tienen un mínimo posibilidad de fracaso debido a las conexiones defectuosas a menos
Capítulo 1
■
Tour de Tiny
25
solo lado, que es mucho más barato y más fácil que de doble cara Fabricación de PCB. Un tutorial de inicio rápido en el diseño PCB utilizando EAGLE se da en el Apéndice B.
El PCB diseñado puede ser fabricada por muchos métodos. Estos se dividen en dos grandes categoríasde grabado y fresado procesos. Métodos Aguafuerte generalmente utilizan productos químicos, películas fotográficas, serigrafías, etc., para eliminar el cobre no deseado de la PCB desnudo mientras que conserva la necesaria pistas, mientras que los procesos de molienda molino físicamente lejos del cobre extra dejando el cobre para pistas intactas. Operaciones de fresado, a diferencia de Figura 1-19 Lado de la placa-soldadura de propósito general grabado vista procesos, se pueden realizar directamente con el PCB el diseño de software. La mayoría de los PCBs en este software están disponibles, tales como Proteus, Orcad, y libro EAGLE. A lo largo de este libro, se ha utilizado el han sido fabricados utilizando un Roland Modela versión freeware de EAGLE de CadSoft para MDX-20 fresadora de PCB. Esta máquina el diseño de los consejos de administración de todos los apoya la fabricación de PCB de un solo lado, y todo el proyectos. Las juntas PCB para nuestros proyectos aquí se han adaptado a han sido colocarse de forma que las pistas máximos satisfacer los requisitos de esta máquina. Molienda vienen procesos son lentos para la producción en masa, porque en una sola capa para adaptarse a la fabricación de un cada ciclo de fabricación de PCB tiene que ser repetido 26
tinyAVR Microcontrolador Proyectos para el Genio Maligno
desde el principio, pero muy rápido para la creación de prototipos. Procesos de grabado tienden a ser más rápido para la masa la producción debido a la reutilización de compuesto intermedio películas, pero son caros y lentos cuando el número de unidades requeridas es pequeño.
S4 (On / Off) Vcc
Reajusta Vcc
r
Tiny13
SW3
1.5V
1 (PB5 / Reset)
(Vcc) 8
2 (PB3)
(PB2) 7
3 (PB4)
(PB1) 6
LED1
R1
C1
1.5V
SW1 SW2 Como aficionado, es posible que no esté interesado en LED2 R2 (PB0) 5 4 (GND) conseguir los PCB por encargo. Pero a menudo hay casos en que desea varias copias de su circuito, o el cableado de un circuito en una de propósito Proyecto 1 general Hola Mundo! de tablero es engorroso debido a la complejidad y Microcontroladores gran número de conexiones, o usted tiene que presentar su proyecto para una evaluación adicional. En Ahora que hemos descrito todos los elementos y tales componentes de un proyecto, junto con específica casos, los PCB personalizados son la única alternativa. requisitos para el diseño de los proyectos con AVR microcontroladores, aquí es un proyecto simple para
ilustración. Tiene todos los elementos como se muestra Figura 1-20 en la ilustración al final de los "Elementos de una Sección del proyecto "anteriormente en este capítulo. Hay dos LED y dos interruptores en el circuito a lo largo con un botón de reinicio. El objetivo del proyecto es cambiar el estado de cada LED cada vez que el se presiona y se suelta el interruptor correspondiente. La proyecto se llama así porque es una introducción al mundo de los microcontroladores tinyAVR.
Hola Mundo!
Las figuras 1-20 y 1-21 muestran el esquema diagrama usado para este proyecto de introducción. Figura 1-21 Ambos Hola Mundo! esquema alternativo esquemas son idénticas, y que ilustran dos estilo estilos populares de dibujar un esquema. En el microcontrolador. Pin 2 se supone que conectarse a método ilustrado en la figura 1-20, todas las conexiones LED1. Así, el nombre de la señal PB3 es asignado al pin 2 entre varias señales componentes son explícitamente como se muestra el uso de líneas de conexión. En el estilo así como al cátodo del LED1. Señal similar alternativo nombres se utilizan para el resto de las conexiones. de elaboración de un esquema tal como se ilustra en la Vamos a correlacionar los elementos de la ilustración figura 1-21 nombres de señales, las señales son asignadas, tales con los componentes en el esquema mostrado en la Figura 1-20 (o la Figura 1-21). El circuito es como PB3, que pasa a ser el pin 2 del alimentado con dos pilas alcalinas AA. Como mencionado en la sección anterior, alcalina baterías tienen un voltaje terminal nominal de 1.5V. Así, las dos baterías proporcionan 3V operativo voltaje. Tiny13V rango de voltaje de operación es entre 1.8V y 5.5V, por lo que una alimentación de funcionamiento 3V tensión que funcionan bien. También, como las baterías descarga, el voltaje terminal caería pero el circuito seguirá trabajando hasta que el suministro caídas de tensión a 1.8V. Además, el espectro visible LEDs (en comparación con LEDs invisibles tales como infrarrojos) tienen una tensión de encendido, dependiendo de la
color del LED entre 1,8 V (rojo) y 3.5V (Blanco). Por lo tanto, la selección de LEDs rojos para este proyecto sería una buena decisión. Los diseños de tablero son se muestra en las figuras 1-22 y 1-23. Figura 1-22 muestra el diseño sin las pistas de la capa de componentes (arriba), y la Figura 1-23 muestra la
diseño sin las pistas de la soldadura (abajo) capa. Como puede ver, la junta se encamina principalmente en la capa de soldadura, con sólo un puente en la capa de componente. Se puede hacer fácilmente usando el proceso de molienda físico descrito en el sección anterior. El prototipo soldada se muestra
en la figura 1-24. El diseño de la placa en Eagle, junto con el esquemática, se puede descargar desde
www.avrgenius.com/tinyavr1.
Figura 1-22
Hola Mundo! Diseño de PCB con soldadura capa mostrado
Capítulo 1
Figura 1-24
■
Tour de Tiny
27
Hola Mundo! junta soldada
El código ha sido escrito en una forma que la izquierda interruptor conmuta la izquierda del LED y el interruptor derecho conmuta el LED derecho. Por lo tanto, si el LED adecuado es apagado y pulsa y suelta el interruptor derecho momentáneamente, se encenderá el LED derecho encendido. La Tiny13V está programado con el siguiente código de C: // Incluir archivos #include #define F_CPU 128000UL #include int main (void) {
DDRB | = 1