- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 79

Thema: RGB LED Matrix - Arduino

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #28
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Entschuldigung das war etwas unkontrolliert aus dem Kopf heraus geschrieben XD

    Der Code wäre in der tat unheimlich simpel.

    1 ATTiny mit
    1 Timer mit einer Überlaufzeit 1/800kHZ , 2 Compare Outputs als Fast PWM
    1ter PWM Output auf 50% und invertiert (der Pin simuliert unsere SCLK):

    Immer wenn wir einen Überlauf vom Timer haben, wird die SCLK von der PWM Logik auf "low" gesetzt

    Sobald der Compare Matchwert bei 50% Duty Cycle erreicht wird, wird SCLK auf "high" gesetzt und gleichzeitig ein Interrupt ausgeführt, welcher das Compare Register des 2ten PWM Output mit dem Timing für das Bit am MISO Eingang programmiert

    Kurz vor dem Timer Überlauf wird dann der neue PWM Wert für den 2ten PWM Ausgang übernommen

    Nach dem Update folgt der Überlauf und das Spiel geht von vorne los, bis alle LEDs mit Bits versorgt wurden, dann wird der Chipselect abgeschaltet und eine Pause gemacht damit die LEDs intern updaten.

    Der Chipselect wird wieder eingeschalten, das erste Bit wird per Software eingelesen und der Timer neu gestartet.


    Zum zählen der LEDs werden auf Knopfdruck einfach nur Nullen über den PWM geschoben und die Bits gezählt, bis von der letzen LED das erste Bit zurück kommt.

    Leider blockieren in meinem Hirn gerade alle Programmierkenntnisse, vll. kann ich morgen mal einen brauchbaren Fetzen Code präsentieren
    Code:
    TCCR0A = \
    (COM0A0 | COM0A1) | \ //Compare Output A low on Overrun/BOTTOM, high on Match (SCLK)
    (COM0B0) | \ //Compare B high on Overrun/BOTTOM, low on Match (WS2812 PWM)
    (WGM14); //WAveForm Mode 14: Fast PWM Count to TOP read from ICR0
    
    
    ISR(TIM0_COMPA_vect)
    {
       if(PINB & PINB2){
          TCCR0B = LONG_PULSE;
       }
       else
       {
          TCCR0B = SHORT_PULSE;
       }   
    }
    jetzt nur ganz grob, ohne Timer Werte für irgendwas
    PortB
    Pin2 ist MISO
    Pin 1 (Compare B) der PWM
    Pin 0 (Compare A) ist SCLK
    Geändert von Ceos (13.07.2016 um 15:21 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 07.11.2015, 01:21
  2. Arduino LED Matrix
    Von Martorinho im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 11.01.2015, 21:21
  3. Arduino Mega Matrix
    Von oel im Forum Arduino -Plattform
    Antworten: 16
    Letzter Beitrag: 04.10.2014, 16:11
  4. 8X8 Matrix mit Arduino zum duchlaufen bringen
    Von PatrickHH im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 12.07.2014, 07:36
  5. LED Matrix mit Arduino ansteuern?
    Von robots4-ever im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.03.2012, 07:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen