Proyecto recicla pilas con Arduino

Los mini ingenieros utilizan durante el curso una gran cantidad de pilas para alimentar sus robots, ya que es la energía que utilizan para poder funcionar.  Esto nos genera un problema, ya que en nuestra localidad no existe un lugar donde reciclar las pilas accesible.  Un problema que en tres meses de curso la caja de pilas usadas estaba a rebosar y había que visitar el punto limpio de la localidad para poder desechar las pilas sin castigar al medio ambiente.

Investigamos un poco en internet sobre el daño que pueden causar nuestras pilas usadas si no se reciclan adecuadamente y; se estima que una micro pila de mercurio, como las que se usa en los relojes o audífonos, puede llegar a contaminar unos 600 mil litros de agua, la pila alcalina unos 167 mil litros, la pila de Zinc unos 12 mil litros y la carbón unos 3 mil litros.

El proceso de contaminación puede ser largo, hasta 500 años, pero la lluvia, el calor y la acidez del suelo, tienden a acelerar el proceso de descomposición de la pila. Una vez que se degrada la pila en el suelo, comienza a liberar elementos altamente contaminantes como lo son el mercurio, litio, plomo, o cadmio. Estos elementos son altamente contaminantes, ya que al ponerse en contacto con la tierra o con el agua, comienzan con un proceso de degradación irreversible para el Planeta.

Preocupados por el Planeta, los mini ingenieros proponen construir un reciclador de pilas programado con Arduino y que todas las personas del pueblo que pasen,  pueda reciclar convenientemente sus pilas,  y encargarnos de llevar al punto limpio las recogidas trimestrales.

¡Manos a la obra! comienza la lluvia de ideas de cómo construirlo para que además de útil quede bonito e incite a reciclar.  La idea ganadora es un robot grande que se construirá con materiales reciclados y en la cabeza llevará dos LCD (haciendo de ojos) con placas Arduino Nano programadas: una como contador de número de pilas existente y otra dando las gracias por contribuir a salvar el Planeta.  La boca la formarán agujeros del tamaño de distintas pilas para su recogida.

Preparar cartón para el proyecto, tubo flexible de aluminio, pintura y unos guantes y tenemos la carcasa de nuestro “recicla pilas”.  Aprender Arduino para poder realizar entre todos la programación,  soldaduras mini para las placas Nano… y unas sesiones más tarde ¡ya tenemos el robot que recicla pilas”.

Han participado en el proyecto del Club Tecnológico, alumnos de Primaria y Secundaria, guiados por Iván Prada, ¡ya sabes! si quieres reciclar tus pilas, puedes pasar por la academia 😉

Os compartimos algunas fotos del proceso y el código utilizado para la programación.

 

[code]
//--------------------------------------------------------------------------------------------------
//CONFIGURACION DE LA PANTALLA
// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int backLight = 13;    // pin 13 will control the backlight
//--------------------------------------------------------------------------------------------------
//BOTONES RECEPTORES Y CONTADORES
const int buttonPinAA = 7;
const int buttonPin9V = 8;
int buttonStateAA = 0;
int buttonState9V = 0;
int contadorPilaAA = 0;
int contadorPila9V = 0;
bool pulsadoAA = false;
bool pulsado9V = false;
//--------------------------------------------------------------------------------------------------
//MENSAJES POR PANTALLA
//--------------------------------------------------------------------------------------------------

void setup()
{

  //CONFIGURACION DE LOS PIN DE LOS BOTONES
  pinMode(buttonPinAA, INPUT);
  pinMode(buttonPin9V, INPUT);
//CONFIGURACION DE LA PANTALLA
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(16,2);              // columns, rows.  use 16,2 for a 16x2 LCD, etc.
  lcd.clear();                  // start with a blank screen
  lcd.setCursor(0,0);           // set cursor to column 0, row 0 (the first row)
  lcd.print("INICIANDO...");    // change this text to whatever you like. keep it clean.
  lcd.setCursor(0,1);           // set cursor to column 0, row 1
  lcd.print("POR FAVOR ESPERE");
  delay(3000);
  iniciarPantalla();
}
//--------------------------------------------------------------------------------------------------

void loop()
{
   buttonStateAA = digitalRead(buttonPinAA);
   buttonState9V = digitalRead(buttonPin9V);

  if(buttonStateAA == LOW && pulsadoAA == HIGH){
    pulsadoAA = false;
  }

  if(buttonState9V == LOW && pulsado9V == HIGH){
    pulsado9V = false;
  }

  if(buttonStateAA == HIGH && !pulsadoAA) {
    pulsadoAA = HIGH;
    nuevaPilaAA();
  }
  if(buttonState9V == HIGH && !pulsado9V){
    pulsado9V = HIGH;
    nuevaPila9V();
  }
}

void iniciarPantalla(){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("9V: " + String(contadorPilaAA));
   lcd.setCursor(0, 1);
   lcd.print("MOVILES: " + String(contadorPila9V));
}

void nuevaPilaAA(){
  contadorPilaAA++;
  mensajeFelicitacion();
  iniciarPantalla();
}

void nuevaPila9V(){
  contadorPila9V++;
  mensajeFelicitacion();
  iniciarPantalla();
}

void mensajeFelicitacion(){
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("GRACIAS");
   lcd.setCursor(0, 1 );
   lcd.print("POR CONTRIBUIR");
   delay(1000);
}

void textoDeslizanteIzquierda(int milis, int posiciones){
  for (int positionCounter = 0; positionCounter < posiciones; positionCounter++) {
    // scroll one position left:
    lcd.scrollDisplayLeft();
    // wait a bit:
    delay(milis);
  }
}

void textoDeslizanteDerecha(int milis, int posiciones){
  // scroll posiciones positions (string length + display length) to the right
  // to move it offscreen right:
  for (int positionCounter = 0; positionCounter < posiciones; positionCounter++) {
    // scroll one position right:
    lcd.scrollDisplayRight();
    // wait a bit:
    delay(milis);
  }
}
//--------------------------------------------------------------------------------------------------


Deja un comentario

Scroll al inicio