2
Lo más leído
5
Lo más leído
6
Lo más leído
Universidad Autónoma de Baja California 25/08/2014
1
VELOCIDAD DE UNA CANICA
Marcos Marcos Fernando
fmarcos@uabc.edu.mx
RESUMEN:Esta práctica consistió en realizar un
sistema capaz de medir la velocidad de una canica,
para poder elaborar este sistema se utilizaron
sensores de luz, leds, arduino, displays y algunos
otras herramientas. Para poder medir la velocidad
de la canica la hicimos rodar por un tubo,
colocamos dos sensores de luz en los extremos
para que se detectara en qué momento se obstruía
la luz en ellos, se contó el tiempo que llevo
corriendo el sistema, con los datos obtenido que
fueron tiempo y distancia se pudo calcularla
velocidad, y de ahí se imprimieron en tres displays
conectados en cascadas.
1 INTRODUCCIÓN
El desarrollo de sistemas automáticos se ha
tornado aún más sencillo con el uso de
microcontroladores ya que la cantidad de funciones
y aplicaciones que se les puede dar son en verdad
extensas, se puede simplemente jugar con un led
(Blink) hasta hacer sistemas más complejos como
una mano robótica, un carrito, un cuadricoptero
pero de hecho esto también se vuelve más sencillo
con el uso de complementos que se adaptan de
manera sencilla al microcontrolador,se puede decir
que los limites en los usos y/o aplicaciones de los
micros están en nuestra imaginación.
2 OBJETIVO
La práctica consiste en utilizar tres indicadores de
siete segmentos los cuales mostrarán la velocidad
de una canica que baja sobre una pequeña
pendiente, en la pendiente se encuentran
colocados dos sensores los cuales permiten medir
el tiempo en que la canica pasa se un punto A a un
punto B. Los indicadores se deben encontrar en
cero y una vez que la canica pasa por el sensor del
punto B se debe mostrar la velocidad en
centímetros por segundo.La velocidad se muestra
por tres segundos y después los indicadores se
regresan a cero.Una de las características del
circuito es que los indicadores de siete segmentos
se deben de encontrar conectados en paralelo, en
esta ocasión no se permite utilizar decodificadores
de siete segmentos para manejar los indicadores,
asícomo plataformas de desarrollo de Arduino que
tienen mayor número de salidas.
3 TEORÍA
Arduino es una herramienta utilizada para que
los ordenadores puedan controlar el mundo físico y
no solo esto también sentirlo.Es una plataforma de
desarrollo de computación física de código abierto,
basada en una placa con un sencillo micro
controlador y un entorno de desarrollo para crear
software para la placa.
Arduino se puede utilizar para crear objetos
interactivos,leyendo datos de una gran variedad de
interruptores y sensores y controlar multitud de
tipos de motores, luces, entre muchos más
actuadores físicos. Los proyectos de arduino
pueden ser autónomos o comunicarse con un
programa que se ejecute en tu ordenador. La placa
puede ser montada por el usuario o comprarla lista
para usar, El software utilizado para la
programación de esta plataforma es gratis.
El lenguaje de programación de arduino es
muy sencillo,de echo es similar a los lenguajes de
programación de C++, Netbeans, entre otros, por
esto mismo es fácil de utilizar. El software arduino
es multiplataforma debido a que funciona con
sistemas operativos como lo es Windows,
Macintosh OSX y Linux.
¿Qué distingue a Arduino de otros
microcontroladores?
La filosofía open source -código abierto- que
lo sustenta. Tanto el modo en que se ensambla la
placa -hardware- como elcódigo fuente del
programa Arduino -software- son de acceso
público. Esto quiere decir que cualquiera de
nosotros que usarlo y/o mejorarlo pueda hacerlo.
4 DESARROLLO
Para el desarrollo de esta práctica es necesario
contar con el siguiente material y equipo:
- Micro Arduino
- Jumpers
- 2 leds
- 2 Fotorresistencias
- Cables
- Pinzas de corte
- 3Displays
- 2 Tobos
- Segueta
- 2 Resistencias de 10kΩ
- 2 Resistencias de 220Ω
Procedimiento:
Universidad Autónoma de Baja California 25/08/2014
2
Se elabora la base por donde correrá la canica,
para ello se cortaron dos tubos,uno más grande
que el otro.
Cortados los dos tubos, se pegan para poder
pegar un led en la parte superior y una
fotorresistencia en la parte inferior en ambos
extremos del tubo, estos se colocan 45 cm de
separación.
Ahora se arma todo el circuito, se colocan los
displays,las fotorresistencias, los leds y todo se
conecta al Arduino.
Ahora se prosigue realizando la programación en Arduino.
void setup() {
Serial.begin(9600);
DDRD=B11111110;
pinMode(A0,OUTPUT);//Activa/Desactiva 1er Display(Unidades)
pinMode(A1,OUTPUT);//Activa/Desactiva 2do Display(Punto)
pinMode(A2,OUTPUT);//Activa/Desactiva 3er Display(Decimales)
pinMode(A3,INPUT);//Lee el valor del 1er Sensor
pinMode(A4,INPUT);//Lee el valor del 2do Sensor
pinMode(13,OUTPUT);//Activa/Desactiva segmenti "a" de todos los Displays
pinMode(12,OUTPUT);//Activa/Desactiva punto del punto del 2do Display
pinMode(11,OUTPUT);//LED 1 del sensor 1
pinMode(10,OUTPUT);//LED 2 del sensor 2
digitalWrite(11,HIGH);//Mantiene el LED1 encendido por siempre
digitalWrite(10,HIGH);//Mantiene el LED2 encendido por siempre
}
int entrada1=0,entrada2=0,entrada3=0,entradainicio=0,vint=0,num1i=0,num2i=0,tiempodisplay=0;
charvchar[3],num1c[2],num2c[2];
String vstring;
int luz1=0,luz2=0;
float time1=0,time2=0,time3=0,velocidad=0;
voidloop() {
millis();
if(millis()>1000){ //Con esta condicion evito que opere el programa al instante
luz1=analogRead(A3);//998
luz2=analogRead(A4);//780
Serial.print(luz1);Serial.print(" "); Serial.print(luz2);
Serial.println("n");
Universidad Autónoma de Baja California 25/08/2014
3
//Etapa 1: Capturando tiempos en que se capta la diferencia de luz en los sensores
if(entradainicio==0){
if(luz1<998){
time1=millis();
entrada1=1; //Habilito la 1era de las dos condiciones para poder calcular la velocidad
}
if(luz2<780){
time2=millis();
entrada2=1;//Habilito la 2da de las dos condiciones para poder calcular la velocidad
}
}
//Etapa 2: Calculando la velocidad y transformadola a cadena para poder separar los numeros
if(entrada1==1&&entrada2==1){
entradainicio=1;//Evito que se capture alguna diferencia de luz en los sensores antes de que se mues tra la
1era prueba
time3=(time2-time1)/1000L;
velocidad=4.5/time3;
vint=velocidad;
vstring=String(vint);
vstring.toCharArray(vchar,3);
if(vint<10){//Si la velocidad es menos que 1.
num1c[0]=vchar[0];//Igualando el 1er caracter de la cadena vchar a otra cadena
num1i=atoi(num1c);//Convierte un array o caracter en numero
entrada3=1;//Habilito que se despliegen los numeros en los displays
entrada1=0;
entrada2=0;
}
if(vint>9){ //Si la velocidad es mayor o igual a 1.
num1c[0]=vchar[0];//Igualando el 1er caracter de la cadena vchar a otra cadena
num1i=atoi(num1c);//Convierte un array o caracter en numero
num2c[0]=vchar[1];//Igualando el 1er caracter de la cadena vchar a otra cadena
num2i=atoi(num2c);//Convierte un array o caracter en numero
entrada3=1;//Habilito que se despliegen los numeros en los displays
entrada1=0;
entrada2=0;
}
}
//Etapa 3: Despliego la velocidad en los displays.
if(entrada3==1){
if(tiempodisplay<3000){//Con esta condicionpermino que la velocidad se mantenga por 3 seg. en los
displays
if(vint<10){
analogWrite(A0,0);//ON 1er Display para unidades
analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion
analogWrite(A2,225);//OFF 3er Display para decimales
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
PORTD=B01111110;//Imprimiendo numero Cero en el 1er Display(Activado por ceros)
delay(10);
analogWrite(A0,225);//OFF 1er Display para unidades
analogWrite(A1,0);//ON 2do Display punto(marcado en el Display como un guion
analogWrite(A2,225);//OFF 3er Display para decimales
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
PORTD=B00000000;//Imprimiendo Guion(usado como punto) en el 2do Display
delay(10);
analogWrite(A0,225);//OFF 1er Display para unidades
analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion
analogWrite(A2,0);//ON 3er Display para decimales
digitalWrite(12,LOW);
numero1();
delay(10);
Universidad Autónoma de Baja California 25/08/2014
4
tiempodisplay=tiempodisplay+30;
}
if(vint>9){
analogWrite(A0,0);//ON 1er Display para unidades
analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion
analogWrite(A2,225);//OFF 3er Display para decimales
digitalWrite(13,LOW);//Apaga el segmento "a" de los displays
numero1();
delay(10);
analogWrite(A0,225);//ON 1er Display para unidades
analogWrite(A1,0);//OFF 2do Display punto(marcado en el Display como un guion
analogWrite(A2,225);//OFF 3er Display para decimales
digitalWrite(13,LOW);
digitalWrite(12,HIGH);//Mantiene el punto de la velocidad encendid
PORTD=B00000000;//Imprimiendo Guion(usado como punto) en el 2do Display
delay(10);
analogWrite(A0,225);//ON 1er Display para unidades
analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion
analogWrite(A2,0);//OFF 3er Display para decimales
digitalWrite(12,LOW);//Mantiene el punto apagado
numero2();
delay(10);
tiempodisplay=tiempodisplay+30;
}
if(tiempodisplay>2999){//Con esta condicionpermido que se borre todo de los displays pasados 3 seg. de
haber mostrado algo
PORTD=B00000000;
digitalWrite(13,LOW);
digitalWrite(12,LOW);
entradainicio=0;//Habilito la lectura de luz en los sensores, para poder iniciar todo el proceso devuelta.
entrada3=0;//Deshabilito que cualquier numero se despliege en los displays.
tiempodisplay=0;//Evito que los displays se queden apagados por siempre.
luz1=1010;
luz2=810;
}
}
}
}
}
///////////////////////////Funciones Numero//////////////////////////
void numero1(){
switch(num1i){
case 0:
digitalWrite(13,HIGH);
PORTD=B01111110;
break;
case 1:
PORTD=B00001100;
break;
case 2:
digitalWrite(13,HIGH);
PORTD=B10110110;
break;
case 3:
digitalWrite(13,HIGH);
PORTD=B10011110;
break;
case 4:
PORTD=B11001100;
break;
case 5:
digitalWrite(13,HIGH);
Universidad Autónoma de Baja California 25/08/2014
5
PORTD=B11011010;
break;
case 6:
digitalWrite(13,HIGH);
PORTD=B11111010;
break;
case 7:
digitalWrite(13,HIGH);
PORTD=B00001110;
break;
case 8:
digitalWrite(13,HIGH);
PORTD=B11111110;
break;
case 9:
digitalWrite(13,HIGH);
PORTD=B11011110;
break;
}
}
void numero2(){
switch(num2i){
case 0:
digitalWrite(13,HIGH);
PORTD=B01111110;
break;
case 1:
PORTD=B00001100;
break;
case 2:
digitalWrite(13,HIGH);
PORTD=B10110110;
break;
case 3:
digitalWrite(13,HIGH);
PORTD=B10011110;
break;
case 4:
PORTD=B11001100;
break;
case 5:
digitalWrite(13,HIGH);
PORTD=B11011010;
break;
case 6:
digitalWrite(13,HIGH);
PORTD=B11111010;
break;
case 7:
digitalWrite(13,HIGH);
PORTD=B00001110;
break;
case 8:
digitalWrite(13,HIGH);
PORTD=B11111110;
break;
case 9:
digitalWrite(13,HIGH);
PORTD=B11011110;
break;
}
}
Universidad Autónoma de Baja California 25/08/2014
6
El esquema de todo el circuito se puede apreciar en la siguiente figura.
El sistema finalizado se muestra en la figura siguiente.
5 CONCLUCION
El desarrollo de esta práctica en verdad se me
hizo extenso, porque para poder realizarlo
tuvimos que realizar una serie de pruebas con
las fotorresistencias para que la variación fuera
lo másmínimo posible, la practica la pudimos
finalizar aunque con una detallitos, no supimos
cómo evitar que la fotorresistencia variara.
Universidad Autónoma de Baja California 25/08/2014
7
La primera prueba o medición de velocidad salía
perfectamente, pero cuando queríamos realizar
enseguida la segunda prueba surgían errores
debido a que los valores de las fotorresistencias
variaban y esto provocaba mediciones erróneas
y por lo tanto se realizaban errores en los
cálculos. (Marcos Marcos Fernando)
6 REFERENCIAS
[1]http://platea.pntic.mec.es/~lmarti2/arduino/introar
du/index.htm

