3D afgedrukt Microcontroller-dobbelsteen Roller (3 / 10 stap)

Stap 3: De Microcontroller programmeren

Schreef ik mijn code in MPIDE. MPIDE is volledig gratis en kan worden gedownload hier. Opmerking: MPIDE kan zowat elke microcontroller, inclusief alle chipKIT en Arduino boards Arduino boards program. Als u van een Arduino board gebruikmaakt en al de Arduino IDE die ook net zo goed zal werken.

Als je gloednieuwe microcontrollers te programmeren in een IDE, hier is een snelle tutorial die hoe uitlegt te installeren MPIDE en gebruiken om te communiceren met je board: Inleiding tot de MPIDE.

De code die ik schreef voor de microcontroller is beneden te zien. Er zijn drie voornaamste gedeelten aan deze "schets":

  • De roll()-functie waardoor het lijkt alsof het sterven is daadwerkelijk rollen. Dit is een functie ik zelf heb gemaakt en wordt opgenomen in de onderstaande code.
  • Het genereren van een willekeurig getal tussen 1 en 6 met de functie rand(). (Deze functie vooraf is gedefinieerd in het headerbestand stdlib.h.)
  • En een reeks als verklaringen aan het licht van de juiste LED's op basis van de waarde die wordt gegenereerd.

Deze code kan worden direct van het vak hieronder gekopieerd en geplakt in uw IDE. Vervolgens kunt u het uploaden rechtstreeks naar je board vanaf daar. Als u niet zeker weet hoe het uploaden van de schets, check out de tutorial van de "Intro te MPIDE" gekoppeld hierboven.

Opmerking: Sorry voor de zeer ruimte verbruikt opmaak voor de code. Het gebruikt om weer te geven in een mooi doosje dat je doorlopen kan, maar Instructables enkele wijzigingen aangebracht in hun bewerken interface en ik ben niet in staat om dat te doen meer.

#include / / de functie rand() gebruiken

Initialiseren van de pin gebruikt voor knop input

Const int btnPin = 26;

Initialiseren van de pinnen te controleren van elke LED

Const int led_left_top = 33; LED in de linker bovenhoek van sterven

Const int led_left_center = 32; LED in aan de linkerzijde van het sterven in de rij van het center

Const int led_left_bottom = 31; LED in de linker onderhoek van het sterven

Const int led_right_top = 30; LED in de rechter bovenhoek van het sterven

Const int led_right_center = 29; LED aan de rechterkant van het sterven in de rij van het center

Const int led_right_bottom = 28; LED in de bodem juiste hoek van het sterven

Const int led_center = 27; LED in het midden van het sterven

Een functie om te simuleren van het optreden van een dobbelsteen rollen maken

Functie zal LEDs flikkeren door middel van de getallen 1-6

VOID roll()

{

int i = 0; Tellen van variabele for-lus

voor (ik = 0; ik < 5; i ++) / / cyclus van 5 keer

{

Weergave 1

digitalWrite (led_left_top, laag);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, laag);

digitalWrite (led_center, hoge);

delay(50); 50 ms wachten voordat het volgende waarde weergeven

Scherm 2

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

delay(50);

Weergave 3

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, hoge);

delay(50);

Display 4

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

delay(50);

Display 5

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, hoge);

delay(50);

Display 6

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, hoge);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, hoge);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

delay(50);

}

} / / Einde van roll-functie

Initiliazing variabele sterven waarde vertegenwoordigen

int die_value = 0;

VOIDsetup () / / configure microcontroller pinnen

{

Set-knop pin voor input

pinMode (btnPin, INPUT);

Set LED pinnen aan output

pinMode (led_left_top, OUTPUT);

pinMode (led_left_center, OUTPUT);

pinMode (led_left_bottom, OUTPUT);

pinMode (led_right_top, OUTPUT);

pinMode (led_right_center, OUTPUT);

pinMode (led_right_bottom, OUTPUT);

pinMode (led_center, OUTPUT);

}

VOIDloop )

{

Selectievakje voor druk op de knop

Als (digitalRead(btnPin) == HIGH) / / als knop is ingedrukt

{

Roll(); Simuleren van sterven roll

die_value = (ASELECT() % 6) + 1; Willekeurig sterven waarde, deze code genereert een getal tussen 1 en 6

Als (die_value == 1) / / alleen center LED brandt

{

digitalWrite (led_left_top, laag);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, laag);

digitalWrite (led_center, hoge);

}

elseif (die_value == 2) / / alleen de links boven- en onderkant rechts LEDs verlicht

{

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

}

elseif (die_value == 3) / / de hoogste linkerzijde, onderaan rechts en center LEDs verlicht

{

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, hoge);

}

elseif (die_value == 4) / / de vier LED's op de hoeken zijn verlicht

{

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

}

elseif (die_value == 5) / / de LEDs 4 hoek en het centrum LED verlicht

{

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, hoge);

}

anders / / die_value == 6 en alle LEDs verlicht zijn behalve het centrum een

{

digitalWrite (led_left_top, hoge);

digitalWrite (led_left_center, hoge);

digitalWrite (led_left_bottom, hoge);

digitalWrite (led_right_top, hoge);

digitalWrite (led_right_center, hoge);

digitalWrite (led_right_bottom, hoge);

digitalWrite (led_center, laag);

}

delay(4000); displays sterven waarde voor 4000ms, of 4 seconden

}

anders / / LEDs blijven uit als de knop is niet ingedrukt

