Arduino Tweetmas träd * uppdaterad med kod * (5 / 6 steg)

Steg 5: Koden

Kodar för mig är en smärta!

Jag shearched på webben arbetande arduino skiss.

Massor av dem fungerar inte men jag hitta den här killen på youtube:

Leroy Miller

Han gör ett bra jobb och ge en bra fungerande kod på sin codebender:

codebender

Jag lagade hans kod med fler mönster som: Sockertopp, teater stil eller rainbow hjulet

Detta är min arbetande koden:

#include < SPI.h >
#include < Ethernet.h >
#include < Adafruit_NeoPixel.h >

Inställningar för lokalt nätverk
byte [mac] = {0xBC, 0x2D, 0x41, 0x70, 0x07, 0x98}; Måste vara unika på lokala nätverket
#define ljusstyrka 5 //Set ljusstyrka till 5/10 / / du kan justera ljusstyrka
#define full (255/ljusstyrka)
#define thingSpeakInterval 18000 / / tid intervall i millisekunder för att hämta data från ThingSpeak (antal sekunder * 1000 = intervall)

Variabelinställningar
lång lastConnectionTime = 0;

String lastCommandString = "black".
booleska lastConnected = false;
int failedCounter = 0;

Adafruit_NeoPixel strip = Adafruit_NeoPixel (167, 6, NEO_GRB + NEO_KHZ800); För mig 167 pixel på min remsa

Initiera Arduino Ethernet-klient
EthernetClient klient;

void setup() {
Delay(100);
Setup följetong
Serial.BEGIN(9600);
Delay(100);
Serial.flush();
Delay(100);

Strip.BEGIN();
Strip.show();

Starta Ethernet på Arduino
startEthernet();
}

void loop() {
Processen CheerLights kommandon
IF(client.available() > 0)
{
Delay(100);
Serial.println(client.available());
Sträng svar;
char Marcus;
göra {
Marcus = client.read(); läsa en röding från bufferten
svar += Marcus; Lägg det röding till sträng svaret
} medan (client.available() > 0);
Serial.println(Response.length());
Serial.println(Response);

om (svar == "vit" || svar == "varmvitt" || svar == "oldlace")
{
lastCommandString = "white";
theaterChaseRainbow(50);
}
annars om (svar == "svart" || svar == "off")
{
lastCommandString = "black".
theaterChase (remsa. Color(0,0,0),50);
}
annars om (svar == "red")
{
lastCommandString = "röd";
theaterChase (remsa. Color(255,0,0),50);
CandyCane(30,8,50);
}
annars om (svar == "grön")
{
lastCommandString = "grön";
theaterChase (remsa. Color(0, 255, 0), 50);
}
annars om (svar == "blå")
{
lastCommandString = "blå";
theaterChase (remsa. Color(0,0,255),50);
}
annars om (svar == "cyan")
{
lastCommandString = "cyan";
theaterChase (remsa. Color(0,255,255),50);
}
annars om (svar == "magenta")
{
lastCommandString = "magenta";
theaterChase (remsa. Color(255,0,255),50);
}
annars om (svar == "gul")
{
lastCommandString = "gula";
theaterChase (remsa. Color(255,255,0),50);
}
annars om (svar == "lila")
{
lastCommandString = "lila";
theaterChase (remsa. Color(102,51,204),50);
}
annars om (svar == "orange")
{
lastCommandString = "orange";
theaterChase (remsa. Color(255,153,0),50);
theaterChase (remsa. Color(0, 255, 0), 50);
}
annars om (svar == "rosa")
{
lastCommandString = "rosa";
theaterChase (remsa. Color(255,53,153),50);
}

Delay(200);
Serial.Print ("CheerLight kommando emot:");
Serial.println(lastCommandString);
Delay(200);
}
Koppla från ThingSpeak
om (! client.connected() & & lastConnected)
{
Serial.println("...Disconnected");
client.stop();
}
Prenumerera på ThingSpeak kanal och fält
IF(!client.Connected() & & (millis() - lastConnectionTime > thingSpeakInterval))
{subscribeToThingSpeak();
}
checkcolor(lastCommandString);
Delay(500);
Kontrollera om Arduino Ethernet måste startas
om (failedCounter > 3) {startEthernet();}
lastConnected = client.connected();
Delay(100);
} / / End loop

