Elke ingenieur die op een bepaald moment graag aan elektronica sleutelt, zou zijn eigen laboratoriumopstelling willen hebben. Een multimeter, stroomtang, oscilloscoop, LCR-meter, functiegenerator, dual-mode voeding en een autotransformator zijn de absolute minimumuitrusting voor een degelijke laboratoriumopstelling. Hoewel deze allemaal kunnen worden gekocht, kunnen we er ook gemakkelijk zelf een paar bouwen, zoals de functiegenerator en de dual-mode voeding.
In dit artikel zullen we leren hoe we snel en gemakkelijk onze eigen functiegenerator kunnen bouwen met Arduino. Deze functiegenerator, ook wel golfvormgenerator genoemd, kan blokgolf (5V / 0V) produceren met een frequentie van 1Hz tot 2MHz, de frequentie van de golf kan worden geregeld met een knop en de duty-cycle is hard gecodeerd tot 50%, maar dat is gemakkelijk te veranderen ook in het programma. Afgezien daarvan kan de generator ook sinds golf produceren met frequentieregeling. Houd er rekening mee dat deze generator niet van industriële kwaliteit is en niet voor serieuze tests kan worden gebruikt. Maar verder komt het goed van pas bij alle hobbyprojecten en hoeft u niet binnen weken te wachten op de verzending. Wat is er ook leuker dan het gebruik van een apparaat dat we zelf hebben gebouwd.
Vereiste materialen
- Arduino Nano
- 16 * 2 Alfanumeriek LCD-scherm
- Roterende encoder
- Weerstand (5,6 K, 10 K)
- Condensator (0.1uF)
- Perf board, Bergstik
- Soldeerkit
Schakelschema
Het volledige schakelschema van deze Arduino-functiegenerator wordt hieronder weergegeven. Zoals je kunt zien, hebben we een Arduino Nano die fungeert als het brein van ons project en een 16x2 LCD-scherm om de waarde van de frequentie weer te geven die momenteel wordt gegenereerd. We hebben ook een roterende encoder die ons zal helpen om de frequentie in te stellen.
De complete set-up wordt gevoed door de USB-poort van de Arduino zelf. De verbindingen die ik eerder heb gebruikt, bleken niet te werken vanwege een aantal redenen die we later in dit artikel zullen bespreken. Daarom moest ik de bedrading een beetje verpesten door de volgorde van de pinnen te veranderen. Hoe dan ook, u zult dergelijke problemen niet hebben, want het is allemaal opgelost, volg gewoon het circuit zorgvuldig om te weten welke pin op wat is aangesloten. U kunt ook de onderstaande tabel raadplegen om uw verbindingen te verifiëren.
Arduino-pin | Verbonden met |
D14 | Verbonden met RS of LCD |
D15 | Verbonden met RN van LCD |
D4 | Verbonden met D4 van LCD |
D3 | Verbonden met D5 van LCD |
D6 | Verbonden met D6 van LCD |
D7 | Verbonden met D7 van LCD |
D10 | Maak verbinding met Rotary Encoder 2 |
D11 | Verbinden met Rotary Encoder 3 |
D12 | Verbinden met Rotary Encoder 4 |
D9 | Voert een blokgolf uit |
D2 | Maak verbinding met D9 van Arduino |
D5 | Uitgang SPWM vervolgens omgezet in sinus |
Het circuit is vrij eenvoudig; we produceren een blokgolf op pin D9 die als zodanig kan worden gebruikt, de frequentie van deze blokgolf wordt geregeld door de roterende encoder. Om vervolgens een sinusgolf te krijgen, produceren we een SPWM-signaal op pin D5, de frequentie hiervan moet gerelateerd zijn aan de PWM-frequentie, dus we leveren dit PWM-signaal op pin D2 om als een onderbreking te werken en gebruiken vervolgens de ISR om de frequentie van de sinds golf.
Je kunt de schakeling op een breadboard bouwen of er zelfs een printje voor krijgen. Maar ik besloot het op een Perf-bord te solderen om het werk snel gedaan te krijgen en het betrouwbaar te maken voor langdurig gebruik. Mijn bord ziet er zo uit als alle verbindingen zijn gemaakt.
Als je het wilt weten