Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

DIY Sederhana 20 kHz Arduino Oscilloscope pada LCD Nokia 5110

Komponen dan persediaan

Arduino Nano R3
× 1
Layar LCD Nokia 5110 (PCD8544)
× 1
Resistor 10k ohm
× 4
Resistor 4.75k ohm
× 1
Resistor 330 ohm
× 1
Sakelar Tombol Tekan, Sesaat
× 4

Alat dan mesin yang diperlukan

Besi solder (generik)
Kawat Solder, Bebas Timah

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Kali ini saya akan menunjukkan cara membuat osiloskop Arduino sederhana. Frekuensi sinyal maksimum yang dapat ditampilkan osiloskop adalah 20 kHz, dan tegangan input maksimum adalah 5 V tanpa pembagi tegangan.

Osiloskop dikendalikan oleh empat tombol:

- Tombol "TAHAN" - yang berfungsi untuk membekukan keadaan layar saat ini

- Tombol sinkronisasi yang memungkinkan Anda mengatur tingkat sinkronisasi.

- Dan Tombol "+" dan "-" yang mengontrol sapuan, tingkat sinkronisasi, dan memindahkan gambar sinyal dalam mode TAHAN.

Pada layar Nokia 5110, secara vertikal setiap sel adalah 1 V, secara horizontal satu sel sama dengan resolusi pemindaian, yang memiliki nilai (berikut) dari:0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0, 20.0 dan 50.0 ms . Nilai sapuan diubah dengan tombol "+" dan "-", yang ditampilkan di sudut kiri atas. Level pemicu ditampilkan sebagai bilah kecil di sisi kiri layar, dan tegangan pemicu ditampilkan di sudut kanan atas layar. Proyek ini dipublikasikan di halaman arduino.ru di mana Anda dapat membaca lebih detail.

Perangkat ini sangat sederhana untuk dibuat dan hanya terdiri dari beberapa komponen - mikrokontroler Arduino Nano

- Layar LCD Nokia N5110

- empat tombol

- empat resistor pull-down

- Colokan masukan

- Dan sakelar Daya dan Led

Saya menguji osiloskop dengan generator sinyal sinus dan persegi panjang. Meskipun bukan merupakan instrumen profesional atau sangat berguna, alat ini masih dapat digunakan untuk tujuan pendidikan atau di laboratorium Anda, untuk menguji sinyal frekuensi rendah, terutama mengetahui bahwa perangkat ini sangat mudah dibuat dan sangat murah.

Terakhir, perangkat ditempatkan dalam kotak yang cocok yang terbuat dari PVC dan dilapisi dengan wallpaper berperekat.

Kode

  • Kode Arduino
Kode ArduinoC/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] ]{};lama tidak ditandatangani,kali;float per;byte i; void setup() {Serial.begin(9600); display.begin();display.clearDisplay();display.display(); display.setContrast(40); // pengaturan kontras display.setTextSize(1); // mengatur ukuran font display.setTextColor(HITAM); // mengatur warna teks pinMode(10,INPUT); // + pinMode(11,INPUT); // - pinMode(12,INPUT); // tahan pinMode(13,INPUT); // ADMUX =0b01000000; // 0B0100000 10 bit A0 // 0B01100000 8 bit A0 ADCSRA =0b11110010;// CLK/4; analogWrite (9, 127); // PWM 9 OUTPUT} void loop() {/////////////////////////BUTTON CONTROL////////// //////////////////// 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)==TINGGI){menu++;delay(100);} if(hold>1){hold=0;}if(menu>1||menu<0){menu=0;} if(raz<=0){raz=0;}jika(raz>8){raz=8;} jika(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;}jika(sss<0){sss=0;} } display.setCursor(0,0); // mengatur posisi kursor/////////////////////////SWEEP TIME dikalibrasi oleh generator /////////////// ///////////// 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;} jika(raz==5){zz=200;h2=1;per=5;} jika(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;// SYNCHRONISATION times=micros(); while(i<167){i++;delayMikrodetik(zz); iklan();data[i]=izm; // PENGUKURAN 10 bit }i=0;kali=mikro()-kali; Serial.println(kali); }///////////////////OUTPUT PADA DISPLAY////////////////////////////////////// ///// if(millis()-time>100){ display.clearDisplay(); if(sss<204&&sss>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, HITAM);} waktu=milis();} display.display(); }// loop void iklan(){ //////// 10 bit /////////// do{ADCSRA |=(1 <  

Skema


Proses manufaktur

  1. Smart Blinds
  2. Sensor Kendala Sederhana dengan Arduino
  3. Voltmeter DIY dengan Arduino dan Tampilan Nokia 5110
  4. Osiloskop DIY 10Hz-50kHz pada Layar LCD 128x64
  5. Roda Pengukur Sederhana DIY dengan Rotary Encoder
  6. Kronometer Arduino Sederhana
  7. Pengukur Kapasitansi Autorange Sederhana DIY (10pF-10000microF)
  8. Teman LCD AI!
  9. Input Analog Terisolasi untuk Arduino
  10. Jam Alarm Sederhana dengan DS1302 RTC