Automatiserad godis Dispenser (5 / 6 steg)

Steg 5: Koden och bibliotek som krävs

Följande är den Arduino skiss har utvecklats för detta projekt och alla bibliotek som krävs för att köra den.

Se till att du packa upp alla bibliotek och placera dem i mappen Arduino bibliotek som finns i dokumentet/Arduino/biblioteket, på din hårddisk.

Ändra pin-koder för varje artikel till den pin-kod du har varje komponent ljudport på Arduino.

Den bifogade videon ger en beskrivning av Arduino skiss utvecklats för detta projekt.

Följande är en beskrivning av Arduino skiss.

Denna del av koden anropar alla bibliotek används:

#include "stepMotor28BYJ.h" //Includes Motor bibliotek
#include "IRremote.h" //Includes IR Senor bibliotek
#include "Adafruit_GFX.h" //Includes bibliotek för ledde matrisen
#include "Adafruit_NeoMatrix.h" //Includes bibliotek för ledde matrisen
#include "Adafruit_NeoPixel.h" //Includes bibliotek för ledde matrisen

Denna del initierar Motor, IR-sensorn och ledde matrisen, ange alla stift för varje enhet och konstruktörer:

#define pin1 8 //Motor Pin 1
#define pin2 9 //Motor Pin 2
#define pin3 10 //Motor Pin 3
#define pin4 11 //Motor stift 4
#define fördröjningstid 8 //Motor fördröjningstiden
stepMotor28BYJ stepper (pin1 PIN2-, pin3, pin4, fördröjningstid); Initierar Motor bibliotek
#define irPin 2 //IR givarstaven
IRrecv irrecv(irPin); Intitializes Motor bibliotek
decode_results resultat. Resultatet av IR behandlingen lagras i resultat
#define PIN 5 //LED Matrix Data ingångsstift
#define BOARDCOUNT 1 //Number av ledde matriser
Adafruit_NeoPixel strip = Adafruit_NeoPixel (64 * BOARDCOUNT, stift, NEO_GRB + NEO_KHZ800); Initierar antal lampor
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix (8, 8, PIN, //Initializes ledde matrisen
NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT + //Sets ledde matrisen orientering
NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, //Sets hur indata är kodad
NEO_GRB + NEO_KHZ800); Ställer in ledde matrisen färginställningar

Denna matris initierar alla färger i matrisen LED, är den specifika färgen kommenterade i koden:

CONST uint16_t färger [] = {//Initializes färger som visas på ledde matrisen
Matrix. Färg (85, 85, 85), matrix. Färg (128, 0, 0), matrix. Färg (100, 40, 0), / / vit, röd, Orange
Matrix. Färg (85, 85, 0), matrix. Färg (0, 128, 0), matrix. Färg (0, 0, 128), / / gul, grön, blå
Matrix. Färg (85, 0, 85), //Purple
};

Dessa heltal används för svarvning ledde matrisen på och av, och ställa in läge standby-displayen:

int läge = 0; Variabeln som används för att spåra Remote Mode knappen, förändringar Standby display från kägla till M & M baserat på värde
int power = 0; Variabeln som används för att spåra Remote Power knappen, vänder ledde matrisen på och av baserat på värde

Denna del ställer in enheterna för de viktigaste loopen:

void setup() {//Setup initiering
irrecv.enableIRIn(); Gör IR-Sensor
Matrix.BEGIN(); Tillåter Data Output till matris
matrix.setTextWrap(0); //
matrix.setBrightness(30); Uppsättningar Matrix ljusstyrka
matrix.setTextColor(colors[0]); Definierar Matrix färg som vit, om inte annat anges
Serial.BEGIN(9600); Börjar seriell kommunikation
}

