USB kameleont lampa (färg replikera) (10 / 13 steg)

Steg 10: programmering

Hela programmet är ganska stort och det tog mig flera dagar att skapa biblioteket och få det att fungera.

/ * Här koden är skriven av < en href = " rel = "nofollow" >
< /a >
Projektet finns på samma sida
*/

#include < TriSense.h >

TS_RGB ts(11,10,9);

int S_Tap, dTap_stat, sTap_stat, val, första, andra, last_doubletap, last_tap;

räkna om int = 0, tap, doubletap;

långa tomgång, returnst, tid.

int dly = 100, prevkno = 0, smällar, last_knock, knock_stat, tillstånd, läge, MaxModes = 4, calib_st;

void setup()
{
Serial.BEGIN(9600); ENDAST FÖR FELSÖKNING

TS. SetHue(255,0,0); RÖTT INDIKERAR ATT SENSORN INTE ÄR KALIBRERAD

TS. CalibSeq("Debug"); VITBALANS KALIBRERING AV SENSORN I DEBUG-LÄGE

för (int jag = 0; jag < 5; i ++)
{
TS. SetHue(0,255,0); GRÖNA PULSER ANGER KALIBRERING ÄR FRAMGÅNGSRIKA
Delay(100);
TS. SetHue(0,0,0);
Delay(50);
}
}
void loop()
{
BEHANDLINGEN KNOCK SENSOR / / /

knock_stat=knock(100); VARIABEL som butiker nummer av KNACKAR: knock (tröskelvärde)
TRÖSKELVÄRDET KAN VARIERA BEROENDE PÅ DIN SENSOR

om (knock_stat! = last_knock & & statliga == 0) / / få statliga förändring IN KNOCK
{
Idle=Millis(); ÅTERSTÄLL RÄKNAREN OCH UNDVIKA DRÖJSMÅL
State = 1;
last_knock = knock_stat;
dTap_stat = 0;
sTap_stat = 0;
}

IF(State==1)
{
om (millis ()-inaktiv < 1000 & & knock_stat! = last_knock & & dTap_stat == 0) / / läsa dubbla kranar inom 1 SEK.
{
State = 0;
IF(doubletap<MaxModes)
doubletap ++;
IF(doubletap==MaxModes)
doubletap = 0;

dTap_stat = 1;
}

om (millis ()-inaktiv > 1000 & & sTap_stat == 0 & & dTap_stat! = 1)
{
State = 0;
Tap ++;
sTap_stat = 1;
}

}

DOUBLE TAP att ändra läge / / /

IF(doubletap==0)
{
Sleep(); VILOLÄGE, LÅNGSAM BLUE PWM
}

IF(doubletap==1) / / RGB-färg cykling
{
IF(Tap!=last_tap)
{
last_tap = tryck;
DLY = dly-10; KNACKA PÅ TILL FART UPP ANIMERINGEN
DLY=constrain(DLY,0,100);
}
TS. CycleRGB(dly,1,1);
}

IF(doubletap==2) / / INITIERA färg läsning och REPLICATING sekvens
{

TS. GetColor(50);
TS. WriteColor("ColorCancelling"); Färgen cancelling läget avbryter färgen med minst %
}
Serial.Print(DLY);
Serial.Print("");
Serial.println(doubletap);
}

int PwM (int dly, int start, int finish) / / PWM utan fördröjning
{
IF(restate==0)
{
Val = start;
Idle=Millis();
Upprepa = 1;
}

om (start < avsluta & & val < finish)
{
om (millis ()-inaktiv > dly)
{
Val ++;
Idle=Millis();
}
analogWrite(9,val);
}

om (start > Avsluta & & val > Avsluta)
{
om (millis ()-inaktiv > dly)
{
Val--;
Idle=Millis();
}

analogWrite(9,val);
}
IF(val==finish)
tillbaka 1.
annat
Return 0;

}

int knock (int thr) / / slå funktion
{

int kno = map(analogRead(2),0,thr,0,1);
kno = constrain(kno,0,1);
om (prevkno! = kno & & millis ()-tid > 50)
{
smällar ++;
prevkno = kno;
tid = millis();
}
returnera smällar/2.

}

void sleep() / / sova funktion
{
IF(returnst==0)
först = PwM(1,10,150);

IF(First == 1)
returnst = 1;

IF(returnst==1)
Second=PwM(4,150,10);

IF(Second == 1)
returnst = 0;
}

Det faktum att jag inte har använt delay() funktion i detta program gör det så långa. Om vi använder delay() funktionen, slutar programmet för att viss period innebär detta att alla ingångar, utgångar och andra beräkningar skulle sluta fungera. Detta skulle skapa ett stort problem när du använder knock input.

Jag fick CycleRGB utan dröjsmål programmet från: http://mcviruss.nl/arduino/rgb_rainbow_v2.pde

Se Steg
Relaterade Ämnen

Hög effekt USB led lampa

