Ik ben bezig met een projectje.
Wat ik wil doen is een audio input aansluiten op een adc kanaal van een avr, bijvoorbeeld een mp3 speler ofzo.
Maar ik ga ervan uit dat gewoon aansluiten niet echt veel gaat doen, dus vraag ik me af hoe ik dit moet doen?
Wat ik in gedachte had was dat het op adc komt zodat ik het kan gebruiken om een uitgang (bijvoorbeeld led) te pwm'en.
Iemand een idee?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Wil je een audio-uitgang aansluiten op de ADC-ingang van een AVR, om een LED'je te PWM'men op het ritme van de muziek? Dan zal je op z'n minst een gelijkrichter tussen audio-bron en AVR moeten plaatsen.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Gebruik dan een PWM-mode, waarbij je TOP kan instellen door een waarde naar een register te schrijven, en de puls-pauze verhouding op dezelfde manier kan instellen.
Voorbeeld voor een ATmega88:
// Initialiseer Timer1B als PWM-bron
void PWMB_init(void)
{
DDRD |= (1 << PD4); // PD4 (OC1B) = PWM-uitgang
TCCR1A |= _BV(COM1B1) | _BV(WGM11); // Clear OC1B on compare match, set on TOP
TCCR1B |= _BV(WGM13) | _BV(WGM12) | _BV(CS10); // Fast PWM, TOP = ICR1
OCR1B = 512; // PWM duty cycle = 50%
ICR1 = 1024; // PWM maxcnt = ICR1
}
Al wat je nu nog moet doen, is telkenmale de ADC inlezen en de bekomen waarde in OCR1B plaatsen.
Nee, sorry ik moet de aansluiting weten , sommige mensen zeggen dat ik een opamp moet gebruiken enzo, maar ik weet het niet.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Als het audio-signaal klein is --laten we zeggen 1V topspanning-- kan je het met een opamp versterken en vervolgens gelijkrichten. Maar je kan de opamp ook schakelen als versterker en actieve gelijkrichter in één. Zo, bv:
Anderzijds kan je hetzelfde signaal gelijkrichten zonder versterking, en een AVR kiezen die een ADC-referentiespanning van 1.1V ter beschikking heeft.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
De uitgangsspanning v/d LM386 zal --als er geen audio-signaal aan de ingang aanwezig is-- zowat de halve voedingsspanning bedragen. 2.5V, dus. Niet echt handig...
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
De uitgangsspanning v/d LM386 zal zich om die 2.5V heen-en-weer bewegen. Daar heb je dus weinig aan.
Anoniem
Op 14 april 2008 09:43:14 schreef pros:
De uitgangsspanning v/d LM386 zal zich om die 2.5V heen-en-weer bewegen. Daar heb je dus weinig aan.
Waarom zou dat niet kunnen? Je moet alleen elke keer als je de adc inleest de ingelezen waarde - de digitale waarde van 2.5v doen en opslaan als signed int.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Even iets duidelijk maken: als je het signaal van jouw schema gaat gelijkrichten, bekom je een nuttige spanning tussen 2.5V en 5V. Lager dan 2.5V kan de gelijkgerichte spanning wel worden, maar 1V wijst op hetzelfde ingangsvolume als 4V.
Dat levert dus geen winst op - integendeel, als je een passieve gelijkrichter gebruikt (louter dioden), wordt de nauwkeurigheid juist kleiner omdat je over elke diode 0.6 ... 0.7V "verliest".
Wat is dan de beste manier om een zo simpel mogelijk getal te krijgen in een avr dat gaat van 0 tot 100 om het zo te zeggen.
Ik wil dit zo simpel mogelijk houden met zo min mogelijk code omdat er al wat code in zal zitten.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Audio -> actieve gelijkrichter met versterking -> ADC -> OCR1B.
Het schema heb ik al gegeven - je kan in de plaats van R4 een instelpot van 50k of meer plaatsen, om 5V te bekomen bij het maximale ingangssignaal. De initialisatiecode heb je ook. Al wat je nog moet doen, is om de zoveel tijd de ADC inlezen en het resultaat daarvan in OCR1B plaatsen (of in een vergelijkbaar register als je een andere AVR of een ander PWM-kanaal kiest).
Sorry voor de oude topic kick, maar vraag gaat over de schakeling die hier genoemd werd.
Op 13 april 2008 21:33:50 schreef pros:
Als het audio-signaal klein is --laten we zeggen 1V topspanning-- kan je het met een opamp versterken en vervolgens gelijkrichten. Maar je kan de opamp ook schakelen als versterker en actieve gelijkrichter in één. Zo, bv:Anderzijds kan je hetzelfde signaal gelijkrichten zonder versterking, en een AVR kiezen die een ADC-referentiespanning van 1.1V ter beschikking heeft.
Ik wil voor een project ook een audio signaal gebruiken (line-out van pc). Is deze schakeling daar ook geschikt voor?
Zo ja, dan deel twee van de vraag.
Wat voor een type diode is D1 (schottky diode?) en welk type is daar geschikt voor (een bestelnr van Conrad zou helemaal mooi zijn).
Het idee was eerst de schakeling van ELM-chan te bouwen, maar Conrad heeft geen max293.
Tommyboy
Zo goed als het vroeger was, is het nooit geweest.
Oke, dom van me. Maar zo laag gaan de zenerdiodes bij Conrad ook niet met de spanning. Of zoek ik nu echt zo verkeerd?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Je kan ook twee stuks 1N4148 in serie plaatsen, maar dan met de kathode aan GND.
[Aanvulling]
En parallel daaraan nog een enkele 1N4148 met de anode aan GND.
Dit kan ook:
----xxxx------------
| |
| |
--- ===
RODE \ / ^ 1N4148
LED V / \
=== ---
| |
| |
---------------------
[Bericht gewijzigd door pros op (46%)]
Maar wat wil je nu eigenlijk gaan maken?
Als je een audio signaal inleest van bijv 1kHz, dan geeft de ADC max ongeveer 20 samples voor elke periode. Als je dat dan gebruikt om een PWM aan te sturen dan kun je daar een luidspreker op aansluiten, en dan krijg je het oorspronkelijke signaal weer op terug (wel met wat vervorming).
Je kunt ook wel een led aansluiten, maar die gaat dan op 1 kHz staan knipperen. Lijkt me niet erg zinvol.
Maar de schakeling van PROS geeft een laagfrequent signaal af die gelijkloopt met het volume van het audio ingangssignaal. Dan kan een led wel zinvol zijn, want de helderheid van de led loopt dan gelijk met het volume van de audio.
Op 26 juli 2012 23:46:01 schreef deKees:
Maar wat wil je nu eigenlijk gaan maken?
Op 26 juli 2012 10:14:59 schreef RazeR:
Het idee was eerst de schakeling van ELM-chan te bouwen.
Ik wil het audio signaal door het ADC halen en via de functies van FFT library wat LEDs laten knipperen op de muziek. En stukje spectrum analyzer dus eigenlijk.
Het zou handig zijn als dit redelijk onafhankelijk is van het volume wat ik instel.
Maar als ik het goed begrijp is de schakeling van Pros al een versterker en gelijkrichter in één, dus zou geen probleem moeten geven?
[Bericht gewijzigd door RazeR op (18%)]