Inhoudsopgave:
Video: ATMega1284 Quad Opamp-effectenbox - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Het Stomp Shield voor Arduino van Open Music Labs gebruikt een Arduino Uno en vier opamps als gitaareffectenbox. Net als bij de vorige instructable die laat zien hoe je de Electrosmash Uno Pedalshield kunt porten, heb ik ook de Open Music Labs Guitar Effects-box geporteerd naar de ATMega1284P die acht keer meer RAM heeft dan de Uno (16kB versus 2kB).
Vergeleken met de vorige instructable met behulp van de ATMega1284-effecteneenheid, heeft deze box de volgende voordelen:
(1) Het heeft een mixer die het onbewerkte signaal mengt met het door de MCU verwerkte signaal - dat betekent dat de kwaliteit van het signaal aan de uitgang veel verbeterd is.
(2) Het verwerkt 16-bits uitvoer voor de twee PWM-uitgangen, terwijl de vorige effectenbox 8 bits gebruikt voor sommige voorbeelden, zoals het vertragingseffect.
(3) Het heeft een feedback-potentiometer die kan worden gebruikt om de effecten te verbeteren - vooral bij het flanger/phaser-effect draagt ongeveer 30 procent feedback aanzienlijk bij aan de kwaliteit van het effect.
(4) De frequentie van het laagdoorlaatfilter is 10 kHz in vergelijking met de 5 kHz van de vorige effectenbox - dit betekent dat het signaal aan de uitgang aanzienlijk "knisperiger" klinkt.
(5) Het gebruikt een andere interrupt-trigger die het aanzienlijk lagere ruisniveau van deze effectenbox kan verklaren.
Ik begon met breadboarden op het op Uno gebaseerde Open Music Labs Stompbox Shield en ik was zo onder de indruk van de prestaties van dit vier OpAmp-signaalverwerkingscircuit (zelfs bij gebruik van een Arduino Uno), dat ik het naar stripboard heb overgebracht voor meer permanent gebruik.
Dezelfde vier opamp-circuits en DSP-code werden vervolgens geport naar de ATMega1284 - nogmaals, verrassend afgezien van de niet-essentiële veranderingen zoals het toewijzen van de schakelaars en LED aan een andere poort en het toewijzen van 7.000 kilowoorden in plaats van 1.000 kilo-woord RAM voor de vertragingsbuffer, hoefden er slechts twee essentiële wijzigingen in de broncode te worden aangebracht, namelijk het wijzigen van ADC0 van ADC2 naar ADC2 en het wijzigen van de Timer1/PWM OC1A- en OC1B-uitgangen van poort B op de Uno naar poort D (PD5 en PD4) op de ATMega1284.
Zoals eerder opgemerkt, hoewel ontwikkelborden voor de ATMega1284 beschikbaar zijn (Github: MCUdude MightyCore), is het een gemakkelijke oefening om de kale (bootloader-vrije) chip te kopen (koop de PDIP-versie die breadboard- en stripboard-vriendelijk is), laad vervolgens de Mark Pendrith-vork van de Maniacbug Mighty-1284p Core Optiboot-bootloader of de MCUdude Mightycore, door een Uno als ISP-programmeur te gebruiken, en laad vervolgens schetsen opnieuw via de Uno naar de AtMega1284. Details en links voor dit proces worden gegeven in bijlage 1 van de vorige instructable.
Stap 1: Onderdelenlijst
ATMega1284P (PDIP 40-pins pakketversie) Arduino Uno R3 (gebruikt als ISP om de bootloader en schetsen over te brengen naar de ATMega1284) OpAmp MCP6004 quad OpAmp (of vergelijkbare RRIO (Rail to Rail Input en Output) OpAmp zoals TLC2274) 1 x Rode LED 1 x 16 MHz kristal 2 x 27 pF condensatoren 1 x 3n9 condensator 1 x 1n2 condensator 1 x 820pF condensator 2 x 120 pF condensator 4 x 100n condensatoren 3 x 10uF 16v elektrolytische condensatoren 4 x 75k weerstanden 4 x 3k9 weerstanden 1 x 36k weerstand 1 x 24k weerstand 2 x 1M weerstanden 1 x 470 ohm weerstand 3 x 1k weerstanden 2 x 50k Potentiometers (lineair) 1 x 10k Potentiometer (lineair) 3 x drukknopschakelaars (een daarvan moet worden vervangen door een 3-polige 2- manier voetschakelaar als de effectenbox gebruikt gaat worden voor live werk)
Stap 2: constructie
Circuit 1 toont het gebruikte circuit en Stripboard 1 is de fysieke representatie (Fritzing 1) met Foto 1 het eigenlijke breadboard-circuit in werking. Er zijn drie kleine circuitwijzigingen doorgevoerd: de gedeelde opamp-bias op half-voedingsniveau wordt gebruikt voor drie OpAmp-trappen, de parallelle weerstanden van 3 x 75k en 2 x 75k ohm werden vervangen door enkele weerstanden van 24k en 36k en de feedbackcondensatoren werden verhoogd tot 120pF voor deze twee OpAmp-trappen. De draaiknop werd vervangen door twee drukknoppen die worden gebruikt om effectparameters te verhogen of te verlagen. De driedraads verbinding met de ATMega1284 wordt op het circuit weergegeven als ADC naar pin 40, PWMlow vanaf pin 19 en PWMhigh vanaf pin 18. De drie drukknoppen zijn aangesloten op pin 1, 36 en 35 en aan het andere uiteinde geaard. Een LED is via een 470-weerstand aangesloten op pin 2.
OpAmp-ingangs- en uitgangstrappen: Het is belangrijk dat een RRO of bij voorkeur een RRIO OpAmp wordt gebruikt vanwege de grote spanningsschommeling die vereist is bij de OpAmp-uitgang naar de ADC van de ATMega1284. De onderdelenlijst bevat een aantal alternatieve OpAmp-types. De 50k-potentiometer wordt gebruikt om de ingangsversterking aan te passen tot een niveau net onder elke vervorming, en kan ook worden gebruikt om de ingangsgevoeligheid aan te passen voor een andere ingangsbron dan een gitaar, zoals een muziekspeler. De tweede OpAmp-ingangstrap en de eerste opamp-uitgangstrap hebben een RC-filter van hogere orde om de digitaal gegenereerde MCU-ruis uit de audiostream te verwijderen.
ADC Stage: De ADC is geconfigureerd om te lezen via een timer-interrupt. Een 100nF-condensator moet worden aangesloten tussen de AREF-pin van de ATMega1284 en aarde om ruis te verminderen, aangezien een interne Vcc-bron wordt gebruikt als referentiespanning - sluit de AREF-pin NIET rechtstreeks aan op +5 volt!
DAC PWM Stage: Aangezien de ATMega1284 geen eigen DAC heeft, worden de audio-uitgangsgolfvormen gegenereerd met behulp van een pulsbreedtemodulatie van een RC-filter. De twee PWM-uitgangen op PD4 en PD5 zijn ingesteld als de hoge en lage bytes van de audio-uitgang en gemengd met de twee weerstanden (3k9 en 1M) in een verhouding van 1:256 (lage byte en hoge byte) - die de audio-uitgang genereert.
Stap 3: Software
De software is gebaseerd op de Stompbox-pedaalschetsen van Open Music Labs, en er zijn twee voorbeelden bijgevoegd, namelijk een flanger/phaser-effect en een delay-effect. Nogmaals, net als bij de vorige instructable, waren de schakelaars en LED verplaatst naar andere poorten weg van die gebruikt door de ISP-programmeur (SCLK, MISO, MOSI en Reset).
De vertragingsbuffer is vergroot van 1000 woorden naar 7000 woorden en PortD is ingesteld als de uitgang voor de twee PWM-signalen. Zelfs met de toename van de vertragingsbuffer gebruikt de schets nog steeds slechts ongeveer 75% van de beschikbare ATMega1284 16 kB RAM.
Andere voorbeelden, zoals de tremolo van de Open Music Labs-website voor de pedalSHIELD Uno, kunnen worden aangepast voor gebruik door de Mega1284 door het include-headerbestand Stompshield.h te wijzigen:
(1) Wijzig DDRB |= 0x06; // stel pwm-uitgangen (pinnen 9, 10) in op outputtoDDRD |= 0x30;
en
ADMUX = 0x62; // links aanpassen, adc2, interne vcc als verwijzing naar ADMUX = 0x60; // links aanpassen, adc0, interne vcc als referentie // Deze wijzigingen zijn de ENIGE essentiële codewijzigingen // bij het overzetten van de Uno naar de ATMega1284
Voor de twee voorbeelden die hier zijn opgenomen, is het header-bestand opgenomen in de schets - d.w.z. er hoeven geen header-bestanden te worden gebruikt
Drukknoppen 1 en 2 worden in sommige schetsen gebruikt om een effect te vergroten of te verkleinen. In het vertragingsvoorbeeld verhoogt of verlaagt het de vertragingstijd. Wanneer de schets voor het eerst wordt geladen, begint deze met het maximale vertragingseffect. Probeer voor de flanger-phaser-schets de feedbackcontrole te vergroten voor een verbeterd effect.
Om de vertraging in een echo-effect te veranderen (herhaling toevoegen), verander de regel:
buffer [locatie] = invoer; // nieuw monster opslaan
tot
buffer [locatie] = (invoer + buffer [locatie])>>1; // Gebruik dit voor echo-effect
De voetschakelaar moet een driepolige wisselschakelaar zijn
Stap 4: Koppelingen
Electrosmash
Open Muzieklabs Muziek
ATMega-effectpedaal
Aanbevolen:
Kid's quad hacken in een zelfrijdend, lijnvolgend en obstakeldetecterend voertuig: 4 stappen
Kid's Quad Hacken in een zelfrijdend, lijnvolgend en obstakeldetecterend voertuig. In de Instructable van vandaag zullen we een 1000 Watt (ja, ik weet dat het veel is!) Elektrische kinderquad veranderen in een zelfrijdend, lijnvolgend en obstakel vermijdend voertuig! Demovideo:https://youtu.be/bVIsolkEP1kVoor dit project hebben we de volgende materialen nodig
[DIY] Spider Robot (Quad Robot, Quadruped): 14 stappen (met afbeeldingen)
[DIY] Spider Robot (Quad Robot, Quadruped): Als je extra ondersteuning van mij nodig hebt, is het beter dat je een geschikte donatie aan mij doet: http://paypal.me/RegisHsu2019-10-10 update:De nieuwe compiler veroorzaakt het berekeningsprobleem met zwevende getallen. Ik heb de code al aangepast. 2017-03-26
OPAMP (741 soorten) EN 555 TESTER: 3 stappen:
OPAMP (741 typen) EN 555-TESTER: OPAMPS en 555-timers zijn een van de meest gebruikte elektronische IC's die we regelmatig gebruiken, dus we moeten ervoor zorgen dat IC's correct werken of defect zijn. We moeten dus een tester maken die ons helpt te testen of die IC's werken
Discrete opamp: 5 stappen
Discrete Op Amp: Ik was eens aan het googelen naar discrete opamp … Er zijn veel circuits op het net. Van standaard API2520 tot wie weet wat nog meer. OKE. Ik heb er een paar gecontroleerd met een simulator en merkte op dat de meeste niet zullen werken! Of zou voorwaardelijk kunnen werken. ik zal omi
Quad Speaker Synthesizer: 10 stappen (met afbeeldingen)
Quad Speaker Synthesizer: Hier is een eenvoudige synthesizer met:22 toetsenvolumeregelingtoonveranderingverschillende geluidseffectenspan (voor de luidsprekers)vier luidsprekerslicht (voor de luidsprekers)Iedereen kan het bouwen, behalve de elektronische componenten, al het andere is thuis te vinden