Go Down

Topic: 8xRGB (Read 6 times) previous topic - next topic

Radar

Jupp, daran hab ich heute während der Arbeit auch rumgedacht. Steht noch auf der ToDo-Liste nach ein paar Interrupt Tutorials.

Danke für die Links!

Und der UNL Chip ist bestellt :)

Megaionstorm

#31
Nov 25, 2010, 01:47 pm Last Edit: Nov 25, 2010, 01:49 pm by Megaionstorm Reason: 1
Mit der 4X4 Tasten Version deines Keypads könnte man ein 16 Tasten Senso-Spiel bauen ! Etwas schwieriger als die 4 Tasten Urversion.

MB Senso von 1978 in Aktion:
http://www.youtube.com/watch?v=GSSCWYYGfK0
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

apogee

Ich würd nach wie vor ein Octinct draus bauen oder ein Arduinome :D

Megaionstorm

Vermute mal das Du so etwas meinst ?

OcTinct running refmatrix:
http://www.vimeo.com/793243

Was macht das Ding eigentlich ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

apogee

Richtig.

MIDI Noten erzeugen.

Ist eines der fortschrittlichsten Musik-Controller die es zurzeit gibt.

Octinct ist quasi ein Arduinome / Monome Clone in RGB.

Radar

Sooo...

ULN Chip ist angekommen. Und ich bin am rumbasteln dabei ist mir folgendes aufgefallen:

Hier sieht man die obere Reihe. Es sind rote Buttons und der 5te ist blau.
Die ist wenn ich die Fabren mit digitalWrite ausgebe.

Und jetzt:

Das selbe Prog. hier die Farben aber mit analog Write ausgegeben.
Die ersten 4 Buttons sind noch rot. Die Buttons danach machen einen flackernden Farbverlauf von Pink zu Rot.

Hier noch mein Code:
Code: [Select]

int data  = 2;
int clock = 3;
int latch = 4;
int blu =  9;
int grn =  10;
int red =  11;
void setup()
{
 pinMode(data,  OUTPUT);
 pinMode(clock, OUTPUT);  
 pinMode(latch, OUTPUT);
 pinMode(grn,   OUTPUT);
 pinMode(blu,   OUTPUT);  
 pinMode(red,   OUTPUT);
 digitalWrite(red, 0);
 digitalWrite(grn, 0);
 digitalWrite(blu, 0);
}

int i = 4;
int row1[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000};

void loop()            
{
 for(int a=0; a<8; ++a)
 {
   updateLEDs(a);
   if(a == i)
     anaRGB(0,0,255);    
   else
     anaRGB(255,0,0);
   delay(1);
 }
}

void rgb(boolean r, boolean g, boolean b)
{
 digitalWrite(red, r); digitalWrite(grn, g); digitalWrite(blu, b);
}

void anaRGB(byte r, byte g, byte b)
{
 analogWrite(red, r); analogWrite(grn, g); analogWrite(blu, b);
}

void updateLEDs(int idx)
{
 digitalWrite(latch, LOW);     //Pulls the chips latch low
 shiftOut(data, clock, MSBFIRST, row1[idx]);
 digitalWrite(latch, HIGH);   //Pulls the latch high displaying the data
}


Das Setup ist wie hier besprochen.

Mache ich etwas flasch im Code?
Ach und heller könnten sie immer noch sein. Ist absolut kein Vergleich zudem wie hell eine einzelne LED ist. Ich verstehe ja, dass die Helligkeit durch das durchrasen etwas abnimmt... aber ca. 50-60% ???

Megaionstorm

#36
Nov 25, 2010, 10:45 pm Last Edit: Nov 25, 2010, 10:46 pm by Megaionstorm Reason: 1
Welche Werte haben deine Widerstände für Rot, Grün und Blau ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Zur zeit haben alle 560 Ohm. Den Wert hab ich von einem Anfänger Tutorial.

Hat das was mit dem verschmieren der Farben zu tun?

Bei den LEDs lag noch n Zettel bei:
COLOR............: RGB
BRIGHTNESS...: 2800mcd/6500mcd/1200mcd
VDrop.............: 2.0V/3.2V/3.2V
IMax...............: 20mA
Resistor Value.: 300Ohm/150Ohm/150Ohm

Megaionstorm

Quote
Zur zeit haben alle 560 Ohm. Den Wert hab ich von einem Anfänger Tutorial.


Ich würde es so machen wie es auf dem Zettel steht !

Resistor Value.: 300Ohm/150Ohm/150Ohm

Rot braucht den höchsten Widerstandswert sonst überstrahlt der Rotanteil alles !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Naja, es stand nicht dabei für welche Voltzahl. Deshalb hab ich da nix angepasst.
Werde ich gleich mal ändern. Danke!

Hast Du Antworten auf meine anderen Fragen? Weil irgendwie habe ich das Gefühl. Das dass Ganze irgendwie noch nicht so läuft wie es soll. Gerade das mit den verschlierenden Farben und der Helligkeit kann irgendwie nicht sein.

Megaionstorm

Ich werde mir deinen Code Morgen mal Zeile für Zeile durchlesen !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Okay, danke dir!!!

:)

Megaionstorm

#42
Nov 26, 2010, 08:55 am Last Edit: Nov 26, 2010, 11:43 am by Megaionstorm Reason: 1
Um PWM benutzen zu können musst Du den analogWrite-Befehl benutzen.

http://www.arduino.cc/en/Tutorial/PWM

Gehe ich richtig in der Annahme das alle 8 Tasten Rot und Blau blinken sollen ?

B00000001 stellt die Bits eines Bytes dar also statt int row1 nun byte row1 benutzen.

Code: [Select]
byte row1[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000};

Code: [Select]
void updateLEDs(byte row, byte r, byte g, byte b)
{
 digitalWrite(latch, LOW);                   // Pulls the chips latch low
 shiftOut(data, clock, MSBFIRST, 0);         // Alle Leds aus
 digitalWrite(latch, HIGH);                  // Pulls the latch high displaying the data
 analogWrite(red, r);                        // Ändern der 3 Farbkannäle erst wenn Leds aus
 analogWrite(grn, g);  
 analogWrite(blu, b);
 digitalWrite(latch, LOW);                   // Pulls the chips latch low
 shiftOut(data, clock, MSBFIRST, row); // Festlegung der Led die leuchten soll
 digitalWrite(latch, HIGH);                  // Pulls the latch high displaying the data
}


Code: [Select]
void loop()
{
 for (int Zeit = 0; Zeit < 1000; Zeit += 1)
 {
   for(byte LMReihe = 0; LMReihe < 8; LMReihe += 1)
   {
     if(Zeit < 250)
       updateLEDs(row1[LMReihe], 0, 0, 255); // Blau
     else
       updateLEDs(row1[LMReihe], 255, 0, 0); // Rot
     delay(1);
   }
 }
}
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Radar

Ich habe die Anpassungen gemacht.
Leider flackert es immer noch übelst um das eigentliche LED.
Also jeweils das LED davor und danach leuchten(flackern) ebenfalls blau.

Bei Farbmischungen wie Orange und Cyan flackert so ziemlich alles in irgendwelchen Farben.

Ich habe deine Funktion kopiert und mal analogWrite mit digitalWrite ersetzt und da flackert gar nix. Das verhält sich so wie es sollte.

Megaionstorm

Funktionieren mit digitalWrite auch die Farbmischungen wie Orange oder Pink ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Go Up