LED Nintendoscape (4 / 5 stap)

Stap 4: Arduino Code

We moeten duwen code naar de Arduino aan de bediening van de elektrische apparaten om ons project uit te voeren. Bibliotheken zijn opgenomen in een zip-bestand en de mappen binnen moet worden geplaatst in de hoofdmap van de bibliotheek Arduino op uw computer na het uitpakken. Inbegrepen zijn bibliotheken voor de IR-sensor, Stappenmotor en het LED-display van Adafruit. Het bijgevoegde zip-bestand met een adellijke titel Arduino Code bevat de map met de Arduino schets nodig de code uit te voeren. Dit moet gewoon worden geflitst aan de Arduino om de code kan worden uitgevoerd.

 #include <Adafruit_GFX.h>#include <Adafruit_NeoMatrix.h> #include <Adafruit_NeoPixel.h> #include <StepperAK.h> #include <IRremote.h>#define PIN 6 //LED Matrix input on Pin 6#define gearratio 64 //1:64 gear ratio for stepper motor #define BOARDCOUNT 1 // number of LED matrices Adafruit_NeoPixel strip = Adafruit_NeoPixel(64 * BOARDCOUNT, PIN, NEO_GRB + NEO_KHZ800); //Sets up the number of LED nodes double brightness = .1; // reduce brightness for the LED Matrixconst int stepsPerRevolution = 2048; //2048 steps turn the motor one revolution Stepper myStepper(stepsPerRevolution, A0, A1, A2, A3); // 4-wire stepper on pins A0-A3int RECV_PIN = 9; //IR Receiver connected to Pin 9 IRrecv irrecv(RECV_PIN); //Create a IR receiver object decode_results results; //Create a decode_results objectAdafruit_NeoMatrix matrix = Adafruit_NeoMatrix(8, 8, PIN, //Initiates an 8x8 LED Matrix NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, NEO_GRB + NEO_KHZ800);const uint16_t colors[] = { matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) }; //Defines LED Matrix Colors 

