Flipdots: Unterschied zwischen den Versionen

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
(added some info)
K (Bastelerfahrung von Mathias)
Zeile 56: Zeile 56:
  
 
   mask=old_pixel_mask ^ pixel_mask;
 
   mask=old_pixel_mask ^ pixel_mask;
   set_row(row, pixel_mask & mask, 0);
+
   set_row(row, old_pixel_mask & mask, 0);
   set_row(row, old_pixel_mask & mask, 1);
+
   set_row(row, pixel_mask & mask, 1);
  
 
= Spannungsversorgung =
 
= Spannungsversorgung =
  
 
Achtung, das Panel braucht beim Schalten extrem viel Strom! Unsere Netzteile hier schaffen das nicht. Mit einem ausreichend großen Kondensator sollte man das ausgleichen können.
 
Achtung, das Panel braucht beim Schalten extrem viel Strom! Unsere Netzteile hier schaffen das nicht. Mit einem ausreichend großen Kondensator sollte man das ausgleichen können.

Version vom 9. Januar 2014, 01:28 Uhr

2x3 Panele ca 90x 50 cm gross


[1]

[2]

[3]

Bastelerfahrung von Mathias

Pins von Interesse:

  • 3 ROW_DATA
  • 5 STROBE
  • 7 BLACK_OUTPUT_ENABLE
  • 9 WHITE_OUTPUT_ENABLE
  • 11 COL_CLOCK
  • 13 ROW_CLOCK
  • 15 COL_DATA
  • 17 ROW_DATA_OUT (zum Kaskadieren)

Einfach gesagt wählt man eine Reihe aus indem man in ROW (pro Panel) 24bit hineinschiebt. Die aktive Reihe wird 1 gesetzt, der Rest 0.

 for(i=0;i<24;i++){
  change_pin(ROW_DATA,i==row);
  toggle_pin(ROW_CLOCK);
 }

Dann kann man gleichzeitig 16-bit in eine Spalte schreiben.

 for(i=0;i<16;i++){
  change_pin (COL_DATA,(data>>i)&1);
  toggle_pin(COL_CLOCK);
 }

Jetzt muss man einmal die Ausgänge im Display mit strobe updaten:

 toggle_pin(STROBE);

Und nun wählt man ob die Pixel, welche man in der Spalte vorher gesetzt hat, nach schwarz oder weiß setzt:

 change_pin(BLACK_OUTPUT_ENABLE,!color);
 change_pin(WHITE_OUTPUT_ENABLE,color);
 _delay_us(color?1500:3000);
 change_pin(BLACK_OUTPUT_ENABLE,0);
 change_pin(WHITE_OUTPUT_ENABLE,0);

Und eine Spalte zu beschreiben kann man also die Spalte einmal komplett auf schwarz setzen und dann die weißen Pixel setzen die man will:

 set_row(row,65536,0);
 set_row(row,pixel_mask,1);

oder unauffälliger einfach die toggeln, die man toggeln will.

 mask=old_pixel_mask ^ pixel_mask;
 set_row(row, old_pixel_mask & mask, 0);
 set_row(row, pixel_mask & mask, 1);

Spannungsversorgung

Achtung, das Panel braucht beim Schalten extrem viel Strom! Unsere Netzteile hier schaffen das nicht. Mit einem ausreichend großen Kondensator sollte man das ausgleichen können.