Med en enda RGB LED (eller en LED strip) för att visa information: klocka, termometer och en konstig kommunikatör (3 / 7 steg)

Steg 3: OnePixel termometer



Obs: Jag använder Celsius temperaturer i mina projekt. Jag är inte bekant med Fahrenheit system.

Den andra informativa funktionen av min krans var termometern. I själva verket termometern själv var min första Arduino projekt, och det är fortfarande arbetar i närheten, visar utomhustemperaturen på en binär "display". Garland var att begära data från det via I2C gränssnitt och Visa den i RGB.

Det är möjligt att använda samma tillvägagångssätt som beskrivs ovan om minuter, det vill säga en digital en visar tior och sådana. Detta tillvägagångssätt blir dock inte så intuitiv som temperaturen kan gå i negativa. Jag behövde också ett annat sätt att Visa temperaturen för att undvika förvirring, som både klocka och termometer var att arbeta på samma gång. Så använde jag en "analog" strategi här.

"Analog" tillvägagångssätt betyder du inte behöver konvertera sett färgerna i siffrorna, du kan bara koppla färger till hur vädret känns. Så här (från kallt till varmt, för vintern):

Röd: larm, väldigt kallt, bilen startar inte idag

Grön: riktigt kallt, klä följaktligen

Blå: kall, glöm inte handskar

Röd: runt frysning temp, räkna med slush, snöslask möjligt

Grön: vinter mode off

Och så vidare. Dessa basfärger är knutna till Celsius grader (-30 -20, -10, 0, + 10, se diagrammet) och ändra smidigt. Så om du ser, säg, en cyan – är det mellan grönt och blått, omkring 15 ° C; en lila nyans betyder något runt-5 ° C. Hela spektrumet spänner från rött till rött täcker 30 grader och sedan rullar över, det räcker inte att förvirra läsningar (en 30° C över natten temperatursänkning eller upphov är ganska sällsynta, och i vilket fall du kan titta ut genom fönstret att få den grundläggande idén om vad som pågår).

Även detta system är ganska snygg, när hustrun frågar för en temperatur måste du svara i exakta grader C, inte i färger. Så jag var tvungen att "rastrera" diagrammet och tilldela specifika värden specifika färger. Detta resulterade i en 2° C noggrannhet, vilket är OK för en casual projekt. Finns det andra diagrammet ovan. Men som diskuterats tidigare, dessa färger är verkligen inte slutgiltig och kan bli lätt förstörd, som i sin tur ledde till ett 'pendulum' visualiseringssystem.

I "pendeln" läge RGB LED visar inte bara det aktuella värdet, men det är grannar, växling mellan färgerna detta sätt: nuvarande – tidigare – nuvarande – nästa – aktuell-föregående, etc. Detta ger den hänvisning som behövs för att spika ner exakt nuvarande färg som, säg, röd-orange eftersom det är grannar är röd och orange. Det gör också en krans ser bättre genom att ge vissa animering.

Skissen visar en 'pendel-analog' metod är nedan. Obs: i denna skiss jag får temperaturen på termometern Arduino enheten via I2C; ändra getTemp() funktion enligt dina inställningar. Sinus-våg färg förändring algoritmen är från min tidigare instructable.

#include < Wire.h >

