Proyecto Tecnología
En este blog publicaremos información sobre ARDUINO y otros temas relacionados con la asignatura de tecnología industrial de 2º Bach. del instituto I.E.S. Parque de Monfragüe
martes, 19 de marzo de 2019
jueves, 7 de marzo de 2019
Creacción de un detector de metales
Como proyecto práctico en la clase de tecnología industrial de 2º de Bachillerato se nos planteó inicialmente el diseño y la construcción de un detector de metales utilizando Arduino uno, el cual habíamos utilizado en algunas prácticas anteriores para familiarizarnos con su funcionamiento y montaje. Me pareció un reto muy interesante a pesar de su dificultad, pero con la ayuda de nuestro profesor no ha resultado tener tanta dificultad como imaginaba. El código y el esquema de montaje le he sacado de un video que encontré en YouTube (dejaré el enlace al final del párrafo) y hemos tenido algunos problemas a la hora de encontrar los componentes porque no disponíamos de ellos en el taller de tecnología del instituto y tuvimos que sacarlos de un ordenador que no funcionaba. Con el circuito montado los problemas que tuvimos fueron con la bobina, al principio probamos una bobina grande que no era muy sensible, después fabricamos otra de menor tamaño pero su funcionamiento no era muy convincente. Decidimos fabricar otra bobina del tamaño de la primera con un número superior de espiras, pero seguía sin ser 100% efectiva, por eso decidimos finalmente fabricar otra del tamaño de la segunda, aumentando el número de espiras para aumentar el campo eléctrico y su funcionamiento no es el mas perfecto, pero para nosotros es suficiente.
Link video: https://youtu.be/orBxzw-kHtE
Link video: https://youtu.be/orBxzw-kHtE
miércoles, 6 de marzo de 2019
Código arduino del detector de metales
#define SET(x,y) (x |=(1<<y)) //-Bit set / clear macros
#define CLR(x,y) (x &= (~(1<<y))) // |
#define CHK(x,y) (x & (1<<y)) // |
#define TOG(x,y) (x^=(1<<y)) //-+
unsigned long t0=0; //-Ultima vez
int t=0; //-Tiempo entre ints
unsigned char tflag=0; //-Indicador de medición flag
float SENSITIVITY= 1000.0; //-Adivina qué
//-Generar interrupción cada 1000 oscilaciones de la bobina de busqueda
SIGNAL(TIMER1_COMPA_vect)
{
OCR1A+=1000;
t=micros()-t0;
t0+=t;
tflag=1;
}
void setup()
{
pinMode(13,OUTPUT); //-bocina pin
digitalWrite(12,HIGH); //-NULL SW. pull up
//-Configurar el contador1 para contar en el pin 5
TCCR1A=0;
TCCR1B=0x07;
SET(TIMSK1,OCF1A);
}
//-Float ABS
float absf(float f)
{
if(f<0.0)
return -f;
else
return f;
}
int v0=0; //-NULL value
float f=0; //-Medición value
unsigned int FTW=0; //-Click Tasa de generador
unsigned int PCW=0; //-Click Fase del generador
unsigned long timer=0; //-Click timer
void loop()
{
if(tflag)
{
if(digitalRead(12)==LOW) //-Check NULL SW.
v0=t; //-Ejemplo de nuevo valor nulo
f=f*0.9+absf(t-v0)*0.1; //-Promedio más de 10 muestras
tflag=0; //-Reset flag
float clf=f*SENSITIVITY; //-Convertir la medición en frecuencia de clic
if(clf>10000)
clf=10000;
FTW=clf;
}
//-Click generator
if(millis()>timer)
{
timer+=10;
PCW+=FTW;
if(PCW&0x8000)
{
digitalWrite(13,HIGH);
PCW&=0x7fff;
}
else
digitalWrite(13,LOW);
}
}
jueves, 28 de febrero de 2019
Suscribirse a:
Comentarios (Atom)
-
Como proyecto práctico en la clase de tecnología industrial de 2º de Bachillerato se nos planteó inicialmente el diseño y la construcción de...
-
#define SET(x,y) (x |=(1<<y)) //-Bit set / clear macros #define CLR(x,y) (x &= (~(1<<y))) // | #def...
