Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Zelf een mini‑oscilloscoop bouwen met Arduino Nano – Stap‑voor‑stap handleiding

Onderdelen en benodigdheden

Arduino Nano R3 1
ElectroPeak 0,96″ OLED 64×128 Display Module (SSD1306) 1
Tactiele schakelaar, bovenbediend 9
1N4148 – Algemeen snelschakelende diode 4

Apps en online diensten

  • Arduino IDE

Over dit project

In deze video laat ik je zien hoe je je eigen mini‑oscilloscoop thuis kunt maken. Het is simpel en makkelijk te bouwen. De code is niet van mij; ik maak alleen een tutorial voor jullie. Voor dit project heb ik gebruikgemaakt van derde‑partij broncode, de link staat hieronder. Als je vragen of suggesties hebt, laat dan gerust een reactie achter op mijn YouTube‑video en vergeet niet te liken en in te schrijven op mijn YouTube‑kanaal.

Klik hier voor de volledige tutorial en broncode.

Mijn Instagram: pm.goharian

Benodigde componenten

  • Arduino Nano
  • SSD1306 OLED‑display
  • 1N4148 diode
  • Micro‑schakelaar
  • 104‑condensator
  • Weerstanden: 100 Ω, 12 kΩ, 120 kΩ, 510 kΩ

Wat is een oscilloscoop?

Een oscilloscoop, vroeger oscillograaf genoemd, en informeel bekend als scope, o‑scope, CRO (kathodenstraal‑oscilloscoop) of DSO (digitale opslag‑oscilloscoop), is een elektronisch meetinstrument dat wisselende signalen (meestal spanningen) grafisch weergeeft, meestal als een tweedimensionale plot van één of meer signalen als functie van de tijd. Andere signalen (zoals geluid of trilling) kunnen worden omgezet naar spanningen en weergegeven.

Oscilloscopen tonen de verandering van een elektrisch signaal in de tijd, met spanning en tijd als respectievelijk Y‑ en X‑as, op een gekalibreerde schaal. De golfvorm kan vervolgens worden geanalyseerd op eigenschappen als amplitude, frequentie, stijgtijd, tijdsinterval, vervorming, en meer. Moderne digitale instrumenten kunnen deze eigenschappen direct berekenen en weergeven. Oorspronkelijk vereiste het berekenen van deze waarden handmatig meten van de golfvorm tegen de in het scherm ingebouwde schalen.

Schema's voor het project

Let op: Zorg dat alle verbindingen in je circuit exact overeenkomen met de schema's.

(Afbeeldingen van de schema's zijn in de originele tutorial te vinden.)

Referenties:

Code

/* (_20190212_OLEDoscilloscope.ino) 1285byte ram free 2019/02/12 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <avr/pgmspace.h> // PROGMEM
#include <EEPROM.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define REC_LENGTH 200

#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

const char vRangeName[10][5] PROGMEM = {"A50V", "A 5V", " 50V", " 20V", " 10V", " 5V", " 2V", " 1V", "0.5V", "0.2V"};
const char * const vstring_table[] PROGMEM = {vRangeName[0], vRangeName[1], vRangeName[2], vRangeName[3], vRangeName[4], vRangeName[5], vRangeName[6], vRangeName[7], vRangeName[8], vRangeName[9]};
const char hRangeName[8][6] PROGMEM = {" 50ms", " 20ms", " 10ms", " 5ms", " 2ms", " 1ms", "500us", "200us"};
const char * const hstring_table[] PROGMEM = {hRangeName[0], hRangeName[1], hRangeName[2], hRangeName[3], hRangeName[4], hRangeName[5], hRangeName[6], hRangeName[7]};

int waveBuff[REC_LENGTH];
char chrBuff[10];
String hScale = "xxxAs";
String vScale = "xxxx";
float lsb5V = 0.0055549;
float lsb50V = 0.051513;
volatile int vRange;
volatile int hRange;
volatile int trigD;
volatile int scopeP;
volatile boolean hold = false;
volatile boolean paraChanged = false;
volatile int saveTimer;
int timeExec;
int dataMin;
int dataMax;
int dataAve;
int rangeMax;
int rangeMin;
int rangeMaxDisp;
int rangeMinDisp;
int trigP;
boolean trigSync;
int att10x;

void setup() {
  pinMode(2, INPUT_PULLUP);
  pinMode(8, INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT);
  pinMode(13, OUTPUT);

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    for (;;);
  }
  loadEEPROM();
  analogReference(INTERNAL);
  attachInterrupt(0, pin2IRQ, FALLING);
}

void loop() {
  digitalWrite(13, HIGH);
  setConditions();
  readWave();
  digitalWrite(13, LOW);
  writeCommonImage();
  plotData();
  dispInf();
  display.display();
  saveEEPROM();
  while (hold == true) {
    dispHold();
    delay(10);
  }
}

// ... (rest van de code: setConditions, writeCommonImage, readWave, dataAnalize, startScreen, dispHold, dispInf, plotData, saveEEPROM, loadEEPROM, pin2IRQ)

De volledige code is te lang om hier volledig weer te geven. Download het volledige bestand via de originele tutorial.

Schema's

Zie bijgevoegde afbeelding in de originele tutorial.

Productieproces

  1. Bouw je eigen DIY huiswerk-schrijfmachine thuis
  2. Bouw een DIY Photoshop-bedieningsconsole met Arduino Nano RP2040
  3. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  4. Maak een Aangepaste 'Punchable' Toetsenbordknop met Arduino: Stap-voor-Stap Handleiding
  5. De massa van de aarde meten met Arduino: een stapsgewijze DIY-gids
  6. Een PHP-webinterface bouwen om je Arduino Uno te besturen
  7. Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding
  8. Automatische deur met Arduino en ultrasone sensor bouwen
  9. Arduino Nano eetrobot bouwen: stap-voor-stap handleiding
  10. Bouw een Real-time Digitale Kompas met Arduino & Processing
  11. DIY Koolstofvezel Fabricage: Stapsgewijze Gids voor het Maken van Koolstofvezel-onderdelen Thuis