void subscribeToThingSpeak()
{
om (client.connect ("api.thingspeak.com", 80))
{
Serial.println ("ansluter till ThingSpeak...");
failedCounter = 0;
Serial.println ("Skicka förfrågan");
client.println ("GET /channels/1417/field/1/last.txt");
client.println();
lastConnectionTime = millis();
}
annat
{
failedCounter ++;
Serial.println ("anslutning till ThingSpeak misslyckades ("+ String(failedCounter, DEC) +")");
Serial.println();
lastConnectionTime = millis();
}
}
void startEthernet()
{
client.stop();
Serial.println ("ansluta Arduino att nätet...");
Serial.println();
Delay(1000);
Ansluta till nätverk amd en IP-adress med DHCP
om (Ethernet.begin(mac) == 0)
{
Serial.println ("DHCP misslyckades, Nollställ Arduino att försöka igen");
Serial.println();
}
annat
{
Serial.println ("Arduino ansluten till nätverket via DHCP");
Serial.println();
}
Delay(1000);
}

Fylla prickar en efter den andra med en färg
void colorWipe (uint32_t c, uint8_t vänta) {
för (uint16_t jag = 0; jag

}
Biosittning krypande lampor.
void theaterChase (uint32_t c, uint8_t vänta) {
för (int j = 0; j < 36; j ++) {//do 36 cykler för att jaga
för (int q = 0; d < 3; q ++) {
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, c); aktivera varje tredje pixel
}
Strip.show();

Delay(Wait);

för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, 0); Inaktivera alla bildpunkter på tredje
}
}
}
}

Biosittning krypande lampor med regnbågseffekt
void theaterChaseRainbow (uint8_t vänta) {
för (int j = 0; j < 256; j ++) {/ / cykla alla 256 färger i hjulet
för (int q = 0; d < 3; q ++) {
för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (i + q, rullar ((i + j) % 255)); aktivera varje tredje pixel
}
Strip.show();

Delay(Wait);

för (int jag = 0; jag < strip.numPixels(); i = i + 3) {
strip.setPixelColor (jag + q, 0); Inaktivera alla bildpunkter på tredje
}
}
}
}

Rainbow hjulet
void rainbowCycle (uint8_t vänta) {
int i, j.
för (j = 0; j < 256 * 5; j ++) {/ / 5 cykler av alla 25 färger i hjulet
för (jag = 0; jag < strip.numPixels(); i ++) {

strip.setPixelColor (i, hjulet (((i * 256/strip.numPixels()) + j) % 256));
}
Strip.show(); skriva alla pixlar
Delay(Wait);
}
}
{Ogiltig rainbow (uint8_t vänta)
int i, j.
för (j = 0; j < 256; j ++) {/ / 3 cykler av alla 256 färger i hjulet
för (jag = 0; jag < strip.numPixels(); i ++) {
strip.setPixelColor (i, hjulet ((i + j) % 255));
}
Strip.show(); skriva alla pixlar
Delay(Wait);
}
}
/ * Hjälpare funktioner * /
Skapa ett 24-bitars färgvärde av R, G, B
uint32_t färg (byte r, byte g, byte b)
{
uint32_t c;
c = r;
c << = 8;
c | = g;
c << = 8;
c | = b;
returnera c;
}

Ange ett värde 0 till 255 att få ett färgvärde.
Färgerna är en övergång r - g -b - tillbaka till r
uint32_t hjul (WheelPos byte)
{
om (WheelPos < 85) {
returnera färg (WheelPos * 3, 255 - WheelPos * 3, 0);
} else om (WheelPos < 170) {
WheelPos-= 85.
returnera färg (255 - WheelPos * 3, 0, WheelPos * 3);
} annat {
WheelPos-= 170;
returnera färg (0, WheelPos * 3, 255 - WheelPos * 3);
}

}