Detta är den viktigaste loopen. Först kontrolleras mot IR-sensorn om den tar emot en signal. Om signalen är från knapparna 1-9 på fjärrkontrollen, är jag inställd på motsvarande nummer. Om strömbrytaren trycks ledde matrisen återställs och power heltal är upprepade. Om du trycker på mode-knappen upprepade det läge heltalet. Om knappen trycks inte är en av de utsedda knappar på i heltalet sätts till 0. Nästa, IR-sensorn är inställd att återuppta normal drift. Så, jag är skickas till stepper motor rotera funktionen kommer att rotera den motor 1/6 av en revolution för varje värde i i. om motorn har roterat, visar funktionen Njut ordet "Njuta" rulla över ledde matrisen. Om IR-sensorn inte emot en signal funktionen godis utförs och visar antingen en kägla eller M & M beroende på värdet för mode.

void loop() {//Main Loop
int jag = 0; Anger antalet godis för att lämnas ut till 0
om (irrecv.decode(&results)) {//Executes om IR-sensorn får signal
IF(results.Value == 16724175) jag = 1; Fjärr-knappen 1
annat if(results.value == 16718055) jag = 2; Fjärr-knappen 2
annat if(results.value == 16743045) jag = 3; Fjärr-knappen 3
annat if(results.value == 16716015) jag = 4; Fjärr-knappen 4
annat if(results.value == 16726215) jag = 5; Fjärr-knappen 5
annat if(results.value == 16734885) jag = 6; Fjärr-knappen 6
annat if(results.value == 16728765) jag = 7. Fjärr-knappen 7
annat if(results.value == 16730805) jag = 8. Fjärr-knappen 8
annat if(results.value == 16732845) jag = 9. Fjärr-knappen 9
annat if(results.value == 16753245) {//Remote Power-knappen
matrix.fillScreen(0); Uppsättningar Input till matrisen till 0
Matrix.show(); Rensar matris
Power ++; Lägger till makten om strömbrytaren intryckt //Used Njut och godis funktioner, nedan
}
annat if(results.value == 16736925) läge ++; Remote Mode knappen //Used i godis funktion, nedan
annat jag = 0; Om ingen knapp trycks ner, anger antalet godis till 0
irrecv.Resume(); IR-Sensor vände tillbaka
stepper.rotate(i); Passerar antal godis för att lämnas ut till Stepper bibliotek, roterar Motor att avstå från angivet antal godis
IF(i!=0) enjoy(power); Om godis är förpackat, tar Display njuta på ledde matrisen, makten variabel som indata
}
annat candy(power,mode); Om inte godis är avstå från, Visa en bitar av cand på LED Matix, tar läge och makt som insatsvaror
}

Detta är enjoy-funktion som visar ordet "ENJOY". Den för loop används att rulla ordet över matrisen. Om när som helst en IR signal tas emot loop funktion är avslutat och återgår till den viktigaste loopen. Också, om det makt heltalet är udda ordet visas inte.

void enjoy(int power) {//Displays ordet Njut, beroende på power variabel
för (int jag = 8; jag > -30;--i) {//For loop att rulla Njut över ledde matrisen
om (power %2 == 1) bryta; Om variabeln makt är udda, visas bryter njuta eftersom ledde matrisen är inställt på
matrix.fillScreen(0); Rensar ledde matrisen Input
matrix.setCursor (i, 0); Ställer in LED Matrix markören till position i, detta gör Njut att rulla som for-loop körs
Matrix.Print(F("Enjoy")); Utskrifter Njut på ledde matrisen på definierade markörens position
Matrix.show(); Visar senaste uppdateringen till ledde matrisen ingång
Delay(125); Dröjsmål.125 sekunder innan flytta markören
}
}

Detta är funktionen godis. Om det läge heltalet är visas även en kägla, om udda en M & M visas. Om det makt heltalet är udda ingenting visas. Den för loop cyklar färgar av lappa av godis.