#define RED 3 / / pins RGB LED är ansluten till
#define grön 5
#define blå 6
int temperatur;
byte temperPos, prevPos, nextPos;
sinusvåg array
CONST uint8_t lyser [360] = {
0, 0, 0, 0, 0, 1, 1, 2,
2, 3, 4, 5, 6, 7, 8, 9,
11, 12, 13, 15, 17, 18, 20, 22,
24, 26, 28, 30, 32, 35, 37, 39,
42, 44, 47, 49, 52, 55, 58, 60,
63, 66, 69, 72, 75, 78, 81, 85,
88, 91, 94, 97, 101, 104, 107, 111,
114, 117, 121, 124, 127, 131, 134, 137,
141, 144, 147, 150, 154, 157, 160, 163,
167, 170, 173, 176, 179, 182, 185, 188,
191, 194, 197, 200, 202, 205, 208, 210,
213, 215, 217, 220, 222, 224, 226, 229,
231, 232, 234, 236, 238, 239, 241, 242,
244, 245, 246, 248, 249, 250, 251, 251,
252, 253, 253, 254, 254, 255, 255, 255,
255, 255, 255, 255, 254, 254, 253, 253,
252 251, 251, 250, 249, 248, 246, 245,
244 242, 241, 239, 238, 236, 234, 232,
231, 229, 226, 224, 222, 220, 217, 215,
213, 210, 208, 205, 202, 200, 197, 194,
191, 188, 185, 182, 179, 176, 173, 170,
167, 163, 160, 157, 154, 150, 147, 144,
141, 137, 134, 131, 127, 124, 121, 117,
114 111, 107, 104, 101, 97, 94, 91,
88, 85, 81, 78, 75, 72, 69, 66,
63 60, 58, 55, 52, 49, 47, 44,
42, 39, 37, 35, 32, 30, 28, 26,
24, 22, 20, 18, 17, 15, 13, 12,
11, 9, 8, 7, 6, 5, 4, 3,
2, 2, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0};

en matris med förväg ordnad RGB värden
för 10mm RGB LED.
byte RGBready [15] [3] = {
{255, 0, 0}, / / R0
{208, 47, 0}, / / R1
{169, 86, 0}, / / R2
{130, 125, 0}, / / R3
{103, 151, 0}, / / R4
{0, 255, 0}, / / G0
{0, 248, 7}, / / G1
{0, 217, 37}, / / G2
{0, 171, 84}, / / G3
{0, 67, 188}, / / G4
{0, 0, 255}, / / B0
{103, 0, 152}, / / B1
{127, 0, 127}, / / B2
{169, 0, 86}, / / B3
{224, 0, 31}, / / B4
};
void setup() {
Wire.BEGIN();
Serial.BEGIN(9600);
}
void loop() {
temperatur = getReadings(); begäran temperatur

beräkna positionen för temperatur mätare
med tanke på 2 grad noggrannhet
temperPos = ((temperature + 60)/2) % 15.
Ange värden för föregående och nästa positioner
bara för att göra koden tydligare
prevPos = (temperPos + 14) % 15.
nextPos = (temperPos + 1) % 15.

skriva ut RGBready ståndpunkt - för felsökning
Serial.println(temperPos);
Shift färger i det mest uppenbara sättet
shiftColors (temperPos, prevPos, 10);
shiftColors (prevPos, temperPos, 10);
shiftColors (temperPos, nextPos, 10);
shiftColors (nextPos, temperPos, 10);
}
begära temperatur: Jag använder en andra Arduino med en termometer på den.
Ändra denna funktion enligt din setup (1-wire, I2C, oavsett).
resultatet får hamna i form av ett heltal.
int getReadings()
{
int humör;
Wire.requestFrom (15, 1); begära en byte från enhet 15
While(Wire.available())
humör = Wire.read() - 60. för att undvika negativ den sändande enheten
Serial.println(Temper); lägger till 60 i sin behandling
returnera humör;
}
funktion för färgskiftning mellan
positioner i matrisen RGBready. Här en använder den
sinusvåg algoritm och ljus [] förväg ordnad matrisen ovan
delayVal anger hastigheten för övergång
void shiftColors (byte cur, byte nästa, byte delayVal)
{
uint16_t färg [3], nextColor [3].
lång colorStep [3].

showRGBcolor(cur); med tydlig första färgen
beräkna steg i unsigned int format att undvika att använda flöten
för (byte k = 0; k < 3; k ++) {
färg [k] = RGBready [cur] [k] << 8;
nextColor [k] = RGBready [Nästa] [k] << 8;
colorStep [k] = ((långa) nextColor [k] - färg [k]) / 255;
}
Ange färger i 120 (360/3) steg, konvertera tillbaka till byte
för (byte k = 0; k < 120; k ++)
{
setRGBpoint (0, (color[0]+colorStep[0]*lights[k]) >> 8,
(color[1]+colorStep[1]*lights[k]) >> 8,
(color[2]+colorStep[2]*lights[k]) >> 8);
Delay(delayVal);
}
showRGBcolor(next); avsluta med tydlig andra färgen
}
två äldre funktioner aktivera lysdioder.
Jag använder dem här att behålla överensstämmelsen mellan skisser
båda är för gemensam anod lysdioder. Om du använder gemensam katod sådana,
ta bort den "255-" bitar.
void setRGBpoint (uint8_t LED uint8_t röd, uint8_t grön, uint8_t blå)
{
analogWrite (röd, 255-röd);
analogWrite (grön, 255-grön);
analogWrite (blå, 255-blå);
}
void showRGBcolor(byte curLED)
{
analogWrite (röd, 255-RGBready[curLED][0]);
analogWrite (gröna, 255-RGBready[curLED][1]);
analogWrite (blå, 255-RGBready[curLED][2]);
}