{

digitalWrite (led_left_top, laag);

digitalWrite (led_left_center, laag);

digitalWrite (led_left_bottom, laag);

digitalWrite (led_right_top, laag);

digitalWrite (led_right_center, laag);

digitalWrite (led_right_bottom, laag);

digitalWrite (led_center, laag);

}

}

Gerelateerde Artikelen

Hoe maak je een 3D afgedrukt Microcontroller geval

Hoe maak je een 3D afgedrukt Microcontroller geval

De oproep aan 3D print dingen is vrij duidelijk. U kunt maken van allerlei dingen in verschillende kleuren en uw eigen buitensporige stylings integreren in hen. Bent u een persoon die houdt van het idee van kunnend uw elektronica aanpassen of bepaald
AVR Assembler Tutorial 6

AVR Assembler Tutorial 6

Welkom bij Tutorial 6!Today's tutorial zullen kort waar zullen we het ontwikkelen van een eenvoudige methode om gegevens tussen een atmega328p en een andere met twee poorten verbinden hen te delen. Wij zullen vervolgens nemen de dobbelstenen rol van
Soldeer Framed hanger gebouwd

Soldeer Framed hanger gebouwd

In deze "in de klas" tutorial gebracht aan u door Linus sieraden maken, Leer hoe te solder construct een Sterling Zilver Frame rond een afbeelding Roller afgedrukt. Tips en technieken omvatten: hoe te scoren en buig scherpe 90 graden hoeken, bes
Hoe maak je een elektronische dobbelstenen Roller

Hoe maak je een elektronische dobbelstenen Roller

Deze post detailleert een project die ik ben klaar met afgelopen zomer, een elektronische dobbelstenen rol. In deze post, ik ga over het hoe en waarom ik heb gemaakt, en hoe kunt u een ook!Stap 1: Waarom bouwen een elektronische dobbelstenen Roller?M
Star Wars Thermal Detonator 3d afgedrukt

Star Wars Thermal Detonator 3d afgedrukt

De machtige Jabba vraagt waarom hij vijftig duizend moet betalen.Omdat hij een thermal detonator houdt!Met Star Wars dag snel nadert leek het mij alleen passend dat mijn volgende project een Star Wars een was. Hebben reeds een lightsaber, dacht ik da
3D afgedrukt magnetische marmeren Run

3D afgedrukt magnetische marmeren Run

Zet uw koelkast deur in een kinetische Speeltuin! 3D Printing het magnetische marmer uitgevoerd STL bestandsbijlagen in de onderstaande stappen.En zodra u hebt geprobeerd alle mogelijke permutaties en combinaties met de marmeren tracks, sommige bling
Roller afdrukken Basics

Roller afdrukken Basics

Roller afdrukken is een eenvoudige en snelle manier om textuur aan uw werk toevoegen. Het proces is vrij eenvoudig: alle behoeften is een Rolling Mill, een stuk ontharde metaal en een dobbelsteen.Stap 1: Kiezen een dobbelsteen (enkele monsters van mi
20 zijdige dobbelsteen "fuzzy"

20 zijdige dobbelsteen "fuzzy"

Surfen op het Internet zal uiteindelijk leiden tot een willekeurig aantal websites aanbieden 20 dubbelzijdige fuzzy dobbelstenen voor uw auto in de achteruitkijkspiegel. Niet willen om de schaal uit de 20 plus dollar die heb ik besloten om mijn eigen
Bouw een 3D Model van een Nederlandse windmolen (in 1:100 of 1:160 schaal) afgedrukt

Bouw een 3D Model van een Nederlandse windmolen (in 1:100 of 1:160 schaal) afgedrukt

Dit instructable wandelingen door de bouw van een 3D Printed kit die een soort windmolen modellen verspreid van Noord-Europa maar meestal gedacht aan met betrekking tot Nederland. Het idee werd geboren in een gesprek over het soort landschap dat zou
3D afgedrukt automatische Pet Feeder

3D afgedrukt automatische Pet Feeder

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com).Het voordeel van dit ontwerp is dat het precies één kopje elk interval, waardoor het superieure over andere auger of open
Maak een vouwen Plotter die Circuits op textiel afgedrukt

Maak een vouwen Plotter die Circuits op textiel afgedrukt

Heb je ooit wilde plot voor onderweg? Plot op het strand? Plot in uw buurman house?Persoonlijk, ik wilde om te ontdekken hoe maak je een flexibele "fabriek" voor afdrukken circuits op textiel. Wat ook uw motieven mogen zijn, deze textiel plotter
3D afgedrukt fietsverlichting (achterkant) zonder batterij

3D afgedrukt fietsverlichting (achterkant) zonder batterij

Hallo ontluikt!Hier is de tweede versie van de 3D gedrukte universele fiets licht voor de achterkant van uw fiets!HD-kwaliteit voor de timelapse is beschikbaar!Stap 1: BenodigdhedenNeem alles wat u nodig hebt: (kit beschikbaar binnenkort!)Magneten (z
Aangepaste 3D afgedrukt Carbon Fiber fietsframe

Aangepaste 3D afgedrukt Carbon Fiber fietsframe

als je echt in fietsen bent en op deze site zijn, de kansen zijn dat door de jaren heen je ten minste met het idee speelde heb van het maken van uw eigen frame. Er is iets speciaals en diep lonende over rijden op iets dat u hebt gebouwd jezelf, en ku
Fake toiletpapier Roll

Fake toiletpapier Roll

Is er erger dan gaan naar de badkamer alleen te vinden u vergat om te controleren of er wc-papier was?  Is er nu!Ik maakte een nep rollen wc-papier uit karton, en een verwijderbare prank bericht ingevoegd voor dat moment van de waarheid wanneer je sl