Annullera godis (int makt, int läge) {//Display bit godis blinkar olika färger på ledde matrisen, beroende på power variabel, godis typ beroende på läge variabel
matrix.fillScreen(0); Tydlig ledde matrisen Input
för (int jag = 1; jag < 7; i ++) {//For slinga för att ändra färg på godis, röd, ORANGE, gul, grön, blå och lila
om (irrecv.decode (& resultat)) bryta; Om IR-sensorn tar emot input, raster visas av godis
om (power %2 == 1) bryta; Om power variabeln är udda, raster godis Visa eftersom det ledde matrisen är inställt på
matrix.fillCircle(3,3,3,colors[i]); Skapar cirkel av angivna färgen från färger matris som tidigare angivits
matrix.setCursor (1, -1); Anger positionen för markören så antingen "eller är" kommer att visas i mitten av cirkel
om (läge %2 == 0) matrix.print(F("s")); Om läget variabel är även, ett ' skrivs ut för ledde matrisen, effektivt visar en kägla
annat matrix.print(F("m")); Om läget variabel inte ens, en är "skrivs ut för ledde matrisen, effektivt visar en M & M
Matrix.show(); Visar senaste uppdateringen till ledde matrisen ingång
Delay(750); Förseningar.75 sekunder innan du ändrar godis färg
}
}

Jag skrev en motor bibliotek för denna kod eftersom motorn inte kunde göras att rotera endast 1/6 varv i taget. Det är en vanlig stepper motor bibliotek med högt vridmoment inställningar. Korrigering till tillåta genom att rotera 1/6 en revolution utan att komma i centrum är i följande kod.

void stepMotor28BYJ::rotate (int lappar) {//Rotates motor att leverera användaren definierat antal bitar
för (_i = 0; _i
0; _steps--) _forward(); Räknar antal steg som tagits
_stepOff(); Inaktiverar spolar
_j++; Lägga till 1 i _j, räknas nämner av godis förpackat tills nästa korrigering
}
}

Koden är fullt kommenterade och bör vara ganska lätt att följa om du har erfarenhet programmering.

Se Steg
Relaterade Ämnen

Automatiserad Halloween godis Dispenser

Godis är laddad till en lång PVC rör hängande utanför balkongen. När en trick-or-treater närmar sig huset de se en halloween korg och lagt instinktivt sin hand ned. Ett ultraljud sensorn känner sina händer och skjuter ut en godis från röret.Steg 1: G...

Bajsa renar godis Dispenser

Detta är en ren godis dispenser som bajsar ut läckra godsaker för dig att äta!När du trycker ner på hans huvud, doserar en intern mekanism en liten, uppmätta mängden godis. Det fungerar särskilt bra med hårt skal godis som M & Ms och Reeces.Mina barn...

Automatisk Halloween godis Dispenser

år min Halloween projekt är Automatic Halloween Candy Dispenser® utlöses av TextforTreat®, CallforTreat® (drivs av Twilio) och teknik. Det kan naturligtvis också utlösas från en Stor röd tryckknapp, men där är roligt i det?När trick-or-treaters dyker...

Knex godis dispenser

jag gjorde detta godis dispenser och jag vet inte varför och im kommer inte för att sätta en videodet fungerar med m & ms reasses bitar och godis som detSteg 1: allt Steg 2: Hurra din gjortbara fylla den övre halva vägen eller annars det dosent arbet...

LEGO godis Dispenser

Detta godis dispenser ger ett roligt sätt att få en läcker söt behandla. En enkel slider mekanism doles ut varorna och toppen har en lätt-release lock. Lego godis dispensern är en superenkel bygga och tar inte ett gäng galna bitar men fortfarande res...

3D tryckta anpassad godis Dispenser Topper

Det finns inget mer spännande än anpassa din "Godis Dispenser" samling med konstverk från berömda museer, dina nära och kära ansikten eller slumpmässiga saker du 3D skannade. Detta Instructable kommer att visa hur man tar en 3D-modell från Thing...

DIY död stjärniga godis Dispenser

