Espejo infinito sensible a la temperatura (2 / 6 paso)

Paso 2: Sensor de temperatura de un cable + código

Esperaba el sensor al ser el aspecto más difícil de este proyecto, pero esto era una cosa no muertos-set en el que me sienta como un cavernícola de alto funcionamiento. El DS18S20 es extremadamente fácil a conectar y el código que encontré en bildr fue bastante fácil para mí entender a pesar de ser procesamiento analfabetos.

Arreglé los componentes en un protoboard siguiendo el diagrama de arriba, luego he descargado el archivo zip de aquí (http://bildr.org/2011/07/ds18b20-arduino/) y seguido el proceso de dos pasos necesario para imprimir los datos de temperatura en el monitor serie.  Porque proporcionan el código de sensor modificado a continuación, sin embargo, todo lo que necesitas para poner la carpeta "Un cable" en la librería de Arduino y usted debe ser bueno para ir.

Para lograr el desvanecimiento del LED, que necesitaba para almacenar los dos últimos valores para la comparación y no que hice una copia de la función de getTemp(), le cambió el nombre y había llamado las dos funciones en tándem con un retraso de entre. El código de acabado (con pasadores LED asignados y fade establecido) no es tan óptimo como podría ser, sin embargo parece funcionar perfectamente.

También tenga en cuenta qué pines los colores se asignan a y asegurarse de que esto se refleja en el protoboard.

#define REDPIN1 10
#define GREENPIN1 9
#define BLUEPIN1 11

#define REDPIN2 5
#define GREENPIN2 6
#define BLUEPIN2 3

#define FADESPEED 8 / / esto hace más lento

#include < OneWire.h >
flotador tempData [1];
Float tempDataPrev [1];

int DS18S20_Pin = 2; Pin señal DS18S20 digital 2

Temperatura chip entrada-salida
OneWire ds(DS18S20_Pin);  el pin digital 2

void setup(void) {}
Serial.Begin(9600);

pinMode (REDPIN1, salida);
pinMode (GREENPIN1, salida);
pinMode (BLUEPIN1, salida);

pinMode (REDPIN2, salida);
pinMode (GREENPIN2, salida);
pinMode (BLUEPIN2, salida);
}

Violeta valor 200, 0, 255
Valor rojo 255, 0, 0
Azul valor 0, 0, 255

void loop(void) {}

Float temperatura = getTemp();
Delay(1000);
Float temperaturePrev = getTempPrev();

int i;
int r1, g1, b1;
int r2, g2, b2;

para (int i = 0; i < 1; i ++) {}
tempDataPrev [i] = temperaturePrev;}

para (int i = 0; i < 1; i ++) {}
tempData [i] = temperatura;}

analogWrite (BLUEPIN1, 255);
analogWrite (REDPIN1, 255);
analogWrite (GREENPIN1, 0);

analogWrite (BLUEPIN2, 255);
analogWrite (REDPIN2, 255);
analogWrite (GREENPIN2, 0);

Si (tempDataPrev [0] == {} tempData[0])

valores iniciales
analogWrite (BLUEPIN1, 255);
analogWrite (REDPIN1, 255);
analogWrite (GREENPIN1, 0);

analogWrite (BLUEPIN2, 255);
analogWrite (REDPIN2, 255);
analogWrite (GREENPIN2, 0);
}

Si (tempDataPrev [0] < tempData[0]) {}

analogWrite (BLUEPIN2, 255);
analogWrite (REDPIN2, 255);
analogWrite (GREENPIN2, 0);

desde el violeta al azul al violeta

para (r1 = 255; r1 > 0 y r1--) {}
analogWrite (REDPIN1, r1);
Delay(FADESPEED);}

para (r1 = 0; r1 < 256; r1 ++) {}
analogWrite (REDPIN1, r1);
Delay(FADESPEED);}
}

Si (tempDataPrev [0] > tempData[0]) {}

analogWrite (BLUEPIN1, 255);
analogWrite (REDPIN1, 255);
analogWrite (GREENPIN1, 0);

desde el violeta hasta el rojo a la violeta

para (b2 = 255; b2 > 0; b2--) {}
analogWrite (BLUEPIN2, b2);
Delay(FADESPEED);}

para (b2 = 0 b2 < 256; b2 ++) {}
analogWrite (BLUEPIN2, b2);
Delay(FADESPEED);}

} }

Float getTempPrev() {}
Devuelve la temperatura de un DS18S20 en grados Celsius

datos del octeto [12];
addr Byte [8];

Si (! {ds.search(addr))}
no hay más sensores en cadena, de la búsqueda reset
DS.reset_search();
volver -1000;
}

Si (OneWire::crc8 (addr, 7)! = {addr[7])}
Serial.println ("CRC no es válido!");
volver -1000;
}

Si (addr [0]! = 0 x 10 & & addr [0]! = 0x28) {}
Serial.Print ("dispositivo no se reconoce");
volver -1000;
}

DS.Reset();
DS.Select(ADDR);
DS.Write(0X44,1); iniciar la conversión, con la energía del parásito en el final

byte actual = ds.reset();
DS.Select(ADDR);
DS.Write(0xBE); Bloc de notas de lectura

para (int i = 0; i < 9; i ++) {/ / necesitamos 9 bytes
datos [i] = ds.read();
}

DS.reset_search();

el byte MSB = datos [1];
octeto LSB = datos [0];

Float tempRead = ((MSB << 8) | LSB); utilizando el complemento de dos
Float TemperatureSum = tempRead / 16;

volver TemperatureSum;
}

Float getTemp() {}
Devuelve la temperatura de un DS18S20 en grados Celsius
Delay(2000);
datos del octeto [12];
addr Byte [8];

Si (! {ds.search(addr))}
no hay más sensores en cadena, de la búsqueda reset
DS.reset_search();
volver -1000;
}

Si (OneWire::crc8 (addr, 7)! = {addr[7])}
Serial.println ("CRC no es válido!");
volver -1000;
}

Si (addr [0]! = 0 x 10 & & addr [0]! = 0x28) {}
Serial.Print ("dispositivo no se reconoce");
volver -1000;
}

DS.Reset();
DS.Select(ADDR);
DS.Write(0X44,1); iniciar la conversión, con la energía del parásito en el final

byte actual = ds.reset();
DS.Select(ADDR);
DS.Write(0xBE); Bloc de notas de lectura

para (int i = 0; i < 9; i ++) {/ / necesitamos 9 bytes
datos [i] = ds.read();
}

DS.reset_search();

el byte MSB = datos [1];
octeto LSB = datos [0];

Float tempRead = ((MSB << 8) | LSB); utilizando el complemento de dos
Float TemperatureSum = tempRead / 16;

volver TemperatureSum;
}

Artículos Relacionados

Espejo infinito que parpadea a la música

Espejo infinito que parpadea a la música

Para un proyecto de clase nos requiere utilizar un arduino, un sensor y un interruptor. Yo quería hacer algo que las luces y a través de mis búsquedas de Instructables me encontré con toneladas de tutoriales de espejo infinito. Este es mi intento de
Cómo hacer una caja de espejo infinito

Cómo hacer una caja de espejo infinito

Lo que necesitaráAcceso a un cortador láser - realmente necesitarás esto porque la mayoría de las piezas se hace con un cortador láser.Acceso a un kit de soldado – realmente necesitarás un kit de soldado. Si no lo tiene o no tiene acceso a uno que de
TV de plasma a un espejo infinito

TV de plasma a un espejo infinito

Mi TV de Plasma de 2007 entregaron hace unos meses y se ha sentado alrededor de la casa. He intentado arreglarlo, pero después de la resolución de problemas y muchas horas buscando piezas baratas, no verse bien. A veces me gustaría añadir "reutilizar
Espejo infinito IKEA

Espejo infinito IKEA

Decidí tratar de construir un espejo infinito después de ver este post aquí en instructables. Tenía el marco IKEA colocación alrededor y decidí probar a utilizar, y es realmente un verdad Dios para este proyecto.Necesitarás:Marco Ribba de IKEA (ribba
Espejo infinito de escritorio independiente - fácil decorar

Espejo infinito de escritorio independiente - fácil decorar

Recientemente he trabajado con un montón de grandes personas para construir una instalación de arte espejo de 20 * 20ft infinito. Para agradecer a todo el mundo, construí y regaló 15 libre, espejos de escritorio infinito. Personas fueron super ansios
Reloj con patrones, fecha y timbre del espejo infinito

Reloj con patrones, fecha y timbre del espejo infinito

Se trata de un reloj de tiempo real del espejo infinito con indicación de la fecha, los patrones y modo de sueño.El microcontrolador es un PIC18F2550. un micro barato de 8 bits controller.running en modo PLL a 48MHz.También hay una melodía por hora j
Hacer un espejo infinito!

Hacer un espejo infinito!

Infinito espejo ilusión.Concepto extremadamente sencillo con impresionantes resultados.La ilusión puede parecer complicada pero es realmente muy fácil de hacer.Detalles de materiales y construcción para infinito espejo ilusiónLos tamaños y las medida
Espejo infinito con Logo intercambiable

Espejo infinito con Logo intercambiable

Seguro que si miras en mi perfil y la mayoría de mis marcas, verás me encanta cosas brillantes, más de LED y de Arduino o frambuesa Pi más felices soy...Esta comenzó vida como otro espejo infinito, en mi camino a mi local MakerSpace en Coventry vi un
Colgante de espejo infinito

Colgante de espejo infinito

he visto numerosos espejos del infinito y siempre me ha gustado el efecto.  Sin embargo, nunca he visto uno realmente pequeño.  Recientemente había adquirido un nuevo tipo de resina y quería probarlo.  Lo que vino a mi cabeza era el colgante de espej
Espejo infinito de LED programable Arduino

Espejo infinito de LED programable Arduino

¿Cansado de buscar en los elementos de la habitación que parecen tener profundidad finita?Tal vez considere la construcción de su propio espejo de Infinity LED programable Arduino!Esta ilusión óptica es un centro de atención y ofrece un montón de esp
10 "x 10" LED espejo infinito

10 "x 10" LED espejo infinito

Esto cubre el edificio el 10 "x 10" infinito espejo Kit de sistemas de Chromation. Pero los planes incluyen podrían utilizarse para construir una de sus piezas y suministros de acrílico, tablero de aglomerado o similares. Marco del kit está fabr
Espejo infinito del LED, 32 LED, patrones seleccionables, marco de la calidad

Espejo infinito del LED, 32 LED, patrones seleccionables, marco de la calidad

este instructivo ha sido actualizado con la mejor información y mejor construcción, por favor ve el 10 "x 10" LED infinito espejo InstructableEste Instructable cubiertas edificio mi disponible completo 8 "x 8" 32 LED infinito espejo Ki
Estuche de espejo infinito

Estuche de espejo infinito

joya caso provisto de una pequeña franja de led. Y algunos de la batería.Total cuesta 3 €Paso 1: Ir a un hobbyshop y vaya a la sección de accesorios de coche. Comprar una tira de led diseñada para las linternas del vehículo. Miden unos 50 cm (un pie
Espejo infinito portátil

Espejo infinito portátil

Este tutorial le mostrará cómo hacer un espejo infinito que se puede llevar dondequiera que usted quiera!Paso 1: materiales: Vas a necesitar:-un espejo-batería de 9v-lámina protectora de pantalla móvil-tira de LEDs (o LED)-interruptor-pinza de soport