Búsqueda de calor ventilador de escritorio (usando Arduino) (5 / 7 paso)

Paso 5: El código

Resumen: Horas de duro trabajo y frustración condensan en un archivo de solo texto. Este es el final (sobre todo) trabajando bosquejo, escrito específicamente con un Arduino Uno en mente.

servoSweep() controla el exploración y almacenamiento de datos
tempRead() incluye todas las tonterías de i2c y recupera los datos desde el sensor de temperatura
findHot() devuelve el servo a la posición con la temperatura más caliente

Este es mi primer intento de codificación de Arduino, así que siéntete libre de dejarme saber si he hecho cosas claramente complicadas o torpe. La primera iteración funciona muy bien, pero después de el conflicto de las bibliotecas de Servo y i2cmaster y el servo va un poco las tuercas. Si alguien lo soluciona, póngase en contacto con me y actualizaré el código.

** TrackFan ** / /
Código y concepto por ePums
código de tempRead por Dave Eaton y SensorJunkie

#include < Servo.h >
#include < i2cmaster.h >

Servo mrservo;

int j = 0;
int pos;
int posVals [] = {}
0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120
};
doble tempVals [12];
int hotPos;

void tempRead() {}

Definir función de lectura de la temperatura del Sensor IR.
int dev = 0x5A << 1;
int data_low = 0;
int data_high = 0;
pec de int = 0;
i2c_start_wait(dev+I2C_WRITE);
i2c_write(0x07);

i2c_rep_start(dev+I2C_READ);
data_low = i2c_readAck(); Lee 1 byte y luego enviar ack
data_high = i2c_readAck(); Lee 1 byte y luego enviar ack
PEC = i2c_readNak();
i2c_stop();

Esto convierte alta y baja bytes juntos y los procesos de temperatura, MSB es un error y se omite en temps
doble tempFactor = 0,02; 0,02 grados por LSB
tempData doble = 0 x 0000;
int frac;

Esta máscaras off el bit de error de byte alto, entonces se mueve 8 bits a la izquierda y añade el byte bajo.
tempData = (doble) (((data_high & 0x007F) << 8) + data_low);
tempData = (tempData * tempFactor) -0.01;
tempData = tempData - 273.15;

tempVals [j] = tempData;
j += 1;
}

void servoSweep() {}
Serial.println ("servoSweep inicializar!");
j = 0;
pos = 0;
pos de RESET y los índices de temperatura
Delay(500);
Serial.println("positions:");
regresar a servo a la posición inicial
para (pos = 0; pos < 130; pos += 10)
{
mrservo.Write(POS);
mover servo 10 grados
Delay(200);
permite sensor resolver
tempRead();
Serial.println(POS);
leer y almacenar datos de temperatura
Delay(300);
}
}

void findHot() {}
Serial.println (¡ «findHot iniciado!");
encontrar la temperatura más alta, mover el servo a la posición correspondiente
int i = 0;
Índice de búsqueda local
int q = 0;
doble hotTemp = tempVals [0];
los datos de posición asociados con la temperatura más alta en un barrido determinado
para (i = 0; i < 13; i += 1) {}
Si (tempVals [i] > = hotTemp) {}
hotTemp = tempVals [i];
Serial.Print ("#" + String(i) + "caliente temperatura:");
Serial.println(hotTemp);
Delay(50);
q = i;
recuperar el índice de valor temp más alto en tempVals matriz
}
}
hotPos = posVals [q];
Serial.println ("hotPos:");
Serial.Print(hotPos);

recuperar el valor correspondiente de la posición de índice de posVals
Si (mrservo.attached()) {}
Serial.println ("Esto es leer la salida de ahora");
}
Delay(1000);
mrservo.Detach();
mrservo.Attach(3);
mrservo.Write(hotPos);
Delay(1000);
mover el servo
Serial.println ("volviendo a hotPos");


** DEMORA ENTRE EXPLORACIONES ** / / /
Delay(10000);

i = 0;
}

void setup() {}
Serial.Begin(9600);
i2c_init();
PORTC = (1 << PORTC4) | (1 << PORTC5);
}

void loop() {}
mrservo.Attach(3);
Delay(1000);
mrservo.Write(0);
i2c_init();
servoSweep();
Serial.println("temperatures!");
para (int n = 0; n < 13; n += 1) {}
Serial.println(tempVals[n]);
Delay(50);
}
findHot();

mrservo.Detach();
Delay(2000);
}

Artículos Relacionados

¿Ventilador de escritorio

¿Ventilador de escritorio

laboratorio consigue caliente y húmedo mientras que están experimentando? ¿Están sudando por el esfuerzo de una Junta de soldadura juntos? Si contestó sí, entonces parece que usted está necesitando este ventilador de escritorio de un ventilador de or
Hacer un ventilador de escritorio

Hacer un ventilador de escritorio