/ * formatmallsdefinitioner * / bord. MsoNormalTable {mso-stil-namn: "Tabell Normal"; mso-tstyle-rowband-storlek: 0; mso-tstyle-colband-storlek: 0; mso-stil-noshow:yes; mso-stil-prioritet: 99; mso-stil-qformat:yes; mso-stil-förälder: ""...

Lampa för en USB-LED-lampa

Ungefär ett år sedan köpte jag en USB LED-lampa på Amazon. Ljuset är praktiskt, det kan drivas från min PC USB-port eller en power bank, men ljuset var lite hård på ögonen. Vad jag ville ha var en trevlig bordslampa så jag kunde använda den på mitt s...

DIY Betta (eller någon fisk) Tank med USB LED lampa

min första Instructable.Jag hittade en söt godis burk som säljs här i KSA som ser bra ut för en Betta tank. USB powered LED lampa funktion var ursprungligen från artificiell intelligens ().Det är USB powered eftersom detta Instructable skulle se bra...

USB-uttag lampa

Jag hade någon kommer in på Lowes där jag jobbar vill göra en lampa med USB-uttag inne. Han visste inte riktigt vad han behövde, så efter lite forskning, jag gjorde en själv.Steg 1: översiktDen totala kostnaden för projektet är omkring $70 utan rabat...

Robert och Tylers USB CD lampa

först att bygga denna lampa måste du haEn lödkolvavbitare och strippor5 blå lysdioderen spole av röd tråden spole av svart trådnågra inches av denna trådlite silvertejp5 200 ohm motstånd2 CD-skivoroch en USB-kabel du är villig att skära upp.även en a...

USB-LED lampa-tangentbord lampa, läslampa...

För några dagar sedan hittade jag en krets med några lysdioder från en gammal vakuum och jag började thiking vad jag kunde göra med dem och slutligen denna idé dök in i mitt sinne: en USB-lampa. Det är mycket lätt att göra och du kan enkelt hitta mat...

3D tryckt USB-ledade lampa (intern kabeldragning)

I detta projekt kommer jag visa dig hur du skapar en 3D tryckta ledade lampa. Detta är en någorlunda avancerad projekt som det ta i genomsnitt ca 6 timmar att modellen ut helt kontrollera alla detaljer. Produkten har interna kabel routning om du vill...

5 minuters USB workbench lampa

Någonsin trodde var din arbetsbänk bara SODIMM? (Få det?) Tja, har jag lösningen för dig! Med bara några lim för ditt val, en el cheapo gamla lysdiod, en lödkolv, en USB-kabel, en kniv, 5 minuter av tiden, och en hjärna, du, ja du mina damer och herr...

Magisk färg kopiera kameleont lampa

i detta Instructable kommer jag visa dig hur man gör en Arduino powered lampa som upptäcker färg under den och sedan försöker efterlikna den färgen. Alla med lätt att hitta delar (de flesta finns i Dollar store med undantag för Arduino naturligtvis)....

LIBELULAMP. USB-DRAGONFLY LAMPA.

Les presento mi Obra Ecolombiana : "Libelulamp. UNA Lampara que funciona conectada en cualquier Puerto USB.Sirviö de inspiracion las libelulas que Circundan Nuestros rios y Lagunas Colombianas.jag ger dig Libelulamp.Steg 1: Smashing Pumpthings. I´ve...

Min USB-tangentbord lampa

detta är min personliga version av USB-tangentbord lampan....

Dieselpunk USB-lampa

detta Instructable visar dig hur du tar en vanlig USB LED dator lampa, och förvandla det till en original Dieselpunk tillbehör för din Dieselpunk eller Steampunk tangentbord eller laptop.Du kanske undrar: Vad är Dieselpunk? Dieselpunk är en mindre kä...

Decopunk USB lampa

jag blev inspirerad att göra denna lampa när jag kom över en uppsättning av halogenlampor spår en av mina grannar satte i papperskorgen. Matcher på detta spår ljus påminde mig om att effektivisera Art déco-design av bilar och cyklar av 1930-talet. Oc...

USB lampa Hub

när du arbetar vid datorn, gör skolarbete, kontorsarbete, osv... Ibland behöver du lite mer ljus. Så du får en skrivbordslampa och hoppas du har ett öppet utlopp, eller få en som drivs av datorn USB-port. Nu har du ljus, men nu med nästan allt anslut...

Hacking $ store lampan in i en USB-lampa

jag var på Dollar Tree och hittade en fin liten lampa som skulle göra en fin USB-dator lampa. Här är vad jag gjordeSteg 1: Material som behövs.1. lampa från Dollar Tree2. USB-kabeln från Dollar Tree3. 12 ohms motstånd från Radio Shack katalog #: 5504...

USB-Powered Instructables Robot Night lampa

ett par dagar sedan jag surfade på internet och fick reda på att vi kunde driva någon grej med en kraft av 5V och 100mA (500mA på vissa särskilda villkor) genom att ansluta den till en USB-port, så jag tänkte att jag skulle göra en nybörjare instruct...

USB-Powered LED artikulera lampa

jag designade denna lampa som en del av min senior avhandling utställning i college. Det är en småskalig version av en klassisk ledad skrivbordslampa som drivs av en standard USB-port.Lampan kan anslutas direkt till en bärbar dator att fungera som et...

Wire Flower Lamp

Blomma-making har dominerat min kreativa uppmanar nyligen. Min första var litterära lätta upp blomman, som jag gjorde för att testa blomma-making från papper limmas till en tråd ram. Nästa blomman var från färgning papper: An Exploration, som gjordes...

Steampunk USB Mini Lantern

detta Instructable visar dig hur du aktiverar en dator USB-lampa och en lykta-stil gjuten pennvässare till en Steampunk USB powered mini Lantern.Projektet var delvis inspirerad av den underbara Instructable: mini USB powered Tiffany lampa.En annan br...