User Tools

Site Tools


digispark:tutorials:probetashield

Digispark Pro Beta Shield Assembly

Parts included:

  • One 33k resistor
  • Two 10k resistors
  • One Light Dependent Resistor (LDR)
  • One 8×8 Red LED Matrix - Common Cathode
  • One 10uf Capacitor
  • One 0.1uf Capacitor
  • One 24 Pin DIP Socket
  • One MAX7219 LED Driver IC
  • One PS2 style joystick
  • One joystick cap
  • One Beta Shield PCB

Assembly:

Read all of the steps before assembling so that you know what to expect.

Note: The current steps instruct you to solder two 9 pin male headers after soldering the 8×8 LED Matrix. However, in practice you may find that this does not leave much room for the soldering tip to reach the header pins. It may work better to solder the header pins before soldering the 8×8 LED Matrix.

Try place the parts onto the board and see what order gives you the better clearance for attaching all the components.

Insert resistors as labeled - solder connection on the bottom. Trim excess leads.

Insert LDR in oval spot next to 10 k resistors. Solder connection on bottom. Trim excess leads.

Insert joystick into position - solder connections on bottom. It only fits one way.

Insert DIP socket and solder connection on bottom.

Insert two 9 pin male headers from the bottom of the PCB and solder on the top - plug Digispark Pro with female headers into the bottom.

Insert capacitors as labeled (large cap is polarized '-' leg to '-' on board) - solder connection on the bottom. Trim excess leads.

Insert 8×8 LED Matrix with the black writing on the edge of the Matrix facing downward to the bottom edge of the board - NOT facing the capacitors. Solder connections.

Insert MAX7219 into socket - with the key facing the right edge of the board - not facing the capacitors.

Snap joystick cap on to joystick.

Use the LED control library to control the LED Matrix (included with the IDE addons) - use the following init string for proper pin settings:

/*
 pin 10 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 12 is connected to LOAD 
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(10,11,12,1);

The joystick is an X and Y potentiometer which shows a voltage on A5 and A8

The push button pulls Pin 1 low.

The LDR reports a voltage on A9 based on the light level.

The pins are written on the board itself for reference as well.

Assembled photo:

Here's a sketch that uses all of the inputs and outputs on the board:

#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
#include <LedControl.h>
 
#define JOYX A5
#define JOYY A8
#define BUTTON 1
#define LIGHT A9
 
LedControl lc = LedControl(10,11,12,1);
 
void setup() {
  lc.shutdown(0, false);
  lc.setIntensity(0, 8);
  lc.clearDisplay(0);
  
  pinMode(JOYX, INPUT);
  pinMode(JOYY, INPUT);
  pinMode(BUTTON, INPUT);
  pinMode(LIGHT, INPUT);
}
 
void loop() {
  lc.setIntensity(0, map(analogRead(LIGHT), 0, 1024, 0, 15));
  lc.clearDisplay(0);
  if(!digitalRead(BUTTON)) {
    for(int x = 0; x < 8; x++) {
      for(int y = 0; y < 8; y++) {
        lc.setLed(0, x, y, true);
      }
    }
    delay(10);
    return;
  }
  
  long xint = analogRead(JOYX);
  long yint = analogRead(JOYY);
  
  long x = map(xint, 0, 1023, 15, 0);
  long y = map(yint, 0, 1023, 15, 0);
  
  if(x % 2 == 1) {
    lc.setLed(0, (x / 2) + 1, y/2, true);
  }
  if(y % 2 == 1) {
    lc.setLed(0, x/2, (y / 2) + 1, true);
  }
  if(x % 2 == 1 && y % 2 == 1) {
    lc.setLed(0, (x / 2) + 1, (y / 2) + 1, true);
  }
  
  lc.setLed(0, x/2, y/2, true);
  delay(10);
}

Or, try out this simple version of Space Invaders.

Or, play with an etch-a-sketch simulator.

Or, LedControl::Arduino library for the MAX7221 and MAX7219 .

digispark/tutorials/probetashield.txt · Last modified: 2016/06/09 12:03 (external edit)