De code werkt door tot oprichting van wat bibliotheken nodig zijn en alle pinnen gebruikt en vereiste variabelen te definiëren. Vervolgens de helderheid van de LED-matrix dimt, zet de motor revolutie en maakt een object voor de IR-sensor. De LED-Matrix vervolgens wordt geïnitialiseerd en de kleuren zijn ingesteld.

 void setup() { 
 myStepper.setSpeed(0.15*gearratio); //the motor appears to be geared down 1/64, //meaning that the speed needs to be set 64x. irrecv.enableIRIn(); //Enables the IR device matrix.begin(); //Starts the LED Matrix with a blank display matrix.setTextWrap(false); matrix.setBrightness(40); matrix.setTextColor(colors[0]); } 
 int x = matrix.width(); //Establishes X as the matrix width int pass = 0; //Establishes pass variable int flag=0; //variable to establish when the device is powered on via remote 

In de sectie van de installatie, de overbrengingsverhouding van de stepper is ingesteld voor de controle van de snelheid, de IR-sensor is ingeschakeld en de matrix is ingesteld op een lege weergave. Meerdere variabelen zijn ook gevestigd die later worden gebruikt voor de matrix en om te bepalen wanneer de machtsknoop werd ingedrukt.

 void loop() { if (irrecv.decode(&results)) {//has a transmission been received? if (results.value == 3584887633){ //If the power button is pressed the flag variable changes and the main program executes flag=1; } } //irrecv.resume(); // Receive the next value from the IR Sensor 

Het project begint met een lege LED-display, en de IR-sensor is geactiveerd en wacht op de power-knop te worden geduwd. Nadat de machtsknoop wordt gedrukt, wordt de hoofdlus van het project ingevoerd. Het getal in de results.value ruimte is het gedecodeerde resultaat van de power-knop op de afstandsbediening van een audiosysteem van Panasonic, maar een andere afstandsbediening kan gebruikt annd moet u de afstandsbediening eerst decoderen met het oog op de numerieke getallen je rode knoppen zijn gekoppeld.

 if (flag==1) //If flag is equal to 1, then the power button was pressed{ if (irrecv.decode(&results)) {//has a transmission been received? Serial.println(results.value);//If yes: interpret the received commands... if (results.value == 2354352215){ //If the "-" Button is pressed do the following: matrix.fillScreen(0); //Clears the LED matrix matrix.setCursor(2, 0); //Sets the cursor position matrix.setTextColor(colors[2]); //Sets the text color matrix.print(F("?")); //Prints the "?" character to the screen matrix.show(); //Enables the matrix delay(100); //Delays the matrix myStepper.step(stepsPerRevolution); //Rotates the stepper motor 

Als de "+" of "-" knop op de afstandsbediening wordt geraakt, de paddenstoel in tegengestelde richtingen draait en een vraagteken wordt weergegeven op de matrix. De bovenstaande voorbeeldcode toont het proces voor de "-" knop wordt ingedrukt en de code voor de "+" is bijna identiek.

 if (results.value == 3584887633){ //If the power button is pressed a Rainbow lights up colorWipe(strip.Color(brightness * 255, 0, 0), 5); // Red colorWipe(strip.Color(0, brightness * 255, 0), 5); // Green colorWipe(strip.Color(0, 0, brightness * 255), 5); // Blue rainbow(5); rainbowCycle(5); } irrecv.resume(); // Receive the next value from the IR Sensor } matrix.fillScreen(0); //If no input on the remote, clear the matrix screen matrix.setCursor(x, 0); //Sets the cursor position to variable 'x' matrix.print(F("MAKE")); //Prints the word "Make" to the matrix if(--x < -36) { //Cycles the cursor position to make text appear to scroll x = matrix.width(); if(++pass >= 3) pass = 0; //Cycles through three colors for the text display matrix.setTextColor(colors[pass]); } matrix.show(); //Prints text to matrix delay(100); //Establishes a delay} } 

Wanneer de machtsknoop wordt gedrukt een regenboog verschijnt en doorloopt verschillende kleuren en patronen. Na dit proces, het woord "maken" vervolgens schuift over het scherm in het draaien van kleuren, tenzij een andere knop op de afstandsbediening wordt geraakt. Als de power-knop wordt geraakt opnieuw herhaalt de regenboog weergave. Dit proces herhaalt eindeloos zolang de Arduino aangedreven.

De onderstaande code zijn functies die worden genoemd om uit te voeren van de regenboog-scherm dat wordt weergegeven wanneer de machtsknoop wordt gedrukt.

 // Fill the dots one after the other with a colorvoid colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; ivoid rainbow(uint8_t wait) { uint16_t i, j; for(j=0; j<256; j++) { for(i=0; i// Slightly different, this makes the rainbow equally distributed throughout void rainbowCycle(uint8_t wait) { uint16_t i, j; for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel for(i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); } strip.show(); delay(wait); } } // Input a value 0 to 255 to get a color value. // The colours are a transition r - g - b - back to r. uint32_t Wheel(byte WheelPos) { if(WheelPos < 85) { return strip.Color(brightness * WheelPos * 3, brightness * (255 - WheelPos * 3), 0); } else if(WheelPos < 170) { WheelPos -= 85; return strip.Color(brightness * (255 - WheelPos * 3), 0, brightness * WheelPos * 3); } else { WheelPos -= 170; return strip.Color(0, brightness * WheelPos * 3, brightness * (255 - WheelPos * 3)); } } 

Gerelateerde Artikelen

DIY LED Light - moderne Desktop Mood Lamp met afstandsbediening

DIY LED Light - moderne Desktop Mood Lamp met afstandsbediening

In dit artikel die zal ik gaan over het proces dat ik gebruikt om te bouwen vormige dit geweldige piramide LED Mood Lamp.Ik gebruikte esdoorn voor de hoofdstructuur en sommige mahonie body voor extra sterkte. Ik gebruikte voor de lichten RGB LED-lamp
LED STRIP SKATEBOARD

LED STRIP SKATEBOARD

dit is een leuk en eenvoudig project dat de moeite waard de tijd! Het is slechts zeven stappen, dus het moet vrij snel. Hoewel, het enige nadeel is dat er zijn verschillende extreme machtshulpmiddelen nodig. Succes! :)Stap 1: Verzamel materialenCAD O
TRON fiets wiel LED

TRON fiets wiel LED

INTRODUCTIEDeze handleiding heeft tot doel om gericht op de noodzaak om een zichtbare, grappige fiets en u zich veilig voelen bij het rijden 's nachts.Voor het gemak van bestellen en organisatie was besloten om het te maken in een Word-document conve
RGB LED partij licht

RGB LED partij licht

Hier is hoe u kunt een RGB LED als een regenboog partij licht voortdurend reizen door het zichtbare spectrum. Wat u nodig zult hebben is:-1 of meerdere RGB-LED 's-1 Arduino UNO bestuur; het kan zijn dat andere boards Arduino merk-een breadboard-5 jum
LED Cloud licht

LED Cloud licht

Dit lichte en veelzijdige wolk licht kan groot of klein, kleur veranderen of wit, en hing aan het plafond of stand-alone! De wolk gemaakt voornamelijk van papieren lantaarns en katoen batting, en is eenvoudig te monteren en lichtgewicht. Lichten zijn
LED Wandklok

LED Wandklok

Dit is gewoon een eenvoudige manier voor het opknappen van uw Wandklok met basismaterialen rond het huis.Stap 1: Materialen die nodig zijn Oude klok van de muurLED lichten - stro hoed wit geleid9V batterij + ClipAlteco lijm/Top BondJumpers (draden)A4
LED Glow Cloud

LED Glow Cloud

Hey, dit is super makkelijk en erg goedkoop project om te maken en het ook ziet er geweldig op uw kamer.Hiervoor is al ubehoefte SOME LED LIGHTS of fairy lights, katoen, wol, duidelijke PLASTIC fles en warme LIJMPISTOOL.[BEKIJK VIDEO]Stap 1: Bekijk d
Maan geheimen LED jas

Maan geheimen LED jas

Ben je naar de maan geweest? Ken jij welke geheimen het houdt? Ik werd uitgenodigd voor de bouw van een LED ruimte uniformjas voor Buzz Aldrin te dragen in een segment op The Late Show met Stephen Colbert. Het is een vrij eenvoudig NeoPixel en LED se
Laser gesneden LED dankbaar dode teken

Laser gesneden LED dankbaar dode teken

Ik maakte voor mijn Instructables een laser gesneden Grateful Dead teken. Ik ben dit teken maken voor mijn persoonlijk project in mijn engineering klas op mijn school. De reden dat ik ervoor kiezen om een Grateful Dead teken is want ik ben het maken
LED houder

LED houder

hebben teveel LEDs? Nou, het bouwen van deze gemakkelijke houder van de LED op de laser cutter en, voila, een plek om te houden van uw LEDs. U WIL NEEED A COMPUTER EN LASER CUTTER HANDIG.Stap 1: Download Inkscape en Xquartz.Om deze LED-houder, moet u
Wind lantaarn: LEDs aangedreven door een verticale as windturbine

Wind lantaarn: LEDs aangedreven door een verticale as windturbine

In dit project, zullen we een kleine, verticale assen windturbine of VAWT bouwen voor korte. Deze zijn niet zo efficiënt als hun neven horizontale-as, maar ze zijn beter geschikt voor stedelijke omgevingen waar de wind vanuit alle andere richtingen k
DIY Portable LED verlichting Panel

DIY Portable LED verlichting Panel

Een draagbare LED verlichting paneel kan echt handig zijn voor fotografie en video werk, dus vandaag gaan we een versie te maken DIY die super handig, nog is makkelijk te maken. Dus ik ben voortdurend het nemen van foto's en video van dingen die ben
PVC Flicker LED kaarsen

PVC Flicker LED kaarsen

Deze hoe zal u tonen hoe te maken van een 3 doorverbonden PVC kaars met flikkerende leds, pvc pijp en warme lijm!Deze kunnen worden gebruikt voor Halloween, huwelijken als centerpieces, home decor en geschenken!!Ik kocht alle mijn PVC-items Lowes wij
Android Controlled RGB LED met behulp van Arduino

Android Controlled RGB LED met behulp van Arduino

Hai iedereen in de post-iam gaan laten zien hoe om te controleren de RGB LED met behulp van android met arduino en HC-05 Bluetooth-module.Ik zocht in web is er veel technieken waarmee de RGB LED. Maar dit is de methode die zeer eenvoudig en gemakkeli