void checkcolor(String colors) {
om (färger == "vit")
{
theaterChaseRainbow(50);
}
annars om (färger == "black")
{
theaterChase (remsa. Color(0,0,0),50);
}
annars om (färger == "red")
{
theaterChase (remsa. Color(255,0,0),50);
CandyCane(30,8,50); 30 set, 8 pixlar bred, 50us dröjsmål
}
annars om (färger == "grön")
{
theaterChase (remsa. Color(0, 255, 0), 50);
}
annars om (färger == "blå")
{
theaterChase (remsa. Color(0,0,255),50);
}
annars om (färger == "cyan")
{
theaterChase (remsa. Color(0,255,255),50);
}
annars om (färger == "magenta")
{
theaterChase (remsa. Color(255,0,255),50);
}
annars om (färger == "gul")
{
theaterChase (remsa. Color(255,255,0),50);
}
annars om (färger == "lila")
{
theaterChase (remsa. Color(102,51,204),50);
}
annars om (färger == "orange")
{
theaterChase (remsa. Color(255,153,0),50);
theaterChase (remsa. Color(0, 255, 0), 50);
}
annars om (färger == "rosa")
{
theaterChase (remsa. Color(255,53,153),50);
}

}

Se Steg
Relaterade Ämnen

Arduino själv balans registeransvarige med DIGITAL IMU, äntligen!

