• Contact
  • LED dobbelsteen



    Inleiding
    Kolonisten van catan, risk, yahtzee en cluedo. Het zijn allemaal spelletjes waarvoor je één of meerdere dobbelstenen nodig hebt. Natuurlijk kun je hiervoor een gewone ouderwetse houten dobbelsteen gebruiken maar voor iemand die geïnteresseerd is in elektronica, is een LED dobbelsteen natuurlijk veel leuker om te gebruiken. En er zitten ook een paar voordelen aan een LED dobbelsteen. Deze kan bijvoorbeeld niet van de tafel afrollen en het getal is ook nog zichtbaar als het spel in een donkere ruimte wordt gespeeld.

    Benodigdheden

    Schakeling
    Hieronder staat het schema en de print-layout van de LED dobbelsteen

    schema van LED dobbelsteen
    Schema van LED dobbelsteen

    Onderdelen

    print-layout van LED dobbelsteen
    print-layout van LED dobbelsteen

    Code voor PIC

    /**************************************************************
    * Auteur: K.J. Kok                                            *
    * Copyright: (c) Digibytez, 2007-2010.                        *
    * Datum: 22-06-2010                                           *
    * Chip: PIC12F629                                             *
    * Omschrijving: Code voor PIC van de LED dobbelsteen project. *
    * Zie http://www.digibytez.nl                                 *
    **************************************************************/
    
    void main() {
    
    // Declaraties
    int aantal_ogen = 1;
    int aantal_ogen_vast = 0;
    int teller1;
    int teller2;
    int teller3;
    int s_ingedrukt = 0;
    
    // Start programma
    do {
       if(GPIO.B3==1){                                              // Als drukschakelaar wordt ingedrukt
          s_ingedrukt = 1;                                          // Drukschakelaar is ingedrukt
          while(s_ingedrukt==1){                                    // Zolang schakelaar ingedrukt is,
                                                                    // random getallen genereren en weergeven
             aantal_ogen = rand()%6+1;
             aantal_ogen_vast = aantal_ogen;
             while(aantal_ogen_vast==aantal_ogen){
                aantal_ogen = rand()%6+1;
                }
                switch (aantal_ogen) {
                   case 1: GPIO = 0b00000100;  break;
                   case 2: GPIO = 0b00010000;  break;
                   case 3: GPIO = 0b00010100;  break;
                   case 4: GPIO = 0b00010001;  break;
                   case 5: GPIO = 0b00010101;  break;
                   case 6: GPIO = 0b00010011;  break;
                }
                s_ingedrukt = GPIO.B3;                              // Controleren stand drukschakelaar.
                Delay_ms(50);
             }                                                      // Drukschakelaar is niet ingedrukt meer
             teller1 = 1;
             while(teller1<2) {                                     // Na een vaste tijd de gegooide waarde genereren
                for(teller2=0;teller2<20;teller2++){
                   aantal_ogen = rand()%6+1;
                   aantal_ogen_vast = aantal_ogen;
                   while(aantal_ogen_vast==aantal_ogen){
                      aantal_ogen = rand()%6+1;
                   }
                   switch (aantal_ogen) {
                      case 1: GPIO = 0b00000100;  break;
                      case 2: GPIO = 0b00010000;  break;
                      case 3: GPIO = 0b00010100;  break;
                      case 4: GPIO = 0b00010001;  break;
                      case 5: GPIO = 0b00010101;  break;
                      case 6: GPIO = 0b00010011;  break;
                   }
                   for(teller3=0;teller3<teller1;teller3++){
                      Delay_ms(60);
                   }
                }
                teller1++;
             }
          }
          else {                                                    // Drukschakelaar wordt niet ingedrukt
          }
       }
    while(1);                                                       // Programma blijven herhalen
    }
    

    Werking
    De 7 LEDs geven aan welk getal is gegooid net zoals dat op een echte dobbelsteen wordt aangegeven. Als de drukschakelaar ingedrukt wordt dan begint de PIC met random getallen te kiezen die worden weergeven. Als vervolgens de drukschakelaar losgelaten wordt dan stopt de dobbelsteen bij een bepaald getal. De PIC is zo geprogrammeerd dat je als gebebruiker van de dobbelsteen geen invloed hebt op het getal wat gegooid wordt.
    Deze schakeling werkt op een 9V batterij

    Download


    In het download pakket zit een schema en een printlayout die je met behulp van Eagle kunt openen. Verder bevat het download pakket een hex-bestand met het programma voor de PIC die je direct met een PIC programmer in de PIC kunt laden.

    Bestellen
    De volgende producten kun je bestellen:

    Geef hier je bestelling door.

    Advertentie

    © 2007-2010 Digibytez. Bekijk de disclaimer