Idag ska jag visa dig hur gör din egen död stjärna candy dispenser för omkring $15! Alla material kan fås från lokala butiker och projektet kan göras på en helg!Material:Touch Candy Dispenser: $8 (jag har fick min från mål till försäljning, men om du...

Inriktad på godis Dispenser

Min levande grupp deltar i en Secret Santa tradition där inga pengar kan spenderas på gåvor. Jag hade massor av skrot trä runt och blev inspirerad av att se andra murare burk tuggummi maskiner. Jag bestämde mig att försöka göra en med en mekanisk twi...

Boo! Halloween godis dispenser

Varje år är det Halloween.Ge ut godis till barnen är mycket roligt.Men ibland, barn knacka på din dörr när din i toaletten.Ibland är du bara trött av att gå fram och tillbaka till dörr för att ge ut godis.Men du ändå vill vara unika som andra människ...

Hemliga kaffe kopp godis Dispenser

min bror och jag tänkte på denna brainstorming för BetaCup tävlingen. Detta är en cool alldeles för dölja ditt godis vid skrivbordet. Godis kommer ut när du vrida hylsan. Plus att det är kul att visa människor också!Tack till alla som kommenterat, ja...

Hemliga slå godis Dispenser

när du gör den Hemlig knackning, det ger dig lite godis.Detta är min version av Hemlighet slå Gumball maskin av Steve Hoefer. Jag använde hans krets och hans kod, men jag slog ut på min egen för mekanisk konstruktion. Detta var min första gången arbe...

VEND - helt utskrivna godis dispenser

VEND - helt utskrivna godis fördelaren. Ladda ner. Skriv ut. Montera. Lev.inköpskoder. Spara lite pengar. Toppen....

Miniatyr godis dispenser leksak

https://www.youtube.com/watch?v=c4QcEfC20k4...

USB PEZ (eller hur man Fido din godis dispenser).

Godmorgon peeps.Som min andra Instructable jag trodde det skulle vara häftigt att lite tweak för att göra våra USB-nyckel lite mer roliga ute efter. Som bäddar in det i en PEZ. Tja du kan tänka dig hur enkelt detta Instructable kommer att vara. Men j...

Automatiserad Halloween godis Tumbler / Dispenser

Vi är tyvärr aldrig hem att dela ut godis på Halloween. Tidigare skulle vi lämna ut en skål med godis, kanske med en skylt med texten "ta bara en". Men det är mindre än idealisk, uppenbarligen. Det uppmanar missbruk, och är ganska lamt.Jag bestä...

Interaktiva Magic Mirror med Candy Dispenser

för Halloween 2012 jag skapade en interaktiv Magic Mirror. Den magiska spegeln har en sonar (PING))) sensor som känner av när barnen är finns i närheten. Då spegeln säger några slumpmässiga fraser och sjunker automatiskt godis till hinken. Jag repurp...

PEZbot Instructables Robot candy dispenser

här är hur man förvandlas en söt Easter Bunny PEZ godis dispenser till en cool Easter Bunny PEZbot Instructables Robot candy dispenser.Passar i din skjorta ficka? Kolla!Ganska billigt att göra? Kolla!Snabba nog att glida in i tävlingen innan det slut...

LEGO Hi-tugga Dispenser

efter att min Lego godis Dispenser, bestämde jag mig för jag ville göra något för att avstå från min nuvarande godis besatthet: Hi-tugga!Jag ville också ha en maskin som doseras godis när handtaget var intryckt, i stället för när drog ut. En annan de...

SnackBot: Internet ansluten godis maskinen!

Under 2013 Bay området Maker Faire, elektriska Imp distribuerade en häpnadsväckande 40-plus pounds av M & Ms med vår Internet ansluten SnackBot. Hundratals deltagare älskade det, så vi beslutade att dela hur vi byggde den.Våra SnackBot är uppbyggd kr...