FISI4087 Proyecto Rueda para Medir

Introduccion: Usando un Arduino como interface, se programa usando un fotoresistor e LED para medir distancia usando una rueda. Segun uno mueve la rueda y la distancia sale en el LCD en centimetros.

 

Rueda para medir distancia usando el Arduino e LCD Display

Por: Raymond J. Lopez Hallman, Luis M. Martinez Milian, y Fernando Sanchez

Introduccion

Un arduino es un aparato para hacer computadoras que puede sentir y controlar más en el mundo físico que una computadora normal puede. Es una plataforma de computación física de código abierto basado en una placa electrónica simple, y un entorno de desarrollo para escribir software para la placa. En este experimento la rueda fue construida usando madera para poder realizar el modelo predeterminado por nosotros. Para poder mostrar la distancia medida, nosotros usamos un LCD para ensenar cuanto esta midiendo la rueda.

Experimento

Para poder hacer el experimentó se usaron los siguientes materiales, Arduino UNO, resistencia, 1 LED, madera e herramientas para cortar madera, Fotoresistor y cables.

Fueron montados en la siguiente manera:

En este experimento el arduino va a leer los HIGH y LOWs que estar.

a leyendo el fotoresistor y con esos datos se convierten en centimetros en el LCD.

Codigo para la rueda

#include {LiquidCrystal.h}

LiquidCrystal lcd(2,3,4,5,6,7);

const int PRT = 0;

int val=0;

const int Min_light=50;

const int Max_light=860;

const int mas = 120;

const int mis = 40;

int x=0;

boolean last = LOW;

boolean current = LOW;

byte p20[8] = {

B10000,

B10000,

B10000,

B10000,

B10000,

B10000,

B10000,

B10000, };

byte p40[8] = {

B11000,

B11000,

B11000,

B11000,

B11000,

B11000,

B11000,

B11000,};

byte p60[8] = {

B11100,

B11100,

B11100,

B11100,

B11100,

B11100,

B11100,

B11100, };

byte p80[8] = {

B11110,

B11110,

B11110,

B11110,

B11110,

B11110,

B11110,

B11110, };

byte p100[8] = {

B11111,

B11111,

B11111,

B11111,

B11111,

B11111,

B11111,

B11111, };

void setup() {

Serial.begin(9600);

lcd.begin(20,4);

lcd.home();

lcd.setCursor(0,0);

lcd.print("Distance Measured");

lcd.createChar(0,p20);

lcd.createChar(1,p40);

lcd.createChar(2,p60);

lcd.createChar(3,p80);

lcd.createChar(4,p100); }

void loop() {

float f = x*(9.81);

val=analogRead(PRT);

val=map(val, Min_light, Max_light, 0, 255);//changing proportions

val=constrain(val, 0, 255);

lcd.setCursor (0,1);

lcd.print (" ");

if (val>mas){

current = HIGH; }

else {

current = LOW;

last = LOW; }

if (last != current)

{

delay(1);

x++;

last=current; }

else if (last = current) {

x=x; }

lcd.print(f);

lcd.setCursor(4,16);

lcd.print("cm");

Serial.println(val);

delay(1); }

Videos

Luis Martínez, Raymond López, Fernando Sánchez

William Serrano, Pablo Sepúlveda

Eric Rivera, Fernand Torres