Paso 3: Programa de la Junta
Se necesita un programador ICSP para programar el tablero y un tablero de arranque serie FTDI. Para la ICSP de programación, usted puede hacer uso de otro Arduino, pero recomiendo el USBTinyISP de Adafruit. La Junta de arranque FTDI es útil si desea escribir/depurar sus propios bocetos, pero puede omitirse si se utiliza solo mi código.
Si usted desea grabar bosquejos sin recta de ICSP de depuración, puede utilizar este descriptor de boards.txt, sobre todo de los Arduino Pro Mini, que se asemeja este hardware:
atmega328t.Name=Atmega 328 (8 MHz) - USBTinyISP
atmega328t.upload.Using=Arduino:USBtinyISP atmega328t.upload.maximum_size=32768 atmega328t.upload.speed=57600
atmega328t.bootloader.low_fuses=0xFF atmega328t.bootloader.high_fuses=0xDA atmega328t.bootloader.extended_fuses=0x05 atmega328t.bootloader.path=atmega atmega328t.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328t.bootloader.unlock_bits=0x3F atmega328t.bootloader.lock_bits=0x0F
atmega328t.Build.MCU=Atmega328P atmega328t.build.f_cpu=8000000L atmega328t.build.core=arduino atmega328t.build.variant=eightanaloginputs
Si desea programar un bosquejo utilizando el puerto serie, debe quemar el bootloader usando ICSP. Se puede utilizar este descriptor de boards.txt con un tablero de arranque FTDI. Recomiendo el de Sparkfun; Asegúrese de que saca DTR como el primer pasador para permitir un reset automático.
atmega328s.Name=Atmega 328 (8 MHz) - serie
atmega328s.upload.Protocol=Arduino atmega328s.upload.maximum_size=30720 atmega328s.upload.speed=57600
atmega328s.bootloader.low_fuses=0xFF atmega328s.bootloader.high_fuses=0xDA atmega328s.bootloader.extended_fuses=0x05 atmega328s.bootloader.path=atmega atmega328s.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328s.bootloader.unlock_bits=0x3F atmega328s.bootloader.lock_bits=0x0F
atmega328s.Build.MCU=Atmega328P atmega328s.build.f_cpu=8000000L atmega328s.build.core=arduino atmega328s.build.variant=eightanaloginputs
Si lo desea, puede ejecutar en 16 MHz en lugar de 8 MHz utilizando un resonador diferentes y seleccionar la placa de Arduino Pro Mini 5V 16 MHz 328 P.
El bosquejo en github utiliza las bibliotecas de NewPing y JeeLib, para interfaz con el sensor y sueño de baja potencia. Encontré que el SR04 dibuja 11 mA medido en la batería en "reposo", por lo que necesita para cerrar entre entre intentos. Hay una resistencia con una resistencia de telecine y una resistencia de limitación de corriente de puerta actúa como un interruptor del lado de baja presión, para apagar el sensor cuando no están activos. Algunos especial consideración debe tenerse cuando se cambia el sensor; debe desconectar el pin de trigger estableciendo como entrada, o encontrar un terreno a través de él y continuar a consumir energía. Al estar en línea, el pin eco permanece alto dando por resultado una lectura corta; un ping sacrificio después de un breve retraso parece restablecer el sensor a un estado normal. Hay también una traza para conectar la batería directamente a un pin analógico, para medir el voltaje de la batería. El bosquejo informa de la tensión con una secuencia de parpadeos rojos y verdes durante el modo estacionado y también irá al modo de batería baja cuando la tensión cae por debajo de 2V, Parpadeo rojo hasta que muere.
El bosquejo define actualmente las distancias de disparo rojo/amarillo/verde en 40, 150 y 500 cm. Cuando en la gama amarilla, destellará entre millihertz 20 a 1 Hz usando interrupciones de contador de tiempo, proporcionando una indicación visual de lo cerca que está recibiendo al rojo. Estos valores se pueden cambiar modificando las constantes en la parte superior del archivo.
El bosquejo puede modificarse fácilmente para trabajar con un Arduino regular, pero entonces no será muy baja potencia.