Hola a todos. Mi escritorio en serio estaba sufriendo agotamiento por el calor y mi ventilador actual la rutina y llevar a cabo independientemente de la lubricación y fijación. Supongo que era el final de su vida.Sin embargo, muchos (si es hard-core)
Ventilador de escritorio Spitfire.

Ventilador de escritorio Spitfire.

Es este instructable para que cómo agregar una dimensión extra a su avión modelo; una hélice de trabajo (y las luces) que es sorprendentemente buena como un ventilador de escritorio. Puede ser adaptado a cualquier aeronave de la mayoría de escalas, a
VENTILADOR de escritorio fácil con el refrigerador

VENTILADOR de escritorio fácil con el refrigerador

Hola!Este es mi primer DIY. Un ventilador de escritorio fácil con el SMPS de un PC.Paso 1: requisitos 1. dos ventiladores brushless DC de 12v.2. un caso SMPS (es fácilmente disponible en tiendas de reparación de computadoras)Interruptor de 3.A y algu
Creación de un ventilador de escritorio personalizado / refrigerador del ordenador portátil!

Creación de un ventilador de escritorio personalizado / refrigerador del ordenador portátil!

Welcome to my first Instructable.  He tenido esta idea por mucho tiempo pero finalmente conseguí la motivación para poner mi idea en a producción.En primer lugar quiero dar una pequeña historia / problema.   Tengo una laptop Dell XPS que se pone cali
Ventilador de escritorio velocidad controlada

Ventilador de escritorio velocidad controlada

cómo controlar una velocidad de los ventiladores de ordenador y convertirlo en un ventilador de escritorio.Paso 1: obtener la fuente de alimentación usted tendrá que conseguir un transformador de tren modelo. sólo asegúrese de que es de 12 voltios.Pa
Ventilador de escritorio USB

Ventilador de escritorio USB

este instructable le mostrará cómo hacer un ventilador de escritorio hacia fuera de antiguos componentes de la computadora. Este es un buen proyecto para un día lluvioso cuando cayeron como construir algo útil. Hago mi instructables muy exacta por lo
Ventilador de escritorio automático

Ventilador de escritorio automático

Que chupa demasiado caliente. ¿Lo que la hace aspirar a más? Cuando usted tiene que inclinarse para encender el ventilador de escritorio. No que nadie tiene energía para eso!Este tutorial le muestra cómo hacer su ventilador de escritorio enciende aut
Cómo hacer un ventilador de escritorio ECO de viejas piezas de la computadora

Cómo hacer un ventilador de escritorio ECO de viejas piezas de la computadora

aquí es mi proyecto sobre cómo hacer un ventilador de escritorio ECO de viejas piezas de la computadora. Este ventilador escritorio reducirá su gasto de enfriamiento. Este ventilador utiliza sólo 4 vatios!!!! de energía en comparación con regular esc
Cómo hacer un ventilador de escritorio simple y elegante de basura

Cómo hacer un ventilador de escritorio simple y elegante de basura

en este instructable te voy a mostrar cómo hice un ventilador de escritorio elegante trabajo de reciclar basura electrónica que encontré en la calle.Paso 1: Materiales y herramientas Esta es la lista de los materiales que utilicé:1 ventilador pequeño
Control remoto de webcam usando Arduino, SensorMonkey, jQuery y Justin.tv

Control remoto de webcam usando Arduino, SensorMonkey, jQuery y Justin.tv

Web-activar tus sensores interactivos sobre dispositivos de escritorio, smartphone y tablet.Este tutorial describe detalladamente cómo utilizar el servicio gratuito de SensorMonkey para remotamente controlar un pan y tilt cámara web conectada a un Ar
Controlar el acceso a su cerradura usando Arduino, SensorMonkey y RF módulo

Controlar el acceso a su cerradura usando Arduino, SensorMonkey y RF módulo

Control de acceso a su puerta desde cualquier lugar del planeta mediante su teléfono, ficha o PC.Esta configuración tiene dos segmentos principales, uno tiene la interfaz gráfica utilizando jQuery, SensorMonkey, Freeduino (Arduino compatible desarrol
Voz Control usando Arduino (Genuino fuera de Estados Unidos)

Voz Control usando Arduino (Genuino fuera de Estados Unidos)

¡ Hola!Este es un modelo de reconocimiento de voz usando Arduino uno. La idea es muy simple. Cuando hablamos de algo en la aplicación para android, la voz es enviada como una cadena en el módulo bluetooth HC-05 entonces el recibe Arduino (Genuino fue
El Tutorial más simple del zumbador; Usando Arduino

El Tutorial más simple del zumbador; Usando Arduino

Hey los fabricantes,Vamos a hacer un Simple timbre Quiz usando Arduino!¿Paso 1: Lo que podemos hacer con él?¿Qué podemos hacer con él?> quiz juego Buzzer> tocar melodías y mucho más...Paso 2:Cosas necesarias> Arduino Uno (comprar de Amazon.in) (c