Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Einfaches 20-kHz-Arduino-Oszilloskop auf Nokia 5110 LCD

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Nokia 5110 LCD-Display (PCD8544)
× 1
Widerstand 10k Ohm
× 4
Widerstand 4,75 kOhm
× 1
Widerstand 330 Ohm
× 1
Druckschalter, kurzzeitig
× 4

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)
Lötdraht, bleifrei

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Dieses Mal zeige ich Ihnen, wie Sie ein einfaches Arduino-Oszilloskop erstellen. Die maximale Signalfrequenz, die das Oszilloskop anzeigen kann, beträgt 20 kHz und die maximale Eingangsspannung beträgt 5 V ohne Spannungsteiler.

Das Oszilloskop wird über vier Tasten gesteuert:

- "HOLD"-Taste - die dazu dient, den aktuellen Status des Bildschirms einzufrieren

- Synchronisierungstaste, mit der Sie die Synchronisierungsstufe einstellen können.

- Und Tasten "+" und "-", die den Sweep, den Sync-Pegel steuern und das Signalbild im HOLD-Modus bewegen.

Auf dem Bildschirm des Nokia 5110 beträgt vertikal jede Zelle 1 V, horizontal entspricht eine Zelle der Scanauflösung, die die (folgenden) Werte von:0,1, 0,2, 0,5, 1,0, 2,0, 5,0, 10,0, 20,0 und 50,0 ms hat . Mit den Schaltflächen "+" und "-" wird der Sweep-Wert verändert, der in der oberen linken Ecke angezeigt wird. Der Triggerpegel wird als kleiner Balken auf der linken Seite des Bildschirms angezeigt und die Triggerspannung wird in der oberen rechten Ecke des Bildschirms angezeigt. Dieses Projekt wird auf der Seite arduino.ru veröffentlicht, auf der Sie weitere Details lesen können.

Das Gerät ist extrem einfach zu bauen und besteht aus nur wenigen Komponenten - Arduino Nano Mikrocontroller

- Nokia N5110 LCD-Display

- vier Tasten

- vier Pulldown-Widerstände

- Eingangsbuchse

- Und Netzschalter und LED

Getestet habe ich das Oszilloskop mit Sinus- und Rechtecksignalgenerator. Auch wenn es sich nicht um ein professionelles oder sehr brauchbares Instrument handelt, kann es dennoch zu Bildungszwecken oder in Ihrem Labor zum Testen von niederfrequenten Signalen verwendet werden, insbesondere da das Gerät sehr einfach herzustellen und extrem günstig ist.

Zum Schluss wird das Gerät in eine passende Box aus PVC gelegt und mit selbstklebender Tapete beschichtet.

Code

  • Arduino-Code
Arduino-CodeC/C++
#include #include #include Adafruit_PCD8544 display =Adafruit_PCD8544(7, 6, 5, 4, 3);//CLK,DIN,DC,CE, RST |||| VCC +3.3 V , BL ++ 200 OM ++ 3.3 V int izm,x,y,u,i2,zz,hold,h0,h1,h2,raz=0,menu,sss=512,u_dig,data[168 ]{};unsigned long time,times;float per;Byte i; Void setup () {Serial.begin (9600); display.begin();display.clearDisplay();display.display(); display.setContrast(40); // Kontrasteinstellung display.setTextSize(1); // Schriftgröße einstellen display.setTextColor(BLACK); // Textfarbe einstellen pinMode (10, INPUT); // + PinMode (11, INPUT); // - PinMode (12, EINGANG); // PinMode halten (13, INPUT); // синх ADMUX =0b01000000; // 0B0100000 10 Bit A0 // 0B01100000 8 Bit A0 ADCSRA =0b11110010; // CLK/4; analogWrite (9, 127); // PWM 9 AUSGANG} Void Schleife () {//////////////////////////TASTENSTEUERUNG ////////// //////////////////// if(menu==0){ if(digitalRead(10)==HIGH){if(hold==0){raz++;} if(hold==1){i2=i2+1;}delay(100);} if(digitalRead(11)==HIGH){if(hold==0){raz--;}if(hold==1&&hold>0){i2=i2-1;}delay(100);}} if(digitalRead(12)==HIGH){hold++;i2=0;delay(100);} if(digitalRead(13)==HIGH){menu++;delay(100);} if(hold>1){hold=0;}if(menu>1||menu<0){menu=0;} if(raz<=0){raz=0;}if(raz>8){raz=8;} if(menu==1){hold=0; if(digitalRead(10)==HIGH){sss+=24;delay(100);} if(digitalRead(11)==HIGH){sss-=24;delay(100);} if(sss>1023){ sss=1023;}if(sss<0){sss=0;}} display.setCursor(0,0); // Cursorposition einstellen ////////////////////////SWEEP TIME vom Generator kalibriert /////////////// ///////////// if(raz==0){zz=1;h2=2;per=0.1;} if(raz==1){zz=1;h2=1; per=0,2;} if(raz==2){zz=12;h2=1;per=0,5;} if(raz==3){zz=32;h2=1;per=1;} if(raz ==4){zz=75;h2=1;per=2;} if(raz==5){zz=200;h2=1;per=5;} if(raz==6){zz=380;h2=1;per=10;} if(raz==7){zz=750;h2=1;per=20;} if(raz==8){zz=1900;h2=1;per=50;}///////////////////////////////////////////// /////////////////// if(hold==0&&millis()-time>0){ ads();while(izm5000){break;}}h0=0; // SYNCHRONISIERUNG mal=micros(); while(i<167){i++;verzögernMikrosekunden (zz); ads();data[i]=izm; // MESSUNG 10 Bit }i=0;times=micros()-times; Serial.println (Zeiten); } // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // ///// if(millis()-time>100){display.clearDisplay(); if(sss<204&&ss>100){u_dig=10;display.setCursor(0,40);display.print("0.4V");} else if(sss<100){u_dig=5; display.setCursor(0,40);display.print("0.2V");} else{u_dig=25;} display.setCursor(0,0); while(i<167){i++;setka(); display.drawLine(i*h2-i2, 47-data[i]/u_dig,i*h2-i2+h2-1, 47-data[i+1]/u_dig, BLACK);}i=0; display.print(per,1);display.print("mS"); if(menu==0){if(hold==1){display.print("HOLD");}else{display.print("AUTO");}} if(menu==1){display.print (sss/200.0,1);display.print(" V");} if(menu==1){display.drawLine(0, 48-sss/u_dig,4, 48-sss/u_dig, BLACK);} time=millis();} display.display(); }// Schleife void ads(){ //////// 10 Bit /////////// do{ADCSRA |=(1 < 

Schaltpläne


Herstellungsprozess

  1. Smart Blinds
  2. Einfacher Hindernissensor mit Arduino
  3. DIY Voltmeter mit Arduino und einem Nokia 5110 Display
  4. DIY 10Hz-50kHz Oszilloskop auf 128x64 LCD-Display
  5. DIY Einfaches Messrad mit Drehgeber
  6. Einfacher Arduino-Chronometer
  7. Selbstgemachter einfacher Autorange-Kapazitätsmesser (10pF-10000microF)
  8. KI-LCD-Freund!
  9. Ein isolierter Analogeingang für Arduino
  10. Einfacher Wecker mit DS1302 RTC