SKETCH
#include "U8glib.h"
U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 ,7); // CONEXION SERIE
float sensor=1025 ;
byte x;
float y[128];
byte punto;
long distancia;
long tiempo;
void draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.drawFrame(0,0,128,56);
u8g.setFont(u8g_font_04b_03);
u8g.setFontPosTop();
u8g.drawStr(0, 56, "Distanc:");
u8g.setFontPosTop();
// punto
for( punto = 1; punto <= 127; punto++ ) {
u8g.drawPixel(punto,55-54*y[punto]/1024);
}
// barra de nivel
u8g.drawFrame(32,57,75,6);
u8g.drawBox(33,58,74*(sensor/1024),4);
u8g.setColorIndex(0);
u8g.drawBox(33+74*(sensor/1024),58,73-74*(sensor/1024),4);
u8g.setColorIndex(1);
//u8g.drawFrame(32,57,75,6);
//leyenda
String s = String(int( distancia)) ;
u8g.setPrintPos(109, 56);
u8g.print(s);
// u8g.drawStr(109, 56, s);
}
void setup(void) {
// Serial.begin(9600);
pinMode(9, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
pinMode(8, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}
void loop(void) {
// picture loop
u8g.firstPage();
digitalWrite(9,LOW); /* Estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envío del pulso */
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH);
distancia= int(0.017*tiempo);
sensor=1024*distancia/338;
//
x= x+1;
if (x>=126) {
x=1;
}
y[x]=(sensor);
for( punto = 1; punto <= 127; punto++ ) {
}
// // rebuild the picture after some delay
do {
draw();
} while( u8g.nextPage() );
// delay(100);
}
CONEXIONES:
IMPORTANTE: Para conectar en serie con el arduino y no quemar nada tube que desoldar dos resistencias como indico aquí. No hay que hacelo con todos los LCD, pero con mi modelo de lcd de no hacerlo se puede quemar.
No hay comentarios:
Publicar un comentario