Vad är det?DIY Segway/balans styrenhet med modern DIGITAL IMU sensor.Programvara för en Arduino som gör det möjligt att läsa positionsdata från en av de nya DIGITAL accelerometer/gyroskop enheterna, bearbetar data med hjälp av Kalman filtrering (rikt...

Arduino Bluetooth Garage dörrkontroll med sensorer och anpassningsbara Android App

Använda en arduino till aktivera reläer för att öppna garageportar och elektriska dörrlås.En anpassningsbar Android App, ansluter till arduino via lösenordsskyddade bluetooth-ihopparningen.En bluetooth hc-05 modul tar emot kommandon från en android-t...

Arduino ultraljud avståndsmätare med I²C lcd uppvisning!

Heji detta projekt vill jag Visa och förklara du en rad sensor med ultraljud och en 20 x 04 LCD-skärm. Jag skrev koden för detta projekt själv och lade till massor av kommentarer, så att alla kan förstå det och använda det för andra projekt (kanske e...

Styra Arduino styrelsen trådlöst med iPhone, iPad eller iPod med iArduino App och Ethernet Shield

denna tutorial vägleder dig till hur man gör hela installationen till kontroll din Arduino ombord med iArduino program. Vi kommer att använda Led för förståelse, och vi kommer att byta det till och från med hjälp av iArduino app. Från detta kommer du...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

Arduino röst / taligenkänning med Geeetech modul [Tutorial]

Hur till: Arduino röst / taligenkänning med Geeetech modul [Tutorial]. Denna video visar dig hur man talar med din Arduino med (billigt) Geeetech röst kontrollmodulen. Du kan sedan använda koden kontrollerar en motor eller göra röststyrda lampor. Det...

Lär sig eller lär Arduino utan någon linje av kod #1

Del 1: Hello WorldIntroduktionHej alla, detta är den första Arduino läraren på hur till program utan att skriva någon rad med kod, använder Ardublock, som är en förlängning av Arduino IDE för visuell programmering. Ardublock är baserad på en serie av...

Ledde gitarr pickup mod *** uppdaterad med Principschema för blinkande lysdioder och video!

Ever wanted gitarren är unikt? Eller en gitarr som gjorde alla avundsjuka på det? Eller är du bara trött på det vanliga gamla utseendet på din gitarr och vill piffa upp? Tja, i detta mycket enkel kompatibel ska jag visa dig hur att belysa pickups på...

Arduino justerbar termoelement-baserade Controller med relä

jag nyligen skapat en Arduino justerbar Timer styrenhet med relä projekt att styra min veranda gasvärmare millivolt (thermopile). De bilder som används i projektet, liksom bilderna används i detta projekt är samma, eftersom det finns endast en minima...

Arduino Android USB-seriell kommunikation med OTG kabel

Jag har gjort en Arduino baserade natten lampa med hjälp av foto motstånd och problem med det är ljusnivåer var olika från plats till plats, när jag testar jag har använt ett värde som en tröskel för att slå på ljuset och efter att fastställa det i d...

Baserade Arduino House värmare Controler med SMS användargränssnitt

projektet innehåller instruktioner och koden för att bygga en uppvärmning controller för ditt hem eller avlägsna land hus, som kan kontrolleras och övervakas av GSM via SMS-kommandon. Jag började att utforma det så vi behövde en pålitlig och Register...

Arduino TFT prognos väderstation med ESP8266

Detta projekt bygger på Wunderground väderprognos via Internet.Specifikationer:1. 3 dagar väderprognosen (låg & hög temps, antagligen av nederbörd, skick ikoner)2. aktuella väderförhållanden (nuvarande temp, feelslike temp, fuktighet, tryck)3. aktuel...

Arduino Real tid väckarklocka med temperatur och LED belysning. Fjärrstyrda

Arduino klocka, med batteribackup (realtidsklocka), tid, datum, Alarm, temperatur, LCD utgång, IR-fjärr ingång, viloläge, LED-belysning (10 X) röd och blå multi-mode.Steg 1: Steg 1: delar listaArduino klocka, med batteribackup (realtidsklocka), tid,...

Arduino handledning: Få reste distans med ADNS-9800 Laser Mouse Sensor

ADNS-9800 Laser gaming sensorn består av sensor och VCSEL i ett enda chip-på-board (COB) paket. ADNS-9800 ger förbättrade funktioner som programmerbar ram Betygsätt, programmerbar upplösning, konfigurerbara sömn och vakna tid att passa olika PC gamer...

Raspberry Pi och Arduino: bygga tillförlitliga system med WatchDog timer

Sammanfattning: I detta Instructable titta vi på hur man bygger mer tillförlitliga datorsystem med WatchDog timer. Vi visar hur du ställer in och använder Raspberry Pi och Arduino inre watchdog timer. Vi förklarar också varför en extern WatchDog Time...

Ta emot och skicka data mellan Attiny85 (Arduino IDE 1.06) uppdaterad Nov 2015

Jag har kämpat mycket med att skicka RF data mellan två Attiny85 chips, så jag tänkte att det kan vara bra om jag bara förklara hur jag gjorde det. Det finns ett antal sådana projekt som beskrivs på internet, men ändå är det Visa inte sig vara ett så...

Arduino LilyPad anka dynastin Hoodie med ljud och LED ljus

gjorde jag en anka dynastin tema hoodie med en LilyPad Arduino som har 3 dragkedja trycksensorn kopplar till aktivera 3 olika åtgärder/program på baksidan av hoodie. Dragkedjan är nyckeln till att aktivera dessa växlar så när dragkedjan är rörande en...

Arduino drivs RGB LED klocka med rullning

detta är en 8 x 8 RGB LED modul, som drivs av 4 x 74HC595N SKIFT register kontrolleras av en Boarduino (Arduino klon som kan användas på en skärbräda). Tid uppgifterna är från en DS1307 Real Time Clock IC.Displayen är mata sedan datum och tid och cyk...

Arduino Nano: I2C matris knappsatsen med PCF8574/PCF8574A GPIO och Visuino

Matrix knappsatser är bland de enklaste och mest populära sätten att ange tangentbord information på Arduino typ micro-styrenheter. Jag har redan gjort en Instructable visar hur du kan ansluta tangentbordet till Arduino Nano. Nackdelen är att ansluta...