Más contenido relacionado

DOCX
1455363182 s.a.-robotica-jugando-con-el-trompo
PDF
61316766 cuaderno-de-trabajo-electricidad-sec-tecnicas
DOCX
Experiencia Escolar: Circuitos Eléctricos
DOC
planificacion de materia instalaciones y aplicacion de la energia-5°
PDF
Electricidad basica 2 grado noveno
PDF
Informe de ponchado
PPTX
Internet en el Aula- Actividades con TIC -adaptado
DOCX
MODULO DE ELECTRICIDAD 1° AÑO
1455363182 s.a.-robotica-jugando-con-el-trompo
61316766 cuaderno-de-trabajo-electricidad-sec-tecnicas
Experiencia Escolar: Circuitos Eléctricos
planificacion de materia instalaciones y aplicacion de la energia-5°
Electricidad basica 2 grado noveno
Informe de ponchado
Internet en el Aula- Actividades con TIC -adaptado
MODULO DE ELECTRICIDAD 1° AÑO

La actualidad más candente (20)

PDF
LB CIRCUITOS 1 todas las practicas a copiar.pdf
PDF
Guía de electrónica y arduino para jóvenes y adultos.pdf
PPTX
Proyecto de aula conozcamos los circuitos eléctricos
DOCX
Informe de Redes, Ponchado y cableado
PDF
1 taller de internet -cómo funciona y que se necesita para conectarse
DOCX
Proyecto cientifico Informatica
PPTX
Presentacion de-energia-inalambrica
DOCX
Ley de ohm ejercicios
DOCX
Circuito en paralelo
PPT
IMPORTANCIA DEL INTERNET EXPLORER
PPTX
Materiales Conductores
DOCX
Circuitos electricos
DOCX
Taller herramientas tecnologicas
DOCX
Conexiones de varios receptores en un mismo circuito
PPT
Internet (Exposicion)
PPTX
Protoboard
PPTX
GRUPO 5 - TELECOMUNICACIONES Y OTROS SERVICIOS DE INFORMACIÓN.pptx
DOC
prácticas coco drile
PDF
100 ejercicios ohms para la UNI
PPTX
LB CIRCUITOS 1 todas las practicas a copiar.pdf
Guía de electrónica y arduino para jóvenes y adultos.pdf
Proyecto de aula conozcamos los circuitos eléctricos
Informe de Redes, Ponchado y cableado
1 taller de internet -cómo funciona y que se necesita para conectarse
Proyecto cientifico Informatica
Presentacion de-energia-inalambrica
Ley de ohm ejercicios
Circuito en paralelo
IMPORTANCIA DEL INTERNET EXPLORER
Materiales Conductores
Circuitos electricos
Taller herramientas tecnologicas
Conexiones de varios receptores en un mismo circuito
Internet (Exposicion)
Protoboard
GRUPO 5 - TELECOMUNICACIONES Y OTROS SERVICIOS DE INFORMACIÓN.pptx
prácticas coco drile
100 ejercicios ohms para la UNI
Publicidad

