MIDI Piano Lighting (8 / 11 schritt)

Schritt 8: Software: Timer und Interrupts


Ich weiß nicht, welche Bilder Posten für die Erklärung der Software, also offensichtlich, wahrscheinlich nur post ein Bild mit einer Katze besser zu. Außerdem steht die volle Arduino Code oben herunterladen. (lbdOrganPWM.ino)

Timer und Interrupts

Um die Hardware PWM nacheinander mit der Ac-Linie auslösen zu nutzen, alles, was wir tun müssen, ist sicherzustellen, dass der Zähler, der verwendet wird, um den PWM-Wert ausgegeben in den Nulldurchgang der Netzspannung AC zurückgesetzt wird. Mit der auslösenden Schaltung erklärt in Schritt 7 legen wir einen Hardware-Interrupt auf diesen Pin an die Zähler zurückzusetzen, wenn es ausgelöst wird.

Jeder Timer wird zu Beginn des Programms, um die Wellenform Generierungsmodus schnell PWM Modus mit ICRn als den obersten Wert initialisiert. Dieser Timermodus ist was mit der Hardware PWM möglich macht.

Da wir 7-Bit-Auflösung der Umlaufsgeschwindigkeit der MIDI-Note haben, wollen wir diese Entschließung für die Glühbirne Intensität ziemlich nah. Ehrlich gesagt, etwas über 16 Stufen ist ziemlich vernachlässigbar, aber da können wir wir könnte genauso gut. Also wenn wir die Vorteiler der Timer auf 1024 (s. 161 Atmega2560 Datenblatt)setzen, dann wir 16 Mhz haben / 1024 für unsere Zeitschaltuhr = 15625 Hz. Unser Ziel-Frequenz unserer gesamten PWM-Wellenform ist 120Hz Halbzyklus der 60 Hz Netzspannung übereinstimmen. Also teilen wir 15626/120 ~ 130 erhalten. Das heißt, wenn wir unsere ICRn Register bis130 festgelegt, erhalten wir eine Frequenz entsprechen die Netzfrequenz mit ~ 130 Schritten. Das ist perfekt, da wir in der MIDI-Velocity 128 Schritte haben!

Nach dem Versuch dieses heraus, gibt es einige Unterschiede in der Netzfrequenz und so landete ich mit dem oberen Wert (ICRn) 122. Dies schien wie ein Safe genug Wert wo würde ich sicherstellen, dass ich den Triac am Null-Kreuz ausschalten würde. Wenn Sie zu weit über die Null-Kreuz-Schwelle gehen, verpassen Sie es, und das Licht nie ausgeschaltet oder gedimmt.

Letzte Sache, über die Timer-Config ist die PWM-Polarität. Denn sobald der Timer auf den Endpunkt wollen wir sicherstellen, den Triac schaltet sich aus (in diesem Fall wir in der Nähe der Zero-Cross sind), wir haben den invertierten Modus der PWM Pin, so verwenden, dass bei den Timer = 0, die Pin ist gering. Das nur heißt, wenn wir einen Geschwindigkeitswert von 100 bekommen, wir wollen wirklich das PWM-Register auf 127-100 festgelegt = 27.

Für den Umgang mit dem Null-Kreuz, hat die Arduino-Bibliothek eine eingebaute Funktion für diese mit der Hardware-Interrupt:

Wo 5 den Interrupt Pin-Nummer 18 auf der Mega, FALLING gibt es wird nur auf die fallende Flanke ausgelöst (1 -> 0, nicht 0 -> 1) von den Interrupt-Pin und ZeroCrossDetect ist die Funktion unten.

Es funktioniert durch die Einstellung alle Leistungsindikatoren, die von bestimmten PWM Pins, die ich gewählt habe, am Kreuz Null Null verwendet. Es setzt auch den Vorteiler und Wellenform Generation-Modus für jeden Timer, der Grund dafür ist, dass der Timer startet auf der AC-Zyklus am Anfang des Programms sicherzustellen, gibt es kein Offset vom Anfang.

			
          

In Verbindung stehende Artikel

Makey Makey elektronische Melodica

Makey Makey elektronische Melodica

Verbinden Sie sich Masse/Erde wenn Makey Makey Tastatur ein wenig den Spaß Weg, dauert wie es oft heißt, dass Sie am Ende mit einem Draht oft abgeschnitten, um Ihr Handgelenk oder in der Hand gehalten. Also, Divya kam die ausgezeichnete Idee, platzie
Arduino Fernbedienung Leuchten mit Universalfernbedienung

Arduino Fernbedienung Leuchten mit Universalfernbedienung

ich habe in home-Automation seit einiger Zeit gesucht, aber noch nicht verpflichtet, es gerade noch vor allem wegen dem Preis. Letztes Jahr (2010) kaufte ich mir diese Fernbedienung Steckdose ein/aus Schalter, so dass ich meine Xmas Baumlichter ein-
Karotte-Klavier (A MaKey MaKey Projekt)

