Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introducción
2. Resumen
3. Marco Teórico
Idle
ADC Noise Reduction
Power-save
Power-down
Standby
Extended Standby
La figura 1, muestra los diferentes modos de ahorro, sus fuentes de reinicio y los
diferentes modos que deshabilita.
Para hacer uso del modo de ahorro de energía en Arduino, se hace uso de la
librería “Avr/sleep.h” DESSDE AQUÍ AVERIGUA COSA S COMO : cómo funciona
que hace y cosas asi
Como objetivo final, se desea obtener el estado de batería cada vez que el
dispositivo esté despierto. Para esto se acopla al código base el código que
hará que 3 Leds muestren el estado en el que se encuentre la batería.
#include <avr/sleep.h>
#define LEDAMARILLO 12
#define LEDROJO 10
#define LEDNARANJA 11
#define ANALOGPILA 0
// Variables
int analogValor = 0;
float voltaje = 0;
int ledDelay = 800;
// Umbrales
float maximo = 1.6;
float medio = 1.4;
float minimo = 0.3;
int wakePin = 2;
void wakeUpNow()
{
analogValor = analogRead(ANALOGPILA);
voltaje = 0.0048 * analogValor;
// Dependiendo del voltaje mostramos un LED u otro
if (voltaje >= maximo)
{
digitalWrite(LEDAMARILLO, HIGH);
delay(ledDelay);
digitalWrite(LEDAMARILLO, LOW);
}
else if (voltaje < maximo && voltaje > medio)
{
digitalWrite(LEDNARANJA, HIGH);
delay(ledDelay);
digitalWrite(LEDNARANJA, LOW);
}
else if (voltaje < medio && voltaje > minimo)
{
digitalWrite(LEDROJO, HIGH);
delay(ledDelay);
digitalWrite(LEDROJO, LOW);
}
}
void setup()
{
Serial.begin(9600);
pinMode(wakePin, INPUT);
pinMode(LEDAMARILLO, OUTPUT);
pinMode(LEDROJO, OUTPUT);
pinMode(LEDNARANJA, OUTPUT);
Serial.begin(9600);
attachInterrupt(0, wakeUpNow, LOW); // uso de interrupcion 0 (pin 2) e
ir a funcion
digitalWrite(LEDROJO, HIGH);
delay(100);
digitalWrite(LEDAMARILLO, LOW);
digitalWrite(LEDROJO, LOW);
digitalWrite(LEDNARANJA, LOW);
}
void loop()
{
sleepNow(); // sleep function called here
}
void sleepNow() // función que pone a dormir el Arduino
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();attachInterrupt(0,wakeUpNow, LOW);
sleep_mode();
sleep_disable();
detachInterrupt(0);
}
4. Experimentación
5.1 Gráficas
6. Recomendaciones
PROBABLEMENTE ENCUENTRES QUE PARA DISMINUI MAS EL CONSUMO DE
BATERIA SE DEBE QUITAR EL REGULADOR esas cosas van aquí
7. Bibliografía
[1] Arduino and Documentation, “What is arduino?,” Atmel, 2015. [Online]. Available:
http://web.csulb.edu/~hill/ee400d/Technical Training Series/02 Intro to
Arduino.pdf.
[2] Atmel, “ATmega 328P Datasheet,” 2015. [Online]. Available:
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-
Microcontrollers-ATmega328P_Datasheet.pdf.
[3] https://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
[4] https://aprendiendoarduino.wordpress.com/2016/11/13/interrupciones/
[5] https://aprendiendoarduino.wordpress.com/tag/watchdog/
[6] https://www.rinconingenieril.es/funciona-puerto-serie-la-uart/
[7] https://www.e-ika.com/sensor-de-vibracion-sw-420
[8] https://www.areatecnologia.com/electronica/circuito-integrado-555.html