Similar a DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO (20)

DOCX
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
DOCX
CONTADOR BINARIO ASCENDENTE DE 8 BITS CON ARDUINO
DOCX
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
DOCX
Señales con arduino y DAC
DOCX
CONTADOR BINARIO ASCENDENTE DE 14 BITS CON ARDUINO
DOCX
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino (1)
DOCX
Tarjeta arduino
DOCX
Tarjeta arduino
DOCX
Trabajo final.
PDF
Trabajo de tecnologia
PDF
ARDUBLOCK
DOCX
Trabajo de tecnologia
PDF
Trabajo de tecnologia (2)
DOCX
Trabajo de tecnologia
DOCX
Arduino componentes
PDF
Arduino
PDF
Tarjeta arduino
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
Señales con arduino y DAC
CONTADOR BINARIO ASCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
Tarjeta arduino (1)
Tarjeta arduino (1)
Tarjeta arduino (1)
Tarjeta arduino
Tarjeta arduino
Trabajo final.
Trabajo de tecnologia
ARDUBLOCK
Trabajo de tecnologia
Trabajo de tecnologia (2)
Trabajo de tecnologia
Arduino componentes
Arduino
Tarjeta arduino
Publicidad

Más de Fernando Marcos Marcos (20)

DOCX
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
DOCX
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
DOCX
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
DOCX
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
PDF
DISEÑO DE PCB CON MODULO DE TRANSMISIÓN Y RECEPCIÓN RN41
PDF
DISEÑO Y DESARROLLO DE UNA PLACA PCB CON ATMEGA 328
DOCX
DISEÑO DEL JUEGO PING PONG EN FPGA - VHDL - VGA
DOCX
APLICACIONES DE FOURIER
DOCX
APLICACIONES DE LAPLACE
DOCX
CONTROL AUTOMATICO DE GANANCIA (AGC)
DOCX
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
DOCX
USO DEL TRANSISTOR COMO SWITCH - TRANSISTOR EN CORTE Y EN SATURACION - TRANSI...
PDF
SISTEMA DE CONTROL Y MONITOREO DE HUMEDAD EN LOMBRICOMPOSTA - HUMIDITY MONITO...
DOC
DISEÑO ANALOGICO Y ELECTRONICA - ADC - CONVERTIDOR ANALÓGICO DIGITAL - ANALOG...
DOCX
DISEÑO ANALOGICO Y ELECTRONICA - DAC 8 BITS
DOCX
DISEÑO Y ELECTRÓNICA ANALÓGICA - OSCILADORES
DOCX
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DOCX
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DOCX
DISEÑO Y ELECTRÓNICA ANALÓGICA - CONFIGURACIONES DEL OP AMP LM741
DOCX
DISEÑO ANALOGICO - AMPLIFICADOR DE INSTRUMENTACION INA114 Y LM741
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
MATRIZ LED 4x10 CON ARDUINO - ATMEGA328P
GENERADOR DE SEÑALES CON LM741 - SIGNAL GENERATOR
DISEÑO DE PCB CON MODULO DE TRANSMISIÓN Y RECEPCIÓN RN41
DISEÑO Y DESARROLLO DE UNA PLACA PCB CON ATMEGA 328
DISEÑO DEL JUEGO PING PONG EN FPGA - VHDL - VGA
APLICACIONES DE FOURIER
APLICACIONES DE LAPLACE
CONTROL AUTOMATICO DE GANANCIA (AGC)
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
USO DEL TRANSISTOR COMO SWITCH - TRANSISTOR EN CORTE Y EN SATURACION - TRANSI...
SISTEMA DE CONTROL Y MONITOREO DE HUMEDAD EN LOMBRICOMPOSTA - HUMIDITY MONITO...
DISEÑO ANALOGICO Y ELECTRONICA - ADC - CONVERTIDOR ANALÓGICO DIGITAL - ANALOG...
DISEÑO ANALOGICO Y ELECTRONICA - DAC 8 BITS
DISEÑO Y ELECTRÓNICA ANALÓGICA - OSCILADORES
DISEÑO Y ELECTRONICA ANALOGICA - AMPLIFICADOR DIFERENCIADOR E INTEGRADOR - DI...
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRÓNICA ANALÓGICA - CONFIGURACIONES DEL OP AMP LM741
DISEÑO ANALOGICO - AMPLIFICADOR DE INSTRUMENTACION INA114 Y LM741

