Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

08 Shifting & DotMatrix

10. November 2011

Um mehrere LEDs ansteuern zu können, wird ein Shift Register zwischengeschaltet. So können Anschlüsse am Arduino-Bord "gespart" werden und dementsprechend mehr LEDs angeschlossen werden. Für Shifting ist wichtig, dass das Binärsystem verstanden wird: das hatten wir doch irgendwann mal in der Primarschule...mittlerweile ist das Wissen wieder aufgefrischt und so kann das Shiftregister via Code angesteuert werden. DOT MATRIX Mit Punkten zeichnen so quasi. Anbei einige meiner Icons.

//SHIFT REGISTER 01

#define LATCH_PIN 8
#define CLOCK_PIN 12
#define DATA_PIN 11

void setup()
{
pinMode(LATCH_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
}

void loop()
{
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B10000000);
digitalWrite(LATCH_PIN, HIGH);
}

//SHIFT REGISTER 02

#define LATCH_PIN 8
#define CLOCK_PIN 12
#define DATA_PIN 11

void setup()
{
  pinMode(LATCH_PIN, OUTPUT);
  pinMode(CLOCK_PIN, OUTPUT);
  pinMode(DATA_PIN, OUTPUT);
}

void loop()
{
  for(int i = 0; i=1; i--)
  {
  byte myByte = B00000000;
  bitWrite(myByte, i, 1);
  digitalWrite(LATCH_PIN, LOW);
  shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, myByte);
  digitalWrite(LATCH_PIN, HIGH);
  delay(100);
  }
}

//DOT MATRIX DISPLAY LTP-757KR
//11.11.11

//KATZENGEIST

#define COLUMN_1 12 //pins mit widerständen (negativ)
#define COLUMN_2 11
#define COLUMN_3 10
#define COLUMN_4 9
#define COLUMN_5 8

#define ROW_1 7 //pins ohne widerstände (positive)
#define ROW_2 6
#define ROW_3 5
#define ROW_4 4
#define ROW_5 3
#define ROW_6 2
#define ROW_7 1

int column[5] = {
COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5};
int row[7] = {
ROW_1, ROW_2, ROW_3, ROW_4, ROW_5, ROW_6, ROW_7};
int matrix[7][5]={
{0,0,0,0,0},
{0,1,1,1,0},
{1,1,0,1,1},
{0,1,1,1,1},
{1,1,0,1,1},
{0,1,1,1,0},
{0,0,0,0,0}
};

void setup()
{
for(int i = COLUMN_1; i>= ROW_7; i--)
{
pinMode(i, OUTPUT);
}

digitalWrite(COLUMN_1, HIGH);
digitalWrite(COLUMN_2, HIGH);
digitalWrite(COLUMN_3, HIGH);
digitalWrite(COLUMN_4, HIGH);
digitalWrite(COLUMN_5, HIGH);

}

void loop()
{
for(int j=0;j<=6;j++){
for(int n =0; n<=4;n++)
{
pulseLED(n,j,matrix[j][n]);
}
}
}

void pulseLED(int whichColumn, int whichRow,int t)
{
digitalWrite(column[whichColumn], LOW);
digitalWrite(row[whichRow],t);
delayMicroseconds(100);
digitalWrite(column[whichColumn], HIGH);
digitalWrite(row[whichRow], LOW);

}

 

//DOT MATRIX DISPLAY LTP-757KR
//11.11.11

//BUCHSTABE E

#define COLUMN_1 12 //pins mit widerständen (negativ)
#define COLUMN_2 11
#define COLUMN_3 10
#define COLUMN_4 9
#define COLUMN_5 8

#define ROW_1 7 //pins ohne widerstände (positive)
#define ROW_2 6
#define ROW_3 5
#define ROW_4 4
#define ROW_5 3
#define ROW_6 2
#define ROW_7 1

int column[5] = {
COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5};
int row[7] = {
ROW_1, ROW_2, ROW_3, ROW_4, ROW_5, ROW_6, ROW_7};
int matrix[7][5]={
{1,1,1,1,1},
{1,1,1,1,1},
{1,1,0,0,0},
{1,1,1,1,1},
{1,1,0,0,0},
{1,1,1,1,1},
{1,1,1,1,1}
};

void setup()
{
for(int i = COLUMN_1; i>= ROW_7; i--)
{
pinMode(i, OUTPUT);
}

digitalWrite(COLUMN_1, HIGH);
digitalWrite(COLUMN_2, HIGH);
digitalWrite(COLUMN_3, HIGH);
digitalWrite(COLUMN_4, HIGH);
digitalWrite(COLUMN_5, HIGH);

}

void loop()
{
for(int j=0;j<=6;j++){
for(int n =0; n<=4;n++)
{
pulseLED(n,j,matrix[j][n]);
}
}
}

void pulseLED(int whichColumn, int whichRow,int t)
{
digitalWrite(column[whichColumn], LOW);
digitalWrite(row[whichRow],t);
delayMicroseconds(100);
digitalWrite(column[whichColumn], HIGH);
digitalWrite(row[whichRow], LOW);

}