In dit project gaan we een Clapper-circuit maken met behulp van het concept van ADC (Analog to Digital Conversion) in ARDUINO UNO. We gaan een MIC en Uno gebruiken om het geluid te voelen en een reactie te activeren. Deze Clap ON Clap OFF-schakelaar zet in feite het apparaat AAN of UIT, door het klapgeluid als schakelaar te gebruiken. We hebben eerder Clap-schakelaar en Clap ON Clap OFF-schakelaar gebouwd met behulp van 555 Timer IC.
Bij het klappen komt er een pieksignaal op de MIC dat veel hoger is dan normaal, dit signaal wordt via een hoogdoorlaatfilter naar de versterker gestuurd. Dit versterkte spanningssignaal wordt naar ADC gestuurd, die deze hoge spanning omzet in een getal. Er zal dus een piek zijn in de ADC-lezing van de UNO. Bij deze piekdetectie schakelen we bij elke klap een LED op het bord. Dit project wordt hieronder in detail toegelicht.
MIC of microfoon is een geluidsdetecterende transducer, die in feite geluidsenergie omzet in elektrische energie, dus met deze sensor hebben we geluid als veranderende spanning. Meestal nemen we geluid op of voelen we geluid via dit apparaat. Deze transducer wordt gebruikt in alle mobiele telefoons en laptops. Een typische MIC ziet eruit als,
De polariteit van de condensatormicrofoon bepalen:
MIC heeft twee aansluitingen, de ene is positief en de andere is negatief. De polariteit van de microfoon kan worden gevonden met behulp van een multimeter. Neem de positieve sonde van Multi-Meter (zet de meter in DIODETEST-modus) en sluit deze aan op de ene aansluiting van MIC en de negatieve sonde op de andere aansluiting van MIC. Als u de aflezingen op het scherm krijgt, bevindt de positieve pool (MIC) zich op de negatieve pool van de multimeter. Of u kunt de aansluitingen eenvoudig vinden door ernaar te kijken, de negatieve aansluiting heeft twee of drie soldeerlijnen, verbonden met de metalen behuizing van de microfoon. Deze connectiviteit, van de negatieve pool tot de metalen behuizing, kan ook worden getest met een continuïteitstester om de negatieve pool te achterhalen.
Vereiste componenten:
Hardware:
ARDUINO UNO, voeding (5v), een condensatormicrofoon (hierboven uitgelegd)
2N3904 NPN-transistor,
100nF condensatoren (2 stuks), een 100uF condensator,
1K Ω-weerstand, 1MΩ-weerstand, 15KΩ-weerstand (2 stuks), een LED,
En Breadboard & Verbindingsdraden.
Software: Arduino IDE - Arduino nightly.
Schakelschema en werkbeschrijving:
Het schakelschema van het kleppencircuit wordt getoond in de onderstaande afbeelding:
We hebben de werking in vier delen onderverdeeld, namelijk: Filtratie, Versterking, Analoog-digitaal conversie en programmeren om de LED om te schakelen
Elke keer dat er geluid is, pikt de MIC het op en zet het om in spanning, lineair met de grootte van het geluid. Dus voor een hoger geluid hebben we een hogere waarde en voor een lager geluid hebben we een lagere waarde. Deze waarde wordt eerst naar het hoogdoorlaatfilter gevoerd voor filtratie. Vervolgens wordt deze gefilterde waarde ter versterking aan de transistor toegevoerd en levert de transistor de versterkte uitgang aan de collector. Dit collectorsignaal wordt naar het ADC0-kanaal van de UNO gevoerd voor analoog naar digitaal conversie. En ten slotte is Arduino geprogrammeerd om de LED, verbonden op PIN 7 van PORTD, te schakelen, elke keer dat ADC-kanaal A0 een bepaald niveau overschrijdt.
1. Filtratie:
Allereerst zullen we het kort hebben over het RC High Pass Filter, dat is gebruikt om de geluiden weg te filteren. Het is eenvoudig te ontwerpen en bestaat uit een enkele weerstand en een enkele condensator. Voor dit circuit hebben we niet veel details nodig, dus we zullen het simpel houden. Een hoogdoorlaatfilter laat signalen met een hoge frequentie van ingang naar uitgang door, met andere woorden, het ingangssignaal verschijnt aan de uitgang als de frequentie van het signaal hoger is dan de door het filter voorgeschreven frequentie. Voorlopig hoeven we ons geen zorgen te maken over deze waarden, omdat we hier geen audioversterker ontwerpen. In het circuit is een hoogdoorlaatfilter weergegeven.
Na dit filter wordt het spanningssignaal ter versterking naar de transistor gevoerd.
2. Versterking:
De spanning van MIC is erg laag en kan niet naar UNO worden gevoerd voor ADC (Analog to Digital Conversion), daarom ontwerpen we hiervoor een eenvoudige versterker met een transistor. Hier hebben we een enkele transistorversterker ontworpen voor het versterken van de MIC-spanningen. Dit versterkte spanningssignaal wordt verder naar het ADC0-kanaal van Arduino gestuurd.
3. Analoog naar digitaal conversie:
ARDUINO heeft 6 ADC-kanalen. Hiervan kunnen ze allemaal worden gebruikt als ingangen voor analoge spanning. De UNO ADC heeft een resolutie van 10 bits (dus de gehele waarden van (0- (2 ^ 10) 1023)). Dit betekent dat het ingangsspanningen tussen 0 en 5 volt zal omzetten in gehele waarden tussen 0 en 1023. Dus voor elke (5/1024 = 4,9 mV) per eenheid.
Om de UNO nu een analoog signaal in een digitaal signaal te laten omzetten, moeten we het ADC-kanaal van ARDUINO UNO gebruiken met behulp van onderstaande functies:
1. analogRead (pin); 2. analogReference ();
UNO ADC-kanalen hebben een standaard referentiewaarde van 5V. Dit betekent dat we een maximale ingangsspanning van 5V kunnen geven voor ADC-conversie op elk ingangskanaal. Omdat sommige sensoren spanningen leveren van 0-2,5V, dus met een 5V-referentie, krijgen we minder nauwkeurigheid, dus hebben we een instructie waarmee we deze referentiewaarde kunnen wijzigen. Dus voor het wijzigen van de referentiewaarde hebben we "analogReference ();"
In ons circuit hebben we deze referentiespanning op de standaard gelaten, zodat we de waarde van ADC-kanaal 0 kunnen aflezen door direct de functie "analogRead (pin);" aan te roepen, hier staat "pin" voor pin waar we het analoge signaal hebben aangesloten, in dit geval zou het "A0" zijn. De waarde van ADC kan in een geheel getal worden omgezet als “int sensorValue = analogRead (A0); ”, Door deze instructie wordt de waarde van ADC opgeslagen in de integer“ sensorValue ”. Nu hebben we de transistorwaarde in digitale vorm, in het geheugen van UNO.
4. Programmeer Arduino om de LED op elke Clap te schakelen:
Onder normale gevallen levert de MIC normale signalen en dus hebben we normale digitale waarden in de UNO, maar bij het klappen daar wordt een piek geleverd door de MIC, hiermee hebben we een digitale piekwaarde in de UNO, we kunnen de UNO programmeren om te schakelen een LED AAN en UIT wanneer er een piek is. Dus bij de eerste klap gaat de LED AAN en blijft AAN. Bij de tweede klap gaat de LED UIT en blijft UIT tot de volgende klap. Hiermee hebben we het kleppencircuit. Controleer de onderstaande programmacode.