Último (20)

PPTX
FOP Modulo 1 FU 220520993216514651133.pptx
PPT
CLASE_1_CICLO_HIDROLOGICO_ALUMNOS_2015.ppt
PPTX
teoría de función de transferencia de ing.
PDF
clase 1 dermocosmetica 2025 I (1).pdf..
PPTX
Introduccion a microcontroladores PIC.pptx
PPTX
clase hierbas aromaticas.pptx-----------------
PPTX
INFORME N° 3 MERCADO FINANCIERO Y MERCADO DE CAPITALES EXPOSICION.pptx
PPT
Presentación sobre sistemas estructurales de acero.ppt
PDF
Libro-Bases de la Agroecologia- altieri 1999
PDF
Curso de Iniciación INTELIGENCIA ARTIFICIAL
PDF
REALITY "Vive como quieras ser" Un año sobre el terreno creando un escenario ...
DOCX
Manual de Capacitación suelos trabajo edwin varon.docx
PDF
SEMINARIO SOLDADURA FCAW 262024ACTUALEDIT (1) (1).pdf
PDF
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
PDF
MODULO 1 Base Legal Nacional y sus aplicaciones.pdf
PPTX
MEDIDAS ELECTRICAS electricas de tecnica
PPT
Sistema de muestrea de datos en operaciones
PPTX
Trabajo Norma RETIE REGLAMENTO TECNICO DE INSTALACIONES ELECTRICAS
PPTX
CONCEPCIONES SOBRE LA ESTRUCTURA DE LA MATERIA.pptx
PPTX
Derecho Constitucional . Poder y principios del sistema republicano de poder ...
FOP Modulo 1 FU 220520993216514651133.pptx
CLASE_1_CICLO_HIDROLOGICO_ALUMNOS_2015.ppt
teoría de función de transferencia de ing.
clase 1 dermocosmetica 2025 I (1).pdf..
Introduccion a microcontroladores PIC.pptx
clase hierbas aromaticas.pptx-----------------
INFORME N° 3 MERCADO FINANCIERO Y MERCADO DE CAPITALES EXPOSICION.pptx
Presentación sobre sistemas estructurales de acero.ppt
Libro-Bases de la Agroecologia- altieri 1999
Curso de Iniciación INTELIGENCIA ARTIFICIAL
REALITY "Vive como quieras ser" Un año sobre el terreno creando un escenario ...
Manual de Capacitación suelos trabajo edwin varon.docx
SEMINARIO SOLDADURA FCAW 262024ACTUALEDIT (1) (1).pdf
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
MODULO 1 Base Legal Nacional y sus aplicaciones.pdf
MEDIDAS ELECTRICAS electricas de tecnica
Sistema de muestrea de datos en operaciones
Trabajo Norma RETIE REGLAMENTO TECNICO DE INSTALACIONES ELECTRICAS
CONCEPCIONES SOBRE LA ESTRUCTURA DE LA MATERIA.pptx
Derecho Constitucional . Poder y principios del sistema republicano de poder ...

DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO

  • 1. Universidad Autónoma de Baja California 25/08/2014 1 VELOCIDAD DE UNA CANICA Marcos Marcos Fernando [email protected] RESUMEN:Esta práctica consistió en realizar un sistema capaz de medir la velocidad de una canica, para poder elaborar este sistema se utilizaron sensores de luz, leds, arduino, displays y algunos otras herramientas. Para poder medir la velocidad de la canica la hicimos rodar por un tubo, colocamos dos sensores de luz en los extremos para que se detectara en qué momento se obstruía la luz en ellos, se contó el tiempo que llevo corriendo el sistema, con los datos obtenido que fueron tiempo y distancia se pudo calcularla velocidad, y de ahí se imprimieron en tres displays conectados en cascadas. 1 INTRODUCCIÓN El desarrollo de sistemas automáticos se ha tornado aún más sencillo con el uso de microcontroladores ya que la cantidad de funciones y aplicaciones que se les puede dar son en verdad extensas, se puede simplemente jugar con un led (Blink) hasta hacer sistemas más complejos como una mano robótica, un carrito, un cuadricoptero pero de hecho esto también se vuelve más sencillo con el uso de complementos que se adaptan de manera sencilla al microcontrolador,se puede decir que los limites en los usos y/o aplicaciones de los micros están en nuestra imaginación. 2 OBJETIVO La práctica consiste en utilizar tres indicadores de siete segmentos los cuales mostrarán la velocidad de una canica que baja sobre una pequeña pendiente, en la pendiente se encuentran colocados dos sensores los cuales permiten medir el tiempo en que la canica pasa se un punto A a un punto B. Los indicadores se deben encontrar en cero y una vez que la canica pasa por el sensor del punto B se debe mostrar la velocidad en centímetros por segundo.La velocidad se muestra por tres segundos y después los indicadores se regresan a cero.Una de las características del circuito es que los indicadores de siete segmentos se deben de encontrar conectados en paralelo, en esta ocasión no se permite utilizar decodificadores de siete segmentos para manejar los indicadores, asícomo plataformas de desarrollo de Arduino que tienen mayor número de salidas. 3 TEORÍA Arduino es una herramienta utilizada para que los ordenadores puedan controlar el mundo físico y no solo esto también sentirlo.Es una plataforma de desarrollo de computación física de código abierto, basada en una placa con un sencillo micro controlador y un entorno de desarrollo para crear software para la placa. Arduino se puede utilizar para crear objetos interactivos,leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de motores, luces, entre muchos más actuadores físicos. Los proyectos de arduino pueden ser autónomos o comunicarse con un programa que se ejecute en tu ordenador. La placa puede ser montada por el usuario o comprarla lista para usar, El software utilizado para la programación de esta plataforma es gratis. El lenguaje de programación de arduino es muy sencillo,de echo es similar a los lenguajes de programación de C++, Netbeans, entre otros, por esto mismo es fácil de utilizar. El software arduino es multiplataforma debido a que funciona con sistemas operativos como lo es Windows, Macintosh OSX y Linux. ¿Qué distingue a Arduino de otros microcontroladores? La filosofía open source -código abierto- que lo sustenta. Tanto el modo en que se ensambla la placa -hardware- como elcódigo fuente del programa Arduino -software- son de acceso público. Esto quiere decir que cualquiera de nosotros que usarlo y/o mejorarlo pueda hacerlo. 4 DESARROLLO Para el desarrollo de esta práctica es necesario contar con el siguiente material y equipo: - Micro Arduino - Jumpers - 2 leds - 2 Fotorresistencias - Cables - Pinzas de corte - 3Displays - 2 Tobos - Segueta - 2 Resistencias de 10kΩ - 2 Resistencias de 220Ω Procedimiento:
  • 2. Universidad Autónoma de Baja California 25/08/2014 2 Se elabora la base por donde correrá la canica, para ello se cortaron dos tubos,uno más grande que el otro. Cortados los dos tubos, se pegan para poder pegar un led en la parte superior y una fotorresistencia en la parte inferior en ambos extremos del tubo, estos se colocan 45 cm de separación. Ahora se arma todo el circuito, se colocan los displays,las fotorresistencias, los leds y todo se conecta al Arduino. Ahora se prosigue realizando la programación en Arduino. void setup() { Serial.begin(9600); DDRD=B11111110; pinMode(A0,OUTPUT);//Activa/Desactiva 1er Display(Unidades) pinMode(A1,OUTPUT);//Activa/Desactiva 2do Display(Punto) pinMode(A2,OUTPUT);//Activa/Desactiva 3er Display(Decimales) pinMode(A3,INPUT);//Lee el valor del 1er Sensor pinMode(A4,INPUT);//Lee el valor del 2do Sensor pinMode(13,OUTPUT);//Activa/Desactiva segmenti "a" de todos los Displays pinMode(12,OUTPUT);//Activa/Desactiva punto del punto del 2do Display pinMode(11,OUTPUT);//LED 1 del sensor 1 pinMode(10,OUTPUT);//LED 2 del sensor 2 digitalWrite(11,HIGH);//Mantiene el LED1 encendido por siempre digitalWrite(10,HIGH);//Mantiene el LED2 encendido por siempre } int entrada1=0,entrada2=0,entrada3=0,entradainicio=0,vint=0,num1i=0,num2i=0,tiempodisplay=0; charvchar[3],num1c[2],num2c[2]; String vstring; int luz1=0,luz2=0; float time1=0,time2=0,time3=0,velocidad=0; voidloop() { millis(); if(millis()>1000){ //Con esta condicion evito que opere el programa al instante luz1=analogRead(A3);//998 luz2=analogRead(A4);//780 Serial.print(luz1);Serial.print(" "); Serial.print(luz2); Serial.println("n");
  • 3. Universidad Autónoma de Baja California 25/08/2014 3 //Etapa 1: Capturando tiempos en que se capta la diferencia de luz en los sensores if(entradainicio==0){ if(luz1<998){ time1=millis(); entrada1=1; //Habilito la 1era de las dos condiciones para poder calcular la velocidad } if(luz2<780){ time2=millis(); entrada2=1;//Habilito la 2da de las dos condiciones para poder calcular la velocidad } } //Etapa 2: Calculando la velocidad y transformadola a cadena para poder separar los numeros if(entrada1==1&&entrada2==1){ entradainicio=1;//Evito que se capture alguna diferencia de luz en los sensores antes de que se mues tra la 1era prueba time3=(time2-time1)/1000L; velocidad=4.5/time3; vint=velocidad; vstring=String(vint); vstring.toCharArray(vchar,3); if(vint<10){//Si la velocidad es menos que 1. num1c[0]=vchar[0];//Igualando el 1er caracter de la cadena vchar a otra cadena num1i=atoi(num1c);//Convierte un array o caracter en numero entrada3=1;//Habilito que se despliegen los numeros en los displays entrada1=0; entrada2=0; } if(vint>9){ //Si la velocidad es mayor o igual a 1. num1c[0]=vchar[0];//Igualando el 1er caracter de la cadena vchar a otra cadena num1i=atoi(num1c);//Convierte un array o caracter en numero num2c[0]=vchar[1];//Igualando el 1er caracter de la cadena vchar a otra cadena num2i=atoi(num2c);//Convierte un array o caracter en numero entrada3=1;//Habilito que se despliegen los numeros en los displays entrada1=0; entrada2=0; } } //Etapa 3: Despliego la velocidad en los displays. if(entrada3==1){ if(tiempodisplay<3000){//Con esta condicionpermino que la velocidad se mantenga por 3 seg. en los displays if(vint<10){ analogWrite(A0,0);//ON 1er Display para unidades analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion analogWrite(A2,225);//OFF 3er Display para decimales digitalWrite(13,HIGH); digitalWrite(12,LOW); PORTD=B01111110;//Imprimiendo numero Cero en el 1er Display(Activado por ceros) delay(10); analogWrite(A0,225);//OFF 1er Display para unidades analogWrite(A1,0);//ON 2do Display punto(marcado en el Display como un guion analogWrite(A2,225);//OFF 3er Display para decimales digitalWrite(13,LOW); digitalWrite(12,HIGH); PORTD=B00000000;//Imprimiendo Guion(usado como punto) en el 2do Display delay(10); analogWrite(A0,225);//OFF 1er Display para unidades analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion analogWrite(A2,0);//ON 3er Display para decimales digitalWrite(12,LOW); numero1(); delay(10);
  • 4. Universidad Autónoma de Baja California 25/08/2014 4 tiempodisplay=tiempodisplay+30; } if(vint>9){ analogWrite(A0,0);//ON 1er Display para unidades analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion analogWrite(A2,225);//OFF 3er Display para decimales digitalWrite(13,LOW);//Apaga el segmento "a" de los displays numero1(); delay(10); analogWrite(A0,225);//ON 1er Display para unidades analogWrite(A1,0);//OFF 2do Display punto(marcado en el Display como un guion analogWrite(A2,225);//OFF 3er Display para decimales digitalWrite(13,LOW); digitalWrite(12,HIGH);//Mantiene el punto de la velocidad encendid PORTD=B00000000;//Imprimiendo Guion(usado como punto) en el 2do Display delay(10); analogWrite(A0,225);//ON 1er Display para unidades analogWrite(A1,225);//OFF 2do Display punto(marcado en el Display como un guion analogWrite(A2,0);//OFF 3er Display para decimales digitalWrite(12,LOW);//Mantiene el punto apagado numero2(); delay(10); tiempodisplay=tiempodisplay+30; } if(tiempodisplay>2999){//Con esta condicionpermido que se borre todo de los displays pasados 3 seg. de haber mostrado algo PORTD=B00000000; digitalWrite(13,LOW); digitalWrite(12,LOW); entradainicio=0;//Habilito la lectura de luz en los sensores, para poder iniciar todo el proceso devuelta. entrada3=0;//Deshabilito que cualquier numero se despliege en los displays. tiempodisplay=0;//Evito que los displays se queden apagados por siempre. luz1=1010; luz2=810; } } } } } ///////////////////////////Funciones Numero////////////////////////// void numero1(){ switch(num1i){ case 0: digitalWrite(13,HIGH); PORTD=B01111110; break; case 1: PORTD=B00001100; break; case 2: digitalWrite(13,HIGH); PORTD=B10110110; break; case 3: digitalWrite(13,HIGH); PORTD=B10011110; break; case 4: PORTD=B11001100; break; case 5: digitalWrite(13,HIGH);
  • 5. Universidad Autónoma de Baja California 25/08/2014 5 PORTD=B11011010; break; case 6: digitalWrite(13,HIGH); PORTD=B11111010; break; case 7: digitalWrite(13,HIGH); PORTD=B00001110; break; case 8: digitalWrite(13,HIGH); PORTD=B11111110; break; case 9: digitalWrite(13,HIGH); PORTD=B11011110; break; } } void numero2(){ switch(num2i){ case 0: digitalWrite(13,HIGH); PORTD=B01111110; break; case 1: PORTD=B00001100; break; case 2: digitalWrite(13,HIGH); PORTD=B10110110; break; case 3: digitalWrite(13,HIGH); PORTD=B10011110; break; case 4: PORTD=B11001100; break; case 5: digitalWrite(13,HIGH); PORTD=B11011010; break; case 6: digitalWrite(13,HIGH); PORTD=B11111010; break; case 7: digitalWrite(13,HIGH); PORTD=B00001110; break; case 8: digitalWrite(13,HIGH); PORTD=B11111110; break; case 9: digitalWrite(13,HIGH); PORTD=B11011110; break; } }
  • 6. Universidad Autónoma de Baja California 25/08/2014 6 El esquema de todo el circuito se puede apreciar en la siguiente figura. El sistema finalizado se muestra en la figura siguiente. 5 CONCLUCION El desarrollo de esta práctica en verdad se me hizo extenso, porque para poder realizarlo tuvimos que realizar una serie de pruebas con las fotorresistencias para que la variación fuera lo másmínimo posible, la practica la pudimos finalizar aunque con una detallitos, no supimos cómo evitar que la fotorresistencia variara.
  • 7. Universidad Autónoma de Baja California 25/08/2014 7 La primera prueba o medición de velocidad salía perfectamente, pero cuando queríamos realizar enseguida la segunda prueba surgían errores debido a que los valores de las fotorresistencias variaban y esto provocaba mediciones erróneas y por lo tanto se realizaban errores en los cálculos. (Marcos Marcos Fernando) 6 REFERENCIAS [1]http://platea.pntic.mec.es/~lmarti2/arduino/introar du/index.htm