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

DIY 简单方波发生器,频率高达 1MHz

组件和用品

Arduino Nano R3
× 1
Adafruit 标准 LCD - 16x2 蓝底白字
× 1
按钮开关,瞬时
× 3
单圈电位器 - 10k ohms
× 1

应用和在线服务

Arduino IDE

关于这个项目

这是一个简单的方波发生器,它基本上使用 TimerOne 库,允许您在引脚 9 处生成范围从 5Hz 到 1 Mhz 的 PWM 信号,并且您可以将占空比从 0 调整到 100%。

设备的构建非常简单,仅包含几个组件:

- Arduino Nano 微控制器

- 液晶显示

- 三个上拉电阻

- 和三个按钮

脉冲发生器能够使用连接到 Arduino 的数字输入 6 和 7 的按钮来调整脉冲重复周期。 13 个输入引脚允许您调整占空比。持续时间和占空比读数显示在 LCD 16 × 2 指示器的第一行,频率读数显示在第二行。调整脉冲重复周期的最小步长为1 μs,因此频率会离散变化,例如1 μs为1 MHz,2 μs为500 kHz,3 μs为333.333 Hz,依此类推,随着频率的降低,其调整的平滑度增加。这在较高频率下是非常不切实际的,但这是简单的代价。在我之前的一个视频中,我描述了类似设备的构造,但借助专用 DDS 芯片,该芯片没有这些缺点,范围更大,但构建起来更复杂

为了可视化输出信号,我使用了小型单通道示波器。最后,将设备安装在合适的盒子中,这是电子实验室中另一个有用的工具。

代码

  • Arduino 代码
Arduino 代码C/C++
#include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7unsigned long t=1000 ,f,k=512;// 默认 1000 μs (1000 Hz),曲折,脉冲字节 k1,kn,kn1,kn2;int drive,drive0;void setup(){ lcd.begin(16, 2);// LCD 16X2 pinMode(9, OUTPUT); pinMode(6,INPUT);// 输入 6 处的按钮 pinMode(7,INPUT);// 输入 7 处的按钮 pinMode(13,INPUT);// 输入 13 处的按钮}void loop(){ Timer1.initialize(t ); // 周期 Timer1.pwm(9, k); // k - 填充因子 0-1023。 kn=digitalRead(6);//按键输入6(-脉冲周期) kn1=digitalRead(7);//按键输入7(+脉冲周期) kn2=digitalRead(13);//按键输入13(+圆圈填充) factor) if(kn==HIGH){ // 减少周期 drive++;如果(驱动<30){ t =t-1; } // 如果按键长按,脉冲的修正 else if(drive>30 &&drive<60 ){ t=t-10; } else if(drive>=60 &&drive<100){ t=t-100; } else if(drive>=100){ t=t-1000; } } else{ 驱动器=0; } if(kn1==HIGH){// 添加一个句点 drive0++; if(drive0<30){t=t+1; // 如果按键长按,修正 } else if(drive0>30 &&drive0<60 ){ t=t+10; } else if(drive0>=60 &&drive0<100){ t=t+100; } else if(drive0>=100){ t=t+1000; } } else{ drive0=0; } if(t==0 || t>300000){ // 将脉冲持续时间限制为最小值,如果 t=1; } if(t>200000 &&t<300000){ // 将脉冲持续时间限制为 t=200000; } f=1000000/t; //计算频率k1=k*100/1024; // 计算%填充因子 if(kn2==HIGH){// 用于调整填充因子的按钮(在 k=k+16 的圆圈中;// 1024 步中的第 16 步(您可以做 8 次以进行更平滑的调整)} if(k==1024){ k=0; }// 显示指标信息 lcd.setCursor(0,0); lcd.print("T="); lcd.print(t); lcd.print( "我们"); lcd.setCursor(12,0); lcd.print(k1); lcd.print(" %"); lcd.setCursor(0,1); lcd.print("F="); lcd .print(f); lcd.print(" Hz"); delay(300); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print( " ");}

示意图


制造工艺

  1. 方​​波信号
  2. DIY LUMAZOID Arduino 音乐可视化器
  3. 简单字时钟(Arduino)
  4. 诺基亚 5110 LCD 上的 DIY 简单 20 kHz Arduino 示波器
  5. 使用 Arduino 和智能手机的 DIY 电压表
  6. JX 波形发生器
  7. 带有 Arduino 的简单障碍物传感器
  8. DIY 虚拟现实滑板
  9. 简单的 UNO 计算器
  10. 带旋转编码器的DIY简易测量轮
  11. 简单的 Arduino 天文钟
  12. 抗击冠状病毒:简单的洗手计时器