Se Steg
Relaterade Ämnen

Raspberry Pi spektrumanalysator med RGB LED Strip och Python

söker ett första projekt att prova på en Raspberry Pi, jag men vad bättre än en spektrumanalysator? (Denna display är felaktigt kallas som en grafisk equalizer--låt oss ändra ljudet, inte Visa det)Jag kunde få det gör 2048pt FFTs och avkodning mp3s i...

IKEA RGB Led Strip 2 WiFi Hack

följande projektet beskriver hur till hacka en IKEA DIODER RGB Led Strip för att lägga till en WiFi-anslutning och tillgång till en intern webbserver för att konfigurera färger med låg budget lösningar! Hacket utnyttjar en openPicus Flyport WiFi modu...

PEX rör hexagoner med RGB LED Strip

Byggd för en scen tillbaka droppe har detta projekt vissa hexagon figurer gjorda av 3/4" PEX rör, liknar en LED hula hoop, några 12 Volt RGB LED strip och en NLED 30 kanal hög nuvarande LED-Controller. PEX hexagoner är nästan Sömlös söker med hjälp a...

RGB LED Strip krets med Arduino

Detta Instructable omfattar montering av en krets kan PWM-ning (puls bredd modulerande) en 9-12v RGB LED strip och programmering en Arduino att cykla genom en rad olika färger. Jag kommer att diskutera hur man montera en transistor till en kylfläns &...

Komma igång med NeoPixel / WS2812 RGB LED

[Spela Video]I detta Instructable kommer vi att undersöka om den adresserbara RGB LED (WS2812) eller populärt känd som Adafruit NeoPixel. NeoPixel är en familj av ringar, band, skivor & pinnar av pulserande, färgglada miniatyr lysdioder. Dessa är cha...

RGB - Led Strip 12 V kontrolleras av en ATtiny85 med en 125Khz RFID modul

Den grundläggande idén gav mig denna sida RGB-RFID-lampa. Men eftersom jag har en hel del ATtiny85 jag kommer använda denna mikro-controller. För att göra det lättare för mig, testade jag alla del först på en Arduino Uno.Material:1 x RGB – Led strip...

Smart telefon kontrollerade julgran med RGB LED Strip

eftersom julen är här, vi dekorerade denna julgran med RGB LED Strip för vår julfest, och gjorde det en smart telefon kontrollerade träd. XD. It kommer att säker presentera en "sista minuten" magi för Xmas showen. Julen kommer men fastnat räkna...

SoGo Mini endast bärbar Multi högtalare med APP kontrollerad RGB LED-ljus

