差分信号分析仪 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 差分信号分析仪

简介:采用Arduino作为信号源,产生正弦波等信号,经过放大电路,最后在上位机LabVIEW上显示

开源协议: Public Domain

(未经作者授权,禁止转载)

创建时间: 2021-05-20 15:30:02
更新时间: 2023-12-29 11:09:13
描述

1.信号发生器:

       信号源采用的是Arduino单片机产生的正弦波,三角波,锯齿波,方波四种信号,由于Arduino uno没有好用的DA转换,可通过R2R网络来生成一个简易的DA转换单元,来输出对应的电压值。先在Arduino中产生出正弦波,三角波等波形的数字信号,将数字信号放在Arduino中的PORTD寄存器(D0~D7)中,再通过在面包板上搭建的简易DA转换器输出转换后的信号(即模拟信号)作为信号源输入到放大电路中

    信号源Arduino程序:

int wavedigital[255];

//定义图形周期

int cycle;

//波形模式切换按键

const int button = 12;

//波形常数

volatile int wave = 0;

void setup()

     Serial.begin(9600);

  

    //设置中断程序

    //attachInterrupt(button, waveSelect, RISING); 

 

     //输出端口 0-7

     pinMode(0, OUTPUT);

     pinMode(1, OUTPUT);

     pinMode(2, OUTPUT);

     pinMode(3, OUTPUT);

     pinMode(4, OUTPUT);

     pinMode(5, OUTPUT);

     pinMode(6, OUTPUT);

     pinMode(7, OUTPUT);

    //改变输出信号频率调整完电位器后复位后生效

     cycle=int(analogRead(A0)/10)+1;

     //默认输出正玄波

     wagegen();

}

 

 

void loop()

{

      unsigned char date1[1]={0xFF};

      unsigned char date2[1]={0xEE};

      unsigned char date3[1]={0x0D};

      unsigned char date4[1]={0x0A};

     if(digitalRead(button)==0)

     {

      waveSelect();

     }

     //增加此句后会影响波形的质量,波形导致失真

     //cycle=int(analogRead(A0)/10)+1;

  

     for (int i=0;i<255;i++)

     {

          PORTD=wavedigital[i];

        

          Serial.write(date1,1);

           Serial.write(date3,1);

          Serial.write(date4,1);

          Serial.print(wavedigital[i]);

          Serial.write(date2,1);

          Serial.write(date3,1);

          Serial.write(date4,1);

           Serial.print(analogRead(A2));

         //调试各个波形的值

         //  Serial.println( wavedigital[i]);

         //调试波形周期

          delayMicroseconds(cycle);

         // delayMicroseconds(10);

     }

    //调试模拟量输入的值已决定波形周期

    // Serial.println(cycle);

}

 

 

// 波形选择程序

void waveSelect() {

 //选择所需波形 0-正玄波 1-三角波 2-锯齿波 3-矩形波

  wave++;

  if(wave == 4)

    {

      wave = 0;

    }

     wagegen();

    delay(3000);

}

 

//波形数值生成

void wagegen()

{

     float x;

     float y;

 

    //正玄波的值

    if(wave==0)

    {

       for(int i=0;i<255;i++)

       {

          x=(float)i;

          y=sin((x/255)*2*PI);

          wavedigital[i]=int(y*128)+128;

        //  Serial.print(wavedigital[i]);

       }

     }

   

//    三角波的值

    if(wave==1)

    {

  

         for(int i=0;i<128;i++)

         {

          x=(float)i;

          wavedigital[i]=int(2*x);      

         }

 

         for(int i=128;i<255;i++)

         {

          x=(float)i;

          wavedigital[i]=255-int((x-128)*2);     

        //  Serial.print(wavedigital[i]);       

          }

     }

  //锯齿波

  if(wave==2)

    {  

          for(int i=0;i<255;i++)

         {

          x=(float)i;

          wavedigital[i]=x;      

         // Serial.print(wavedigital[i]);

          }  

    }

    

    

    //方波值得生成

    if(wave==3)

    {  

       for(int i=0;i<128;i++)

       {

         wavedigital[i]=255;     

       }

 

        for(int i=128;i<255;i++)

        {

          wavedigital[i]=0;

         // Serial.print(wavedigital[i]);

         } 

     }

 

Arduino搭载的简易DA转换器连线图:

实物连线图:

 

 

2.放大电路:

       放大电路采用的是立创公司电子设计大赛比赛附件中提供的原理图,在立创EDA绘制原理图与PCB,并完成电路的焊接与调试。

       原理图:原理图采用的是立创比赛定制的原理图,在立创EDA上绘制

    PCB:采用原理图中推荐封装,对元器件进行布局、排版、连线

焊接后实物图:

 

测试用PCB

 

测量显示(LabVIEW作为示波器):

       测量显示部分使用的是Labview作为上位机显示信号的波形,使用了简单的状态机架构,对下位机发送的波形进行显示。实现方法是将差分放大电路中输入波形,放大后波形组成一个数据包,包头为十六进制FF,包尾为十六进制EE,通过Arduino单片机读取源信号的数据,并通过串口发送给Labview上位机,在上位机部分对数据进行解包并显示。

       通过对下位机发送的信号进行解包处理,分别写出了两组LabVIEW程序,分别是对在Arduino通过面包板搭建的简易DA转换后的模拟信号和放大后信号进行显示,LabVIEW程序写好后,将程序打包为exe文件,以便在没有安装LabVIEW的电脑上仍然能够使用该程序

正弦波:

示波器显示:

三角波

示波器显示

 

锯齿波

示波器波形:

 

方波:

示波器显示:

输出信号示波器显示:

正弦信号

 

三角波信号

 

 

锯齿波信号

 

 

方波信号:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 470pF C1,C2 C0603 2
2 Header-Female-2.54_2x2 H2 HDR-TH_4P-P2.54-V-F-R2-C2-S2.54 1
3 S9013 Q1,Q2,Q3 TO-92-3_L4.9-W3.7-P1.27-L 3
4 2.7k R1,R2 R0603 2
5 1k R3,R4,R5 R0603 3
6 733910083 RF1,RF2,RF3,RF4 SMA-TH_733910083 4

展开

侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP