#include <HCSR04.h>
#include <U8glib.h>
HCSR04 hc(3, 2);
U8GLIB_SSD1306_128X32 pantalla(U8G_I2C_OPT_NONE); // I2C / TWI
byte boton=12, led=4, pantalla_estado=1,altura_pantalla, ancho_pantalla;
char datos[10];
unsigned int lim_sup=300, lim_inf=100, lectura;
void setup() {
pinMode(boton, INPUT_PULLUP);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
Serial.begin(9600);
pantalla.begin();
pantalla.setFont(u8g_font_orgv01);
altura_pantalla=pantalla.getHeight();
ancho_pantalla=pantalla.getWidth();
}
void loop() {
Serial.println(pantalla_estado);
if(digitalRead(boton)==0){
if(pantalla_estado>=2) pantalla_estado=1;
else pantalla_estado++;
}
pantalla.firstPage();
do {
if(pantalla_estado==1){
pantalla1();
}
else if(pantalla_estado==2){
pantalla2();
}
} while ( pantalla.nextPage() );
evalua_limites();
}
void lecturaSensor(){
lectura = hc.dist();
String(lectura).toCharArray(datos,5);
}
void evalua_limites(){
if(lectura<lim_inf) digitalWrite(led, HIGH);
if(digitalRead(led)==HIGH && lectura>lim_sup) digitalWrite(led, LOW);
}
void pantalla1(){
lecturaSensor();
pantalla.drawStr(0,20,datos);
}
void pantalla2(){
pantalla.drawStr(0,15,"Hola mundo");
String string_datos="H:"+ String(altura_pantalla)+"W:"+String(ancho_pantalla);
string_datos.toCharArray(datos,10);
pantalla.drawStr(0,22,datos);
pantalla.drawStr(0,32,"---------------------------------");
}