Karotte-Klavier (A MaKey MaKey Projekt)

haben Sie jemals daran gedacht, dass eine Karotte einen guten Sound erstellen kann? Sie können mit Hilfe von einem MaKey MaKey. Aber nur mit ein paar Tasten ist nicht gut genug, werden wir zu bauen, die 18 Tasten und 2 volle Oktave haben kann.Schritt
Empfindliche Piano - 88 Tasten Bluetooth-MIDI. Suche nach Fonds.

Empfindliche Piano - 88 Tasten Bluetooth-MIDI. Suche nach Fonds.

HalloNachdem mit meinem 5 Oktaven Klavier frustriert, versuchen, anspruchsvollere Partituren von 6 Oktaven spielen. Ich beschloss, eine ca. 7 Oktaven MIDI bauen es von Bluetooch auf PC gehört werden kann. Meine Idee ist es, Finanzierung, Dank eurer H
Benutzerdefinierte Arduino MIDI-Controller

Benutzerdefinierte Arduino MIDI-Controller

Hallo und herzlich willkommen auf diese instructable zum Erstellen eines benutzerdefinierten, billigen und einfachen USB-MIDI-Controllers, basierend auf Arduino. Die beste Nachricht: kein Streit mit USB-to-MIDI-Schnittstellen oder Software-Tools wie
Arcade-Kabinett mit Ambient Light Effects

Arcade-Kabinett mit Ambient Light Effects

eine hausgemachte Arcade-Holz Schrank mit kommerziellen Arcade-Qualitätskontrollen und integrierte Realität Umgebungseffekten System.Das Holzgehäuse ist von Home Depot 4 x 8' Sandwich-Platte ausgeschnitten. Der Arcade-Controller ist ein HotRod SE aus
Uber-Light 1000

Uber-Light 1000

Intro:Diese Instructable ist für eine Hochleistungs-Taschenlampe, die verwendet eine CREE XM-L LED und 3 D-Cell Batterien angetrieben.  Die meisten Teile sind mit einem 3D-Drucker hergestellt und aufgrund der Größe/Form, ist es in mehrere Segmente un
Arduino & Visual Basic 6 (Light-Controller)

Arduino & Visual Basic 6 (Light-Controller)

diese instructable ist so etwas wie ein Tutorial für Einsteiger mit VB. Es zeigt, wie erstelle ich eine VB6-Basisprogramm Parser mit Arduino-Schaltung zu interagieren. Grundsätzlich ist die Interaktion in Form von seriellen Kommunikation über den USB
MP3 zu MIDI (nur Windows)

MP3 zu MIDI (nur Windows)

Dies ist eine Demo zum Konvertieren von MP3 in MIDI. ABER einen großen Haftungsausschluss... das funktionierte für mich mit 1 Instrument. Ich live-Klaviermusik in ein Digi-Recorder aufgezeichnet. Anschließend verarbeitet die MP3-Dateien. Dieser Proze
Laser-MIDI-Instrument für Menschen mit körperlicher Behinderung

Laser-MIDI-Instrument für Menschen mit körperlicher Behinderung

Ahoj,Ich möchte mit Ihnen Anweisungen zur Erstellung eine MIDI-Musik-Schnittstelle zu teilen. Die Schnittstelle soll Kopf angebrachten Laser-Pointer gesteuert werden und produzieren breite Palette von musikalischen Tönen und Tonleitern.Sie werden fes
MIDI-Licht-Show

MIDI-Licht-Show

Für eine Klasse beschlossen meine Teamkollegen und ich, ein MIDI-basierten System zu entwickeln, die ein ansprechendes Licht für jede Note gespielt hat.  Zum Beispiel, wenn Sie unsere kleine Setup um eine Tastatur, welche Note Sie betätigen ausstehen
Was ist MIDI?

Was ist MIDI?

MIDI (Musical Instrument Digital Interface) ist ein Protokoll, welches der 1980er die elektronischen Instrumenten und anderen digitalen musikalischen miteinander kommunizieren können.  MIDI selbst macht keinen Ton, es ist nur eine Reihe von Nachricht
Teclado MIDI Super einfach - Super einfache MIDI-Keyboard

Teclado MIDI Super einfach - Super einfache MIDI-Keyboard

Este Tutorial Te Lleva Paso Paso Por la Construcción de un Teclado MIDI de Una Octava, programmierbar über Arduino Gracias ein Su Conector de 6 Kiefern. VAS eine Necesitar:Bauelemente:1 Atmega328p con el Bootloader de Arduino1 Zócalo de 28 patas1 Cri
Schneiden und Wiederverbinden Hue Light strip Plus Segmente

Schneiden und Wiederverbinden Hue Light strip Plus Segmente

Im Shop sie sagten mir, es konnte nicht durchgeführt werden: Ich wollte einen Farbton Light Strip verwenden und in Stücke schneiden, um es nach meinen eigenen Wünschen zu verbinden.In diesem Fall wollte ich zwei TL-Röhren zu ersetzen, die End-of-Life