Inhoudsopgave:

Arduino-oscilloscoop: waarom het werkt: 4 stappen
Arduino-oscilloscoop: waarom het werkt: 4 stappen

Video: Arduino-oscilloscoop: waarom het werkt: 4 stappen

Video: Arduino-oscilloscoop: waarom het werkt: 4 stappen
Video: 🇳🇱 FUNCTIES EN SCOPES - Arduino theorie #3 2024, November
Anonim
Image
Image

Een paar jaar geleden begon ik met elektronica en bestudeerde ik de basisprincipes. Ik ontdekte dat een scoop de tool is die je bij bijna alles helpt. Nu ik dat begreep, begon ik de basisprincipes van de werking van een scoop te leren, na een paar maanden dacht ik bij mezelf, nou, een oscilloscoop is implementeerbaar op een microcontroller als ik mezelf in een leerpunt van perspectief. Waarom een microcontroller, want hij had alle dingen die nodig waren om er een te bouwen, zoals een ADC om een signaal op te nemen (maar zonder controle-frontend), hij had GPIO-poorten die voor veel doeleinden konden worden gebruikt, heeft een CPU, zij het zachtmoedig! (Ik dacht aan een Arduino).

Ik begon met onderzoek naar arduino-oscilloscopen die goed en zeer goed waren, maar ik had graag een eenvoudigere code gezien die gemakkelijk aan te passen en te begrijpen is. Net toen ik aan het zoeken was, kwam ik de basis van de huidige code tegen op de Arduino-forums van 'vaupell'. Ik begon het aan te passen en er commentaar op te geven en de dingen op te schonen om het leesbaarder te maken. De originele code is van Noriaki Mitsunaga.

Laten we dus eens kijken hoe we de hardware en software moeten instellen en gebruiken.

Ik moet nog beginnen met het schrijven van de uitleg voor de code op de GitHub-wiki. als je wat tijd over hebt, kijk dan eens rond.

! - Dit project beschrijft niet hoe je een oscilloscoop maakt, maar laat je zien hoe je een eenvoudige microcontroller kunt gebruiken om het gedrag van een echte oscilloscoop na te bootsen om te begrijpen hoe een oscilloscoop werkt.

Stap 1: Ken uw hardware

Uw hardware kennen
Uw hardware kennen

Het doel van dit project is om inzicht te geven in de werking van een scope. Om die reden heb ik het eenvoudigste en populaire hardwareplatform arduino gekozen. De code kan worden uitgevoerd op een arduino uno of een arduino mega, waarbij de laatste de voorkeur heeft omdat deze meer gratis en toegankelijke pinnen heeft wanneer er een display op is geïnstalleerd.

Dus in dit project zal ik een arduino mega (2560) gebruiken.

Het volgende onderdeel is het beeldscherm. Deze opstelling maakt gebruik van een arduino TFT 2,5 inch aanraakscherm (de driver-id is0x9341). Dit geeft de mogelijkheid om meerdere kanalen op het scherm weer te geven die van elkaar te onderscheiden zijn.

Dat is alles wat er is. Dit bereik is echter zeer beperkt in zijn mogelijkheden, dus duw het niet tot het uiterste. Enkele specifieke zaken waar u rekening mee moet houden zijn;

de arduino ADC kan spanningen boven 5 volt niet goed aan en evenmin kan hij spanningen onder 0 volt goed aan. Waarom, omdat het zo is ontworpen.

het gelijktijdig verkrijgen van gegevens van meerdere kanalen vermindert de effectieve bemonsteringssnelheid van een enkel kanaal omdat de monsters afwisselend van de meerdere kanalen worden genomen.

de bemonsteringssnelheid is erg laag (voor een acquisitie van een enkel kanaal kan het oplopen tot 10 kSps, maar met twee kanalen daalt het tot 5 kSps/kanaal). Dit kan worden verholpen door de ADC-referentiefrequentie (de prescalaire instelling) op een lagere waarde in te stellen. Dit heeft echter zijn eigen problemen van slechte resolutie.

Vergeet ook niet een computer om de code naar de arduino te uploaden.

Stap 2: Instellen

Opstelling
Opstelling
Opstelling
Opstelling

De opzet is heel eenvoudig;

Bevestig het schermschild aan de Arduino Mega zodat de stroompinnen op beide kaarten op één lijn liggen.

sluit het bord met een USB-kabel aan op de computer.

Open de arduino IDE en voeg de TFT-displaybibliotheek SPFD5408 (0x9341) toe, als deze nog niet aanwezig is.

Upload nu het codebestand van github naar de Arduino.

GitHub - Arduino-oscilloscoop

Daar heb je het!. U kunt aan de code sleutelen door kanalen 8 (ch0) en 15 (ch1) AAN of UIT te zetten in het gedeelte voor het instellen van het codekanaal. U kunt de tariefvariabele wijzigen in een waarde uit de tariefarray om de tijd/verdeling van het bereik in te stellen. U kunt het triggertype instellen op automatisch of enkelvoudig in het triggergedeelte van de code.

De volgende stap toont een ADXL335 3-assige versnellingsmeter die wordt aangedreven en gelezen door de Arduino-oscilloscoop, zoals te zien is in de eerste video.

Stap 3: Voorbeeld - ADXL335 De versnellingsmeter aflezen

Voorbeeld - ADXL335 De versnellingsmeter aflezen
Voorbeeld - ADXL335 De versnellingsmeter aflezen
Voorbeeld - ADXL335 De versnellingsmeter aflezen
Voorbeeld - ADXL335 De versnellingsmeter aflezen
Voorbeeld - ADXL335 De versnellingsmeter aflezen
Voorbeeld - ADXL335 De versnellingsmeter aflezen

Voed de accelerometermodule van de 5V DC en GND van het Arduino-bord uiterst rechts bovenaan en onderaan. Verbind nu de x-out pin van de adxl335 module met de pin A8 van het arduino bord zoals te zien is op de foto's. als de x-as van de accelerometer naar beneden wijst, wordt de datalijn op het scoopscherm vanaf nul verschoven omdat de adxl-module de versnelling door de zwaartekracht afleest. probeer het in de x-richting te schudden zoals aangegeven op het adxl-bord, de spikes verschijnen op het scherm.

Voor meer informatie over het bereik en de werking ervan, zie de GitHub Wiki

Stap 4: Bijdragen?

Als u een bijdrage wilt leveren aan de wikidocumentatie, bent u van harte welkom. Oscilloscoop is een fantastisch apparaat en ik denk dat het een goede STEM-tool is!.

Ik werk momenteel aan een kleine front-end met een dummy PGA en een offset-besturing en zou een besturing toevoegen voor de tijd/div en misschien het lezen van laagspannings-AC-signalen.

Aanbevolen: