亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

诺基亚 5110 LCD 上的 DIY 简单 20 kHz Arduino 示波器

组件和用品

Arduino Nano R3
× 1
诺基亚 5110 液晶显示器 (PCD8544)
× 1
电阻 10k ohm
× 4
电阻 4.75k ohm
× 1
电阻 330 ohm
× 1
按钮开关,瞬时
× 4

必要的工具和机器

烙铁(通用)
焊锡丝,无铅

应用和在线服务

Arduino IDE

关于这个项目

这次我将向您展示如何制作一个简单的 Arduino 示波器。示波器可显示的最大信号频率为20 kHz,不带分压器时最大输入电压为5 V。

示波器由四个按钮控制:

- “HOLD”按钮 - 用于冻结屏幕的当前状态

- 同步按钮,允许您设置同步级别。

- 以及在 HOLD 模式下控制扫描、同步电平和移动信号图像的“+”和“-”按钮。

在诺基亚 5110 屏幕上,垂直每个单元格为 1 V,水平一个单元格等于扫描分辨率,其(以下)值来自:0.1、0.2、0.5、1.0、2.0、5.0、10.0、20.0 和 50.0 ms .扫描值用“+”和“-”按钮改变,显示在左上角。触发电平显示为屏幕左侧的小条,屏幕右上角显示触发电压。该项目发布在 arduino.ru 页面上,您可以在其中阅读更多详细信息。

该设备的构建极其简单,仅包含几个组件 - Arduino Nano 微控制器

- 诺基亚 N5110 液晶显示屏

- 四个按钮

- 四个下拉电阻

- 输入插孔

- 和电源开关和 LED

我用正弦和矩形信号发生器测试了示波器。即使它不是专业或非常实用的仪器,它仍然可以用于教育目的或在您的实验室中用于测试低频信号,尤其是知道该设备非常容易制造且非常便宜。

最后,将设备放入合适的 PVC 盒子中,并涂上自粘墙纸。

代码

  • Arduino 代码
Arduino 代码C/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 ]{};无符号长时间,次;每浮点数;字节 i; void setup() {Serial.begin(9600); display.begin();display.clearDisplay();display.display(); display.setContrast(40); // 对比度设置 display.setTextSize(1); // 设置字体大小 display.setTextColor(BLACK); // 设置文本颜色 pinMode(10,INPUT); // + pinMode(11,INPUT); // - pinMode(12,INPUT); // 保持 pinMode(13,INPUT); // синх ADMUX =0b01000000; // 0B0100000 10 位 A0 // 0B01100000 8 位 A0 ADCSRA =0b11110010;// CLK/4;模拟写入 (9, 127); // PWM 9 输出} void loop() {/////////////////////////按钮控制////////// //////////////////// 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); // 设置光标位置//////////////////////// 扫描时间由发生器校准////////////// ///////////// 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;//同步时间=micros(); while(i<167){i++;delayMicroseconds(zz);广告();数据[i]=izm; // 测量 10 位 }i=0;times=micros()-times; Serial.println(次); }////////////////////显示输出//////////////////////// ///// 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, BLACK);} time=millis();} display.display(); }// loop void ads(){ //////// 10 位 /////////// do{ADCSRA |=(1 < 

示意图


制造工艺

  1. 智能百叶窗
  2. 带有 Arduino 的简单障碍物传感器
  3. DIY 电压表与 Arduino 和诺基亚 5110 显示器
  4. DIY 10Hz-50kHz 示波器在 128x64 LCD 显示器上
  5. 带旋转编码器的DIY简易测量轮
  6. 简单的 Arduino 天文钟
  7. DIY 简易自动量程电容计 (10pF-10000microF)
  8. AI LCD 朋友!
  9. 手势控制锁
  10. 伴侣 IC
  11. Arduino 的隔离模拟输入
  12. 带 DS1302 RTC 的简单闹钟