Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alcoholimetro
Alcoholimetro
Arduino, decid hacer un alcoholmetro sencillo, esto para hacer uso del sensor de alcohol.
Pudo haber sido cualquier otro sensor de gases, pero para fines prcticos y de
demostracin frente al grupo, el ms adecuado fue el de alcohol, ya que existen otros que
detectan, por ejemplo, el gas butano o metano.
Descripcin
La idea es crear un alcoholmetro, que mediante el sensor, se reciba como dato el grado o
nivel de alcohol de la persona que sopla frente al sensor. Segn el nivel o grado de alcohol
detectado por el sensor, se encendern de 1 a 10 leds de diferentes colores, empezando
con el verde, que indica un bajo nivel de alcohol, amarillo un nivel medio y rojo un nivel
alto.
Adems como muchos alcoholmetros porttiles o de mano ofrecen la opcin de guardar el
estado actual de alcohol, tambin agregue dos botones, uno es para guardar el estado
marcado actualmente por el sensor, y el segundo es para ver los estados guardados, que
son tres, aunque pudieron haber sido ms. Al picar el botn para ver los estados
guardados por primera vez, se muestra el estado recin guardado, al picar por segunda
vez, se ve el penltimo estado, y al picar por tercera vez se muestra el antepenltimo, y
para salir de vuelve a picar por cuarta vez, y volver a recibir informacin del sensor.
Herramientas usadas
Arduino Uno
Material utilizado
4 leds de 5mm, color verde difuso
Arduino Uno
Cdigo
Este es el cdigo completo de mi proyecto. Las partes que estn en comentarios fueron
utilizadas como prueba para la consola del monitor serial desde el Arduino IDE.
Nota: Si se usa "Serial" para imprimir contenido en el monitor, la salida digital A0 y A1,
quedan automticamente programadas para salida serial, como yo necesitaba una salida
digital ms, comente las lneas de salida serial, para tener dos salidas digitales extras.
#include <EEPROM.h>
const int analogSensor = 0;
const int ledCount = 10;
const int ledSave = 0;
const int pushButtonSave = 12;
const int pushButtonRead = 13;
void setup() {
//Serial.begin(9600);
pinMode(ledSave, OUTPUT);
pinMode(pushButtonSave, INPUT);
pinMode(pushButtonRead, INPUT);
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
//Serial.println("guardado");
delay(2000);
}
void mostrar() {
while (true) {
buttonRead = digitalRead(pushButtonRead);
if (buttonRead == HIGH) {
if (buttonCount < 3) {
int dataReaded = EEPROM.read(buttonCount);
//Serial.print(buttonCount);
//Serial.print("\t");
//Serial.println(dataReaded);
buttonCount++;
delay(500);
} else {
break;
}
}
}
buttonCount = 0;
delay(500);
}
void loop() {
int dataLevel = map(analogRead(analogSensor), 700, 900, 0, ledCount);
if (dataLevel < 0) {
dataLevel = 0;
}
if (dataLevel > 10) {
dataLevel = 10;
}
//Serial.println(dataLevel);
buttonSave = digitalRead(pushButtonSave);
if (buttonSave == HIGH) {
digitalWrite(ledSave, HIGH);
guardar(dataLevel);
} else {
digitalWrite(ledSave, LOW);
}
buttonRead = digitalRead(pushButtonRead);
if (buttonRead == HIGH) {
mostrar();
}
}
view rawalcoholimetro.pde hosted with by GitHub
Y aqu esta por separado lo que conecta al sensor y los botones push.
Imgenes
Vdeo
Y por ltimo les dejo un vdeo que tom del alcoholmetro funcionando, para dejar
evidencia del trabajo realizado. Cabe mencionar que en el vdeo no muestro el uso de los
botones, aunque ya estaban funcionales, ya que no tena quin me ayudar a grabar en
ese momento.