Kommer snart SoGo Mini enda bärbara Multi högtalare med APPKontrollerade RGB LED-ljus och anpassningsbara ring färg. Brett spektrum av kompatibilitet med andra enheter, såsom Mac, PC, Android, IOS, 20 plus timmars power backup och bred räckvidd gör d...

RGB LED Strip Controller

Detta är en fjärrstyrd flerfärgad LED-Strip controller låda jag gjort för en vän. Vi planerade att installera subtil belysning inuti bilen som vi fick en liten controller låda + fjärrkontroll med flerfärgad LED Strips. Olyckligtvis, vi kunde inte öpp...

Everymans enkel WS2801 RGB LED Strip Controller

Syftet med detta instructable är man gör vanliga människor kunna ta kontroll över WS2801 RGB led strips för hem eller butik dekoration med minimal ansträngning. WS2801 ledde remsorna har ett litet chip i varje led och gör att du kan ange varje LED fä...

WiFi kontrollerad RGB LED Strip

De IR-fjärrkontroller som används för att styra RGB LED strips kan ibland bli irriterande på grund av deras begränsade räckvidd och jakt på fjärrkontrollen när du inte hittar den. Detta enkla, men effektiva projekt kan lösa ett problem genom att kont...

Arduino kontrollerad RGB LED strip för vardagsrummet

Tanken bakom denna lilla projekt var att ha lite ganska indirekta humör ljus i vardagsrummet. Den styrs av openHAB servern (det projektet är fortfarande på listan som ska läggas till denna webbplats) installerat på en Raspberry Pi. Naturligtvis, kan...

ARDUINO kontrollerade 12v RGB LED STRIP

Ungefär ett år sedan upptäckte jag RGB LED strips på Amazon. Att vara strax före starten av musik festivalen säsongen, gick jag naturligtvis direkt att arbeta att göra crazy ljusa blinkande festival leksaker. Icke-adresserbara remsorna är mestadels P...

Ändra en RGB LED-kit för att driva mer lysdioder

Svaret är: "Ja" och "Nej".Det är faktiskt möjligt att ändra en RGB LED-kit för att rymma en längre längd av RGB remsan. Det finns dock två typer av begränsningar:en a begränsning av strömförsörjningen ligger inne i den befintliga RGB d...

ArduDroid: En enkel 2-sätt Bluetooth-baserade Android Controller för Arduino RGB led strip

INTRODUKTIONFÅ det på google PLAY "ardudroid" appARDUDROID (tidigare Andruino) är en enkel Android app som hjälper dig att kontrollera stiften i Arduino Uno (eller klon) från din Android-telefon trådlöst. Det är både en Android app och en Arduin...

RGB LED Strip Disco Ball

Hej, detta är Brandon Neustadter en av elementärt LED kommersiella Account Managers. Jag ville skapa en LED-ljus show som skulle synka till min musik. Generellt detta tar timmar om inte dagar eller veckor, men med den Apollo Jammer det tar några minu...

RC kontrollerad rgb led strip

Skapa din egen rc kontrollerad led-strip för enskilda rum belysning!De flesta rgb-led-strips styrs av en infraröd fjärrkontroll. För att aktivera det eller inaktivera eller ändra färg, måste du stanna framför mottagaren. Detta är tråkigt och inte rik...

Arduino RGB LED Strip Controller

Jag var nyfiken på använda RGB LED Strip, så jag fick en och beslöt att göra en liten kontroller för att se vad jag kan göra med den... så här är det.Om du har några frågor, kommentarer, konstruktiv kritik... tveka inte att skriva :)Om du gillar min...

Hur man styr en RGB LED Strip - Arduino handledning

I denna tutorial använder vi en remsa med 8 RGB lysdioder med Arduino uno styrelsen. Vi kommer använda den Adafruit NeoPixel bibliotek för att ändra färg på varje ledde.Låt oss komma igång!Steg 1: Vad du behöverFör detta projekt behöver du:Arduino un...