Färgskiftande Larson Scanner (3 / 6 steg)

Steg 3: kod

Från bildr artikel: http://bildr.org/2012/08/rotary-encoder-arduino/
och från Adafruit's Larson Scanner https://learn.adafruit.com/larson-scanner-shades

Du behöver också Adafruit's NeoPixel biblioteket installerat https://github.com/adafruit/Adafruit_NeoPixel

#include

#define N_LEDS 60

#define stift 6

Adafruit_NeoPixel strip = Adafruit_NeoPixel (N_LEDS, stift, NEO_GRB + NEO_KHZ800);

dessa stift kan inte ändras 2/3 är speciella stift

int encoderPin1 = 2;

int encoderPin2 = 3;

flyktiga int lastEncoded = 0;

flyktiga int encoderValue = 0;

lång lastencoderValue = 0;

int lastMSB = 0;

int lastLSB = 0;

void setup() {

Strip.BEGIN();

int pos = 1, dir = 1; Position, riktning mot "öga"

Serial.BEGIN (9600); för att testa encoder

pinMode (encoderPin1, ingång);

pinMode (encoderPin2, ingång);

digitalWrite (encoderPin1, hög); Aktivera pullup motstånd

digitalWrite (encoderPin2, hög); Aktivera pullup motstånd

anropa updateEncoder() när någon hög/låg ändras sett

å avbryta 0 (pin 2) eller avbryta 1 (pin 3)

attachInterrupt (0, updateEncoder, förändring);

attachInterrupt (1, updateEncoder, förändring);

}

int pos = 1, dir = 1; Position, riktning mot "öga"

void loop() {

int count = 0;

count = (encoderValue / 4);

Serial.println(encoderValue); testning / felsökning encoder

Serial.println(Count); testning / felsökning encoder

int j;

lång colorb = 0;

lång colorg = 0;

lång colorr = 0;

int antal;

colorb = colorb + abs(encoderValue); blå

colorg = colorb + 2*abs(encoderValue); grön

colorr = colorb + 4*abs(encoderValue); röd

Uppslagsregister för färgvärden 13 uppsättningar av 3 färger

int röd [13] = {255,255,255,255,128,0,0,0,0,0,127,255,255};

int red1 [13] = {128,128,204,204,102,0,0,0,0,0,102,204,204};

int red2 [13] = {32,16,153,153,76,0,0,0,0,0,76,153,153};

int gröna [13] = {255,0,0,0,0,0,127,255,255,255,255,255,127}.

int green1 [13] = {128,0,0,0,0,0,102,64,204,128,204,204,102};

int green2 [13] = {32,0,0,0,0,0,76,32,153,16,153,153,76};

int blå [13] = {255,0,127,255,255,255,255,255,0,0,0,0,0};

int blue1 [13] = {128,0,102,204,204,128,204,32,102,0,0,0,0};

int blue2 [13] = {32,0,76,153,153,16,153,32,76,0,0,0,0};

om (colorb > 255) colorg = colorg ++;

om (colorg > 255) colorr = colorr ++;

Draw 5 pixlar centrerad på pos. setPixelColor() kommer att klippa någon

pixlar av ändarna på remsan, vi behöver inte se för det.

strip.setPixelColor(0,(red[count]),(green[count]),(blue[count])); Encoder LED (separat WS2811 chip)

strip.setPixelColor (pos - 2,(red2[count]),(green2[count]),(blue2[count])); red2 green2 blue2 från uppslagstabellen

strip.setPixelColor (pos - 1, (red1[count]),(green1[count]),(blue1[count])); red1 green1 blue1

strip.setPixelColor (pos, (red[count]),(green[count]),(blue[count])); Mittpixeln är ljusast

strip.setPixelColor (pos + 1, (red1[count]),(green1[count]),(blue1[count])); red1 green1 blue1

strip.setPixelColor (pos + 2,(red2[count]),(green2[count]),(blue2[count])); red2 green2 blue2

Strip.show();

Delay(30);

Snarare än att vara luriga och radera bara svansen pixeln,

Det är lättare att radera allt och dra en ny en nästa gång.

för (j =-2; j < = 2, j ++) strip.setPixelColor (pos + j, 0);

Studsa ändarna av strip

POS += dir;

om (pos < 2) {

POS = 3;

dir = - dir;

} else om (pos > = strip.numPixels()) {

POS = strip.numPixels() - 2.

dir = - dir;

}

}

void updateEncoder() {

int MSB = digitalRead(encoderPin1); MSB = mest signifikanta biten

int LSB = digitalRead(encoderPin2); LSB = minst signifikanta biten

int kodade = (MSB << 1) | LSB; konvertera värdet 2 stift till enstaka nummer

int summa = (lastEncoded << 2) | kodade, att lägga till tidigare kodade värde

om (summan == 0b1101 || summan == 0b0100 || summan == 0b0010 || summan == 0b1011) encoderValue ++;

om (summan == 0b1110 || summan == 0b0111 || summan == 0b0001 || summan == 0b1000) encoderValue--;

om (encoderValue > 55) encoderValue = 0; Ändrade 10-26-14

om (encoderValue < 0) encoderValue = 55.

lastEncoded = kodade, lagra detta värde till nästa gång

}

Se Steg
Relaterade Ämnen

Ping Pong Larson Scanner

så jag såg den nya verktyget för att bygga kretsar i http://123d.circuits.io, beslutade jag att prova den. Och till min förvåning fann att jag kunde delta i en tävling här på instructables.Kretsen jag gjorde var inspirerad av en omgång bordtennis. Fö...

Bygga den ultimata Larson Scanner!

jag har sett tillgången på hög effekt (> 10W) leds hoppa under det senaste året eller så och... sjunka i pris. Jag kom över några mycket billigt 10W vita lysdioder från Deal Extreme som var i intervallet $3 dollar och sätta ut 900lumens, vilket är me...

Cylon - Larson Scanner Kit - med Charlieplexing!

Detta instructable täcker byggsats som är resultatet av flera bygger, och många iterationer. Om du vill veta mer om tidigare försök och eller design process kommentar nedan och jag kommer gräva ut den äldre (och mycket mycket mindre) versioner och äv...

Minimal larson scanner/cyclon

utan tvekan du har sett många en instructable om hur man gör en larson scanner. Det finns också en hel del kit ute också. Jag har precis gjort en från skrot delar, och jag tror den använder de minsta delarna av någon som jag har sett.Steg 1: delar9 l...

Charlieplexing Larson Scanner

Larson skannern är en gammal prop som var populära tack vare serier som Battlestar Galactica och Knight Rider. I det här exemplet kommer vi använda charlieplexing för ledningar så vi kan kan använda 4 stift för att styra alla 12 lysdioder. Detta bygg...

8-LED Larson Scanner med Arduino

detta är ett enkelt sätt att göra en Larson Scanner med en Arduino, med extra förmåga att scanningen klassar med en potentiometer.Minsta reservdelslista:(1) Arduino Duemilanove (eller motsvarande / kompatibel)(8) LED av ditt val. Jag använde 5mm T1-3...

Vinka JT - Larson Scanner med Joule tjuv

Jag älskar LED chasers. En massa lysdioder prydligt slå på och av på en exakt timing - lampor kör ett sätt, sedan åt andra hållet... Det är avslappnande, lugnande och sömngivande.Det finns så många LED chaser/scanner/sequencer kretsar ute, några är g...

KITT-duino, DIY Larson Scanner med en Arduino

viktigt: koden är nu uppdaterad. FÄSTAR omfatta TILLÄGGER ett HELTALSVÄRDE för att manipulera TIMING och om fastställande av en dubbel-blinkande LED.Tack.Det är min uppfattning att många Larson skannrar kan endast puls från sida till sida. Jag kände...

Larson scanner lysdioder (kitt) med arduino

Larson skannern är ett välkänt av knigth rider på 80-talet. I denna tutorial kommer att jag berätta hur man skapar une. Så försöker jag att skapa min version av projektet. Det består av en matris med lysdioder som visar på att flytta sida till sida....

Larson Scanner med relä modul

Hej! Denna gång ska jag visa hur jag använde en Arduino för att styra ett relä modul med åtta kanaler.Arduino i erbjuder flera fördelar såsom:-Öppen källkod;-Enkel programmering;-Du kan sätta ihop din egen styrelse.-Stöds på olika forum på Internet.-...

AINA: Fältet Lab med Edison IoT

AINA (Automated Information om karaktär attribut) är en elektronisk sensor fält laboratorium byggt på Intel® Edison IoT plattformen. Akronym, "AINA", hänvisningarna den hawaiianska ordet för mark eller plats.Projektöversikt:Vårt projekt är ett b...

Trådlös, hinder upptäcka, pipa roboten med Arduinos!

Detta är ett trådlöst styrd, autonoma hinder upptäcka robot!För ett tag sedan jag hade gjort detta Instructable och ville göra några stora uppgraderingar sedan dess.Följande är robotens funktioner:-1.he är trådlöst kontrollerade med 433 MHz Tx/Rx mod...

8 LED Chaser med 74HC595 8-bitars skiftregister

har du velat göra en söt Cylon/Knight Rider (Larson) Scanner effekt? Men du vill inte använda upp all din Arduino IO pinnar? Tja, kan du göra en fin 8 LED Scanner med en förskjutning registrera IC.I den här guiden kommer vi att använda 74HC595 8 bita...

HackerBoxes 0004: Tre femmor replika och 555 Timer experiment

Din timing är perfekt! Denna månad, bygger abonnenter till HackerBoxes en jumbo-sized, fungerande replik av 555 chip från diskreta transistorer. Vi arbetar också med flera experiment utifrån den ärevördiga 555 timer flisa, vilken är den integrerad kr...

Logik kärlek hjärta

Hej alla :)Detta är en logik kärlek hjärta jag skapat för en gammal flamma i år (vi har ett barn och vi är fortfarande bra kompisar, plus att jag gillar slingrande upp henne).Vissa säg kärlek är inte logisk, Tja det är nu! Så luta dig tillbaka, ta en...

Hur man gör en Fake geigermätare

vilken effekt kan förbättra en galen vetenskapsman lab på Halloween? Tickande av en geigermätare! Och Tänk... Om du hade en falska geigermätare kunde du våg över någonting, och när du ville ha, ställa av rasande att klicka?Det är vad jag byggt för vå...

Hur man gör en charlieplexed LED hjärta

med alla hjärtans dag precis runt hörnet, du är förmodligen tänker om vad du ska få din betydande andra, eller hur man imponera på någon nog att bli en SO.Detta hjärta är lätt att göra, och kommer att visa upp din Maker färdigheter till att speciella...

555 FireFly

vad är 555 firefly? Det är en 555 krets som blinkar en LED. Men, inte någon LED. Lysdioden är en UV led doppade i glöd i mörker (GITD) färg. Slutresultatet är att UV-ljus upphetsar färgen vilket resulterar i det glödande och sedan bleknar som en rikt...

Naken Singularity: Beetleweight kil bekämpa Robot

detta är en ganska grundläggande sumo-stil R/C bekämpa robot, avsedd för konkurrens i Robot slag (http://www.robotbattles.com) Beetleweight (3-pund) klass. Mina mål i designa och bygga det var:--enkel konstruktion, särskilt när det gäller att klippa...