Temperaturkänsliga Infinity Mirror (2 / 6 steg)

Steg 2: En Wire temperatursensor + kod



jag väntat sensorn för att vara den mest skrämmande aspekten av detta projekt, men detta var en sak inte död inställd på att jag känner mig som en högfungerande grottman. DS18S20 är extremt lätt att koppla in koden jag hittade på bildr var ganska lätt för mig att förstå trots att bearbetning analfabeter.

Jag ordnade komponenterna på en skärbräda efter diagrammet ovan, då jag laddat ner zip-filen finns här (http://bildr.org/2011/07/ds18b20-arduino/) och följde tvåstegsprocess och nödvändigt att skriva ut temperaturdata till seriell bildskärmen. Eftersom jag ge modifierade sensor koden nedan, behöver du placera mappen "En Wire" till Arduino biblioteket och du bör dock vara bra att gå.

För att uppnå den LED vissna, behövde jag för att lagra de sista två värdena för jämförelse, och att göra att jag gjorde en kopia av funktionen getTemp(), döpte om den till, och kallas de två funktionerna tillsammans med en fördröjning i mellan. Färdiga koden (med LED stift tilldelat och fade etablerade) är inte så optimalt som det kunde vara, men det verkar att fungera felfritt.

Tänk också på vilka stift färgerna tilldelas, och se till att detta återspeglas på en skärbräda.

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

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

#define FADESPEED 8 / / gör detta högre för att bromsa

#include < OneWire.h >
float tempData [1].
float tempDataPrev [1].

int DS18S20_Pin = 2; DS18S20 Signal stift på digital 2

Temperaturen chip i/o
OneWire ds(DS18S20_Pin); på digital stift 2

void setup(void) {
Serial.BEGIN(9600);

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

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

Violet värdet 200, 0, 255
Röd värde 255, 0, 0
Blå värdet 0, 0, 255

void loop(void) {

flyta temperatur = getTemp();
Delay(1000);
flyta temperaturePrev = getTempPrev();

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

för (int jag = 0; jag < 1; i ++) {
tempDataPrev [i] = temperaturePrev;}

för (int jag = 0; jag < 1; i ++) {
tempData [i] = temperatur;}

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

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

om (tempDataPrev [0] == tempData[0]) {

ursprungliga värden
analogWrite (BLUEPIN1, 255);
analogWrite (REDPIN1, 255);
analogWrite (GREENPIN1, 0);

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

om (tempDataPrev [0] < tempData[0]) {

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

från violett till blått till violett

för (r1 = 255, r1 > 0, r1--) {
analogWrite (REDPIN1, r1);
Delay(FADESPEED);}

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

om (tempDataPrev [0] > tempData[0]) {

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

från violett till rött till violett

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

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

} }

float getTempPrev() {
Returnerar temperaturen från en DS18S20 i grader Celsius

byte data [12].
byte addr [8].

om (! ds.search(addr)) {
Inga fler sensorer på kedja, Återställ sökning
DS.reset_search();
återvända-1000;
}

om (OneWire::crc8 (addr, 7)! = addr[7]) {
Serial.println ("CRC är inte giltig!");
återvända-1000;
}

om (addr [0]! = 0x10 & & addr [0]! = 0x28) {
Serial.Print ("enhet identifieras inte");
återvända-1000;
}

DS.Reset();
DS.Select(addr);
DS.write(0x44,1); Starta konvertering, med parasit driver på i slutet

byte närvarande = ds.reset();
DS.Select(addr);
DS.write(0xBE); Läs Scratchpad

för (int jag = 0; jag < 9; i ++) {/ / vi behöver 9 byte
data [i] = ds.read();
}

DS.reset_search();

byte MSB = data [1].
byte LSB = data [0];

flyta tempRead = ((MSB << 8) | LSB); med hjälp av två komplimang
flyta TemperatureSum = tempRead / 16;

återvända TemperatureSum;
}

float getTemp() {
Returnerar temperaturen från en DS18S20 i grader Celsius
Delay(2000);
byte data [12].
byte addr [8].

om (! ds.search(addr)) {
Inga fler sensorer på kedja, Återställ sökning
DS.reset_search();
återvända-1000;
}

om (OneWire::crc8 (addr, 7)! = addr[7]) {
Serial.println ("CRC är inte giltig!");
återvända-1000;
}

om (addr [0]! = 0x10 & & addr [0]! = 0x28) {
Serial.Print ("enhet identifieras inte");
återvända-1000;
}

DS.Reset();
DS.Select(addr);
DS.write(0x44,1); Starta konvertering, med parasit driver på i slutet

byte närvarande = ds.reset();
DS.Select(addr);
DS.write(0xBE); Läs Scratchpad

för (int jag = 0; jag < 9; i ++) {/ / vi behöver 9 byte
data [i] = ds.read();
}

DS.reset_search();

byte MSB = data [1].
byte LSB = data [0];

flyta tempRead = ((MSB << 8) | LSB); med hjälp av två komplimang
flyta TemperatureSum = tempRead / 16;

återvända TemperatureSum;
}

Se Steg
Relaterade Ämnen

Arduino-programmerbar LED Infinity Mirror

Är du trött på att titta på rummet element som förefaller ha ändliga djup?Kanske bör du överväga att bygga ditt eget Arduino-programmerbar LED Infinity spegel!Denna synvilla är ett blickfång och erbjuder massor av utrymme för anpassning och cool prog...

10 "x 10" LED Infinity Mirror

Detta täcker byggnaden en 10 "x 10" Infinity spegel Kit från Chromation system. Men inkluderade planerna kunde användas till att bygga en från egna delar och leveranser av akryl, masonit eller liknande. I kit ram är tillverkad av polystyren plas...

8 x 8 lysdioder Multiplexed Infinity Mirror

Lite annorlunda än din vanliga Infinity spegel. Använda en speglad akryl för tillbaka spegeln, borras 8 rader av 8 hål in i ett rutmönster. En LED är sedan placeras i varje hål och trådbunden upp så att jag kan vara multiplexed via en controller.Rame...

Infinity Mirror UV String Art

Välkommen till min andra Instructable!Infinity sträng konsten är unionen av en oändlighet spegel med UV-lysdioder och sträng konst.De optiska verkställer önskas är en oändlig återspegling av en glödande sträng konst.Huvudtanken är att sätta en sträng...

Infinity mirror WS2812

Hej alla!Jag vill visa dig hur man gör enkla infinity spegel.Steg 1: materialDu behöver:-pictureframe Ribba från IKEI-glas tallrik 21cmx21cm-24 WS2812 lysdioder-en meters Ethernetkabel-Folie till windows för bilar att göra spegel-arduino UNOSteg 2: b...

Audio Spectrum Analyzer Infinity Mirror

det är något fascinerande om blinkande lampor i synk med musik. Nej.. Varför inte blanda effekten med en infinity spegel?Delar:• spegel, falsk spegel och en spacer mellan 2.• 21 RGB gemensam katod lysdioder• 8 x 8 LED ljud spektrumanalysator• Tråd oc...

Cool ledde Infinity Mirror

Led infinity spegel som jag gör med vissa material som spegel från gamla hårddisk, lysdioder, plast spegel folie och batteri innehavaren.Se till att du prenumerera för mer awesome videor från macobt projekt!Prenumerera på min YOUTUBE-kanal:http://www...

Arduino-kontrollerad RGB LED Infinity Mirror

Uppdatering 11/22/2013: Tack till alla som röstade för det här projektet i Microcontroller Contest! Det var en av tre förstapristagare.Update 9/17/2013: Tack till alla som röstade för det här projektet i Arduino contest (jag var en av tio "andra pris...

Kromatiska temperatur Display - Arduino kontrollerad RGB LED Infinity Mirror

Detta projekt var löst inspirerad av , en väderstation display vars färg är baserad på utomhustemperaturen. Jag hade en rumskompis College som hade en av dessa och det var mycket användbart, i Pittsburgh särskilt, att bara kasta en blick på färgen oc...

LED infinity mirror

Avhandlingar infinity speglar är ganska cool och lätt att göra. Begreppet det att du har en vanlig spegel, med led-lampor mellan vanlig spegel och en två spegel. Två sätt spegeln är en dyrare och det ska vara samma storlek som en vanlig spegel. Jag a...

IKEA Infinity Mirror

Jag beslöt att försöka bygga en oändlighet spegel efter att ha sett detta inlägg här på instructables. Jag hade IKEA ram liggandes och beslutade att försöka använda den, och det var faktiskt en riktigt Gud passar för detta projekt.Du behöver:IKEA Rib...

DIY Altoids Infinity Mirror

Jag har aldrig gjort en oändlighet spegel innan, mycket mindre ägt en, och tyckte det var mycket mer komplex än det faktiskt var. Så under dekonstruktion 2014 (en global hackathon-ish typ av sak) blev ett av våra projekt denna altoids infinity spegel...

Infinity mirror

Hej, detta är min första instructables. jag fick idén från en annan instructables. och jag bygga min egen. hoppas du gillar det. och förresten kolla denna länk:http://youtu.be/MJcArT8Wmtk detta är finish produkten. Jag kan inte bara räkna ut hur man...

Infinity spegel klockan

Ända sedan min adresserbara RGB LED strips (WS2812B) kom från Aliexpress, har jag varit fascinerad av LED-projekt. Följa upp min framgång med min Charlieplexed LED klocka, ville jag skapa något med mer Jazz...Medan du surfar google bilder, jag kom öv...

Montering av "Kloka klockan 2" (Arduino-baserad väckarklocka med massor av extra funktioner)

denna handledning visar hur du monterar kitet för Wise klockan 2, ett öppen källkodsprojekt (hårdvara och mjukvara).En komplett Klok klockan 2 kit kan köpas här.Sammanfattningsvis är detta vad Wise klockan 2 kan göra (i den aktuella öppna källa mjukv...

Hur man löda - Basic lödning Guide

Lödning är processen för anslutning två metaller med lödkolv med hjälp av en löda att bilda en pålitlig elektrisk gemensamt.Detta är en grundläggande lödning guide för nybörjare om hand lödning med en lödkolv. Jag hoppas att det blir god hjälp för de...

Bluetooth termometer

Detta instructable detaljer att man gör en enkel 2 kanal termometer med 100K termistor sonder, en Bluetooth-modul och smartphone. Bluetooth-modulen är en LightBlue Bean som var utformad för att förenkla Bluetooth Low Energy app utveckling genom att a...

Bärbar Fresnel sol ugn

Dessa solstrålarna reste 150 miljoner kilometer att få här, det minsta du kan göra är sätta dem till god användning. Om du funderar på att utnyttja kraften i solen att laga din favorit gryta eller falla sönder, måste du bara att bygga en solugn Fresn...

High Power LED Driver kretsar

High-power ljusdioder: framtiden för belysning!men... Hur ska man använda dem? där får du dem?1-watt och 3-watt Power LED är nu allmänt tillgänglig i intervallet $3-$5, så jag har jobbat på en massa projekt nyligen som använder dem. i processen det s...