Paso 6: detalles
Hay algunos puntos detallados que tengo que hacer en orden para que alguien pueda seguir mis pasos exactamente.El más notable es que utilicé un atmega328 con un programador AVR utilizando arduino ISP.
Es absolutamente la solución pero después de tener cero experiencia de programación, es más fácil recoger y aprender, hay muchas guías y ayuda para arduinos utilizando el programador de interfaz de arduino era realmente la única opción para mí.
para lograr esto me encontré con algunos problemas. La clave es que el arduino ISP no entiende que es un MKII AVR conectado con los controladores que se instalan con él, así que tendrás que desinstalar el controlador desde administrador de dispositivos de mkII y fuerza instalar uno nuevo, hay un blog post que acabo de encontrar aquí (http://www.johndimo.com/2012/01/18/programming-your-arduino-with-an-avrisp-mkii-with-new-1-0-ide/)
en segundo lugar, es que estoy usando un ATmega328p con en modo de reposo y sin un oscilador de cristal así que tuve que programar los fusibles en el micro controlador a utilizar su oscilador interno 8 MHz en lugar de 20.
Si eres nuevo en micro controladores, simplemente entender que tienen cosas llamado fusibles y bootloaders. son las profundas instrucciones para los chips ejecutar de manera que no se puede escribir dibujos y programas para. cosas como apagar alarmas/detectores/reloj velocidad el manejo de la gestión de memoria del reloj... e incluso interfaces con el hardware como el arduino en el que sería necesario un bootloader de arduino para. Si usted compra un nuevo chip entonces no tendrá un gestor de arranque y usted tendrá que programar de todas formas que no es difícil asumiendo que tiene un AVR programador
En el caso de la quema de un gestor de arranque, cambie los fusibles y manejo dormir y funcionando el chip en un oscilador interno he seguido este manual http://www.sparkfun.com/tutorials/309
Estoy seguro que usted puede encontrar recursos en la web sobre quema de bootloaders y cambie los fusibles y tal sin programadores avr que creo.
Aquí está una guía que encontré
Nota: Si desea ejecutar esta pilas apagado, no deshabilite detección de voltaje
Si va hacer solo un enchufe de pared 5v entonces usted no tiene que preocuparse acerca de cualquiera de las funciones del sueño en el código. o desactivar cualquier fusibles.
El apagón sólo Detector detecta cuando el voltaje suministrado ha bajado a la fecha, forma 5V hasta alrededor de 2.8 o algo por ahí y detiene el programa para proteger el chip. Desactivación parcial sería aceptable para la mayoría de los proyectos, pero es muy perjudicial para proyectos permanentes. se puede alterar el firmware o flash haciendo que el dispositivo inservible a menos que usted vuelva a grabar el chip y en nuestro caso se puede alterar la EEPROM, eeprom es la memoria que tiene grabada de forma permanente cuando el dispositivo no recibe ninguna energía, por lo que el dispositivo continuará permanentemente mal cada vez que se agotan las baterías. Esto se podría solucionar cambiando qué bytes eeprom guarda en el código cada vez que... pero eso es un dolor el un ** especialmente para un proyecto permanente de donde usted no quiere meterse con el micro controlador ya.
otro detalle es la película piezoeléctrica analógico. Genera una tonelada de voltaje por minuto comprimir y alargamiento de la película. Puede detectar las vibraciones sutiles de alguien alejarse 10 metros, para llegar a esta sensibilidad que se necesita una resistencia de 1M ohm entre los conductores del sensor en paralelo con el circuito en que convierten el voltaje de la hasta usable entrada para fuente de alimentación 5v.
Otra cosa a destacar es que las señales analógicas son muy susceptibles a ruidos e interferencias. Yo recomiendo shielded cables conectar todas las partes del sensor y conectar ambos lados del blindaje a tierra.
luego en el pin AREF (21) esto se celebrara hasta 1 voltio (que se puede hacer internamente con código), para maximizar la sensibilidad. En lugar de los límites de ser 0V y + 5V es 0V y 1V. El pin AREF es el pin de referencia analógica, da las lecturas analógicas base qué voltaje se trata.
para obtener el pin AREF hasta 1V puede establecer analogReference (interna), en la función setup(), esto será controlar internamente la tensión AREF
por último, porque tengo pensado utilizar una batería de polímero de litio que quería medir el uso actual del dispositivo.
(Actualizaré esto cuando me encuentre mi página de cálculos) pero mientras tanto encontré que con una batería 40MA apenas se cortó por una noche, y con una batería de 100mAh duraría mucho tiempo lo suficiente como para apenas durante una hora antes de usar cada noche, y si nunca fuiste al menú para configurar los ajustes entonces usted podría utilizarla para 5 días... el menú tiene